diff options
| -rw-r--r-- | youtube_dl/extractor/__init__.py | 1 | ||||
| -rw-r--r-- | youtube_dl/extractor/ccc.py | 46 | 
2 files changed, 47 insertions, 0 deletions
| diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index 447833c01..bd40e9ea5 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -48,6 +48,7 @@ from .canalplus import CanalplusIE  from .canalc2 import Canalc2IE  from .cbs import CBSIE  from .cbsnews import CBSNewsIE +from .ccc import ComCarCoffIE  from .ceskatelevize import CeskaTelevizeIE  from .channel9 import Channel9IE  from .chilloutzone import ChilloutzoneIE diff --git a/youtube_dl/extractor/ccc.py b/youtube_dl/extractor/ccc.py new file mode 100644 index 000000000..809725f12 --- /dev/null +++ b/youtube_dl/extractor/ccc.py @@ -0,0 +1,46 @@ +# encoding: utf-8 +import re +import json + +from .common import InfoExtractor +from ..utils import ( +    unified_strdate, +) + +class ComCarCoffIE(InfoExtractor): +    _VALID_URL = r'https?://(?:www\.)?comediansincarsgettingcoffee\.com/(?P<id>[a-z0-9\-]+)/?' +    _TESTS = [ +        { +            'url': 'http://comediansincarsgettingcoffee.com/miranda-sings-happy-thanksgiving-miranda/', +            'info_dict': { +                'id': 'miranda-sings-happy-thanksgiving-miranda', +                'upload_date': '20141127', +                'title': 'Happy Thanksgiving Miranda', +                'description': 'Jerry Seinfeld and his special guest Miranda Sings cruise around town in search of coffee, complaining and apologizing along the way.', +                'thumbnail': 'http://ccc.crackle.com/images/s5e4_thumb.jpg', +            }, +        } +    ] + +    def _real_extract(self, url): +        display_id = self._match_id(url) +        webpage = self._download_webpage(url, display_id) + +        full_data = json.loads(self._search_regex( +            r'<script type="application/json" id="videoData">(?P<json>.+?)</script>', +            webpage, 'json')) + +        video_id = full_data['activeVideo']['video'] +        video_data = full_data['videos'][video_id] + +        return { +            'id': video_id, +            'display_id': display_id, +            'title': video_data['title'], +            'description': video_data['description'], +            # XXX: the original datum is a full ISO timestamp... why convert it to a worse format? +            'upload_date': unified_strdate(video_data['pubDate']), +            'thumbnail': video_data['images']['thumb'], +            # XXX: what do we do with video_data['images']['poster']? +            'formats': self._extract_m3u8_formats(video_data['mediaUrl'], video_id), +        } | 
