|
|
|
@ -5,6 +5,7 @@ import re
|
|
|
|
|
from .common import InfoExtractor
|
|
|
|
|
from .kaltura import KalturaIE
|
|
|
|
|
from ..utils import (
|
|
|
|
|
get_element_by_class,
|
|
|
|
|
get_element_by_id,
|
|
|
|
|
strip_or_none,
|
|
|
|
|
urljoin,
|
|
|
|
@ -170,3 +171,51 @@ class AZMedienPlaylistIE(AZMedienBaseIE):
|
|
|
|
|
'video-title', webpage)), group='title')
|
|
|
|
|
|
|
|
|
|
return self.playlist_result(entries, show_id, title)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AZMedienShowPlaylistIE(AZMedienBaseIE):
|
|
|
|
|
IE_DESC = 'AZ Medien Show playlists'
|
|
|
|
|
_VALID_URL = r'''(?x)
|
|
|
|
|
https?://
|
|
|
|
|
(?:www\.)?
|
|
|
|
|
(?P<id>
|
|
|
|
|
(?:
|
|
|
|
|
telezueri\.ch|
|
|
|
|
|
telebaern\.tv|
|
|
|
|
|
telem1\.ch
|
|
|
|
|
)/
|
|
|
|
|
(?:
|
|
|
|
|
all-episodes|
|
|
|
|
|
alle-episoden
|
|
|
|
|
)
|
|
|
|
|
/[^/]+
|
|
|
|
|
)
|
|
|
|
|
'''
|
|
|
|
|
|
|
|
|
|
_TEST = {
|
|
|
|
|
'url': 'http://www.telezueri.ch/all-episodes/astrotalk',
|
|
|
|
|
'info_dict': {
|
|
|
|
|
'id': 'telezueri.ch/all-episodes/astrotalk',
|
|
|
|
|
'title': 'TeleZüri: AstroTalk - alle episoden',
|
|
|
|
|
'description': 'md5:4c0f7e7d741d906004266e295ceb4a26',
|
|
|
|
|
},
|
|
|
|
|
'playlist_mincount': 13,
|
|
|
|
|
'params': {
|
|
|
|
|
'skip_download': True,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
def _real_extract(self, url):
|
|
|
|
|
playlist_id = self._match_id(url)
|
|
|
|
|
webpage = self._download_webpage(url, playlist_id)
|
|
|
|
|
episodes = get_element_by_class('search-mobile-box', webpage)
|
|
|
|
|
entries = [self.url_result(
|
|
|
|
|
urljoin(url, m.group('url'))) for m in re.finditer(
|
|
|
|
|
r'<a[^>]+href=(["\'])(?P<url>.+?)\1', episodes)]
|
|
|
|
|
title = self._og_search_title(webpage)
|
|
|
|
|
description = self._og_search_description(webpage)
|
|
|
|
|
return self.playlist_result(
|
|
|
|
|
entries,
|
|
|
|
|
playlist_id=playlist_id,
|
|
|
|
|
playlist_title=title,
|
|
|
|
|
playlist_description=description)
|
|
|
|
|