[huffpost] Fix extraction

This commit is contained in:
Yen Chi Hsuan 2016-04-15 20:54:12 +08:00
parent 66d40ae3a5
commit f0ec61b525
No known key found for this signature in database
GPG Key ID: 3FDDD575826C5C30

View File

@ -4,6 +4,7 @@ import re
from .common import InfoExtractor from .common import InfoExtractor
from ..utils import ( from ..utils import (
determine_ext,
parse_duration, parse_duration,
unified_strdate, unified_strdate,
) )
@ -29,7 +30,12 @@ class HuffPostIE(InfoExtractor):
'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. ', '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, 'duration': 1549,
'upload_date': '20140124', 'upload_date': '20140124',
} },
'params': {
# m3u8 download
'skip_download': True,
},
'expected_warnings': ['HTTP Error 404: Not Found'],
} }
def _real_extract(self, url): def _real_extract(self, url):
@ -45,7 +51,7 @@ class HuffPostIE(InfoExtractor):
description = data.get('description') description = data.get('description')
thumbnails = [] thumbnails = []
for url in data['images'].values(): for url in filter(None, data['images'].values()):
m = re.match('.*-([0-9]+x[0-9]+)\.', url) m = re.match('.*-([0-9]+x[0-9]+)\.', url)
if not m: if not m:
continue continue
@ -54,13 +60,25 @@ class HuffPostIE(InfoExtractor):
'resolution': m.group(1), 'resolution': m.group(1),
}) })
formats = [{ formats = []
sources = data.get('sources', {})
live_sources = list(sources.get('live', {}).items()) + list(sources.get('live_again', {}).items())
for key, url in live_sources:
ext = determine_ext(url)
if ext == 'm3u8':
formats.extend(self._extract_m3u8_formats(
url, video_id, ext='mp4', m3u8_id='hls', fatal=False))
elif ext == 'f4m':
formats.extend(self._extract_f4m_formatsa(
url + '?hdcore=2.9.5', video_id, f4m_id='hds', fatal=False))
else:
formats.append({
'format': key, 'format': key,
'format_id': key.replace('/', '.'), 'format_id': key.replace('/', '.'),
'ext': 'mp4', 'ext': 'mp4',
'url': url, 'url': url,
'vcodec': 'none' if key.startswith('audio/') else None, 'vcodec': 'none' if key.startswith('audio/') else None,
} for key, url in data.get('sources', {}).get('live', {}).items()] })
if not formats and data.get('fivemin_id'): if not formats and data.get('fivemin_id'):
return self.url_result('5min:%s' % data['fivemin_id']) return self.url_result('5min:%s' % data['fivemin_id'])