diff options
Diffstat (limited to 'youtube_dl/extractor/comcarcoff.py')
| -rw-r--r-- | youtube_dl/extractor/comcarcoff.py | 52 | 
1 files changed, 52 insertions, 0 deletions
| diff --git a/youtube_dl/extractor/comcarcoff.py b/youtube_dl/extractor/comcarcoff.py new file mode 100644 index 000000000..46953c12e --- /dev/null +++ b/youtube_dl/extractor/comcarcoff.py @@ -0,0 +1,52 @@ +# encoding: utf-8 +import json + +from .common import InfoExtractor +from ..utils import parse_iso8601 + + +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', +            'ext': 'mp4', +            'upload_date': '20141127', +            'timestamp': 1417107600, +            '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', +        }, +        'params': { +            'skip_download': 'requires ffmpeg', +        } +    }] + +    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, 'full data json')) + +        video_id = full_data['activeVideo']['video'] +        video_data = full_data['videos'][video_id] +        thumbnails = [{ +            'url': video_data['images']['thumb'], +        }, { +            'url': video_data['images']['poster'], +        }] +        formats = self._extract_m3u8_formats( +            video_data['mediaUrl'], video_id, ext='mp4') + +        return { +            'id': video_id, +            'display_id': display_id, +            'title': video_data['title'], +            'description': video_data.get('description'), +            'timestamp': parse_iso8601(video_data.get('pubDate')), +            'thumbnails': thumbnails, +            'formats': formats, +        } | 
