diff options
| author | Alex Seiler <seileralex@gmail.com> | 2017-02-17 04:49:25 +0100 | 
|---|---|---|
| committer | Sergey M․ <dstftw@gmail.com> | 2017-02-28 23:36:05 +0700 | 
| commit | 948519b35dec420c3b3ca5369bcba1dead31fcc6 (patch) | |
| tree | 0a4d0da89c1a6cc9783592e427977ef732d06ce9 | |
| parent | 87dadd456a138c3107ff6254bd03ed832cf2e6d1 (diff) | |
[azmedien:showplaylist] Add support for all episodes playlists
| -rw-r--r-- | youtube_dl/extractor/azmedien.py | 49 | ||||
| -rw-r--r-- | youtube_dl/extractor/extractors.py | 1 | 
2 files changed, 50 insertions, 0 deletions
diff --git a/youtube_dl/extractor/azmedien.py b/youtube_dl/extractor/azmedien.py index cbc3ed564..817fc6d57 100644 --- a/youtube_dl/extractor/azmedien.py +++ b/youtube_dl/extractor/azmedien.py @@ -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) diff --git a/youtube_dl/extractor/extractors.py b/youtube_dl/extractor/extractors.py index e251d8478..b1613a9d3 100644 --- a/youtube_dl/extractor/extractors.py +++ b/youtube_dl/extractor/extractors.py @@ -83,6 +83,7 @@ from .awaan import (  from .azmedien import (      AZMedienIE,      AZMedienPlaylistIE, +    AZMedienShowPlaylistIE,  )  from .azubu import AzubuIE, AzubuLiveIE  from .baidu import BaiduVideoIE  | 
