diff options
| -rw-r--r-- | youtube_dl/extractor/ccc.py | 24 | ||||
| -rw-r--r-- | youtube_dl/extractor/extractors.py | 5 | 
2 files changed, 28 insertions, 1 deletions
| diff --git a/youtube_dl/extractor/ccc.py b/youtube_dl/extractor/ccc.py index 734702144..a4fdf74e8 100644 --- a/youtube_dl/extractor/ccc.py +++ b/youtube_dl/extractor/ccc.py @@ -75,3 +75,27 @@ class CCCIE(InfoExtractor):              'tags': event_data.get('tags'),              'formats': formats,          } + + +class CCCPlaylistIE(InfoExtractor): +    IE_NAME = 'media.ccc.de:lists' +    _VALID_URL = r'https?://(?:www\.)?media\.ccc\.de/c/(?P<id>[^/?#&]+)' +    _TESTS = [{ +        'url': 'https://media.ccc.de/c/30c3', +        'info_dict': { +            'title': '30C3', +            'id': '30c3', +        }, +        'playlist_count': 135, +    }] + +    def _real_extract(self, url): +        acronym = self._match_id(url).lower() + +        conf = self._download_json('https://media.ccc.de/public/conferences/' + acronym, acronym) + +        return self.playlist_result( +            [self.url_result(event['frontend_link']) for event in conf['events']], +            acronym, +            conf['title'], +        ) diff --git a/youtube_dl/extractor/extractors.py b/youtube_dl/extractor/extractors.py index 26a30b4c3..c011cf981 100644 --- a/youtube_dl/extractor/extractors.py +++ b/youtube_dl/extractor/extractors.py @@ -177,7 +177,10 @@ from .cbsnews import (      CBSNewsLiveVideoIE,  )  from .cbssports import CBSSportsIE -from .ccc import CCCIE +from .ccc import ( +    CCCIE, +    CCCPlaylistIE, +)  from .ccma import CCMAIE  from .cctv import CCTVIE  from .cda import CDAIE | 
