X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Fhuffpost.py;h=a38eae421a9199b578b3a724d205b13e6367c67a;hb=0bbba43ed0c68b612fcafbdad460a93b733b9f87;hp=b47114ab47f50f59f03eedd2c0781c9276eb441f;hpb=db1f388878db8ce2ae6473a5447a5aa6c9ea86f1;p=youtube-dl diff --git a/youtube_dl/extractor/huffpost.py b/youtube_dl/extractor/huffpost.py index b47114ab4..a38eae421 100644 --- a/youtube_dl/extractor/huffpost.py +++ b/youtube_dl/extractor/huffpost.py @@ -21,25 +21,28 @@ class HuffPostIE(InfoExtractor): _TEST = { 'url': 'http://live.huffingtonpost.com/r/segment/legalese-it/52dd3e4b02a7602131000677', - 'file': '52dd3e4b02a7602131000677.mp4', - 'md5': 'TODO', + 'md5': '55f5e8981c1c80a64706a44b74833de8', 'info_dict': { - 'title': 'TODO', - 'description': 'TODO', + 'id': '52dd3e4b02a7602131000677', + 'ext': 'mp4', + 'title': 'Legalese It! with @MikeSacksHP', + 'description': 'This week on Legalese It, Mike talks to David Bosco about his new book on the ICC, "Rough Justice," he also discusses the Virginia AG\'s historic stance on gay marriage, the execution of Edgar Tamayo, the ICC\'s delay of Kenya\'s President and more. ', 'duration': 1549, + 'upload_date': '20140124', } } def _real_extract(self, url): - mobj = re.match(self._VALID_URL, url) - video_id = mobj.group('id') + video_id = self._match_id(url) api_url = 'http://embed.live.huffingtonpost.com/api/segments/%s.json' % video_id data = self._download_json(api_url, video_id)['data'] video_title = data['title'] - duration = parse_duration(data['running_time']) - upload_date = unified_strdate(data['schedule']['started_at']) + duration = parse_duration(data.get('running_time')) + upload_date = unified_strdate( + data.get('schedule', {}).get('starts_at') or data.get('segment_start_date_time')) + description = data.get('description') thumbnails = [] for url in data['images'].values(): @@ -57,12 +60,17 @@ class HuffPostIE(InfoExtractor): 'ext': 'mp4', 'url': url, 'vcodec': 'none' if key.startswith('audio/') else None, - } for key, url in data['sources']['live'].items()] + } for key, url in data.get('sources', {}).get('live', {}).items()] + + if not formats and data.get('fivemin_id'): + return self.url_result('5min:%s' % data['fivemin_id']) + self._sort_formats(formats) return { 'id': video_id, 'title': video_title, + 'description': description, 'formats': formats, 'duration': duration, 'upload_date': upload_date,