[generic] extract m3u8 formats when mpegurl content type detected

This commit is contained in:
remitamine 2016-02-04 01:25:36 +01:00
parent 58be922079
commit eadc3ccd50

View file

@ -1229,19 +1229,24 @@ class GenericIE(InfoExtractor):
# Check for direct link to a video # Check for direct link to a video
content_type = head_response.headers.get('Content-Type', '') content_type = head_response.headers.get('Content-Type', '')
m = re.match(r'^(?P<type>audio|video|application(?=/ogg$))/(?P<format_id>.+)$', content_type) m = re.match(r'^(?P<type>audio|video|application(?=/(?:ogg$|(?:vnd\.apple\.|x-)?mpegurl)))/(?P<format_id>.+)$', content_type)
if m: if m:
upload_date = unified_strdate( upload_date = unified_strdate(
head_response.headers.get('Last-Modified')) head_response.headers.get('Last-Modified'))
formats = []
if m.group('format_id').endswith('mpegurl'):
formats = self._extract_m3u8_formats(url, video_id, 'mp4')
else:
formats = [{
'format_id': m.group('format_id'),
'url': url,
'vcodec': 'none' if m.group('type') == 'audio' else None
}]
return { return {
'id': video_id, 'id': video_id,
'title': compat_urllib_parse_unquote(os.path.splitext(url_basename(url))[0]), 'title': compat_urllib_parse_unquote(os.path.splitext(url_basename(url))[0]),
'direct': True, 'direct': True,
'formats': [{ 'formats': formats,
'format_id': m.group('format_id'),
'url': url,
'vcodec': 'none' if m.group('type') == 'audio' else None
}],
'upload_date': upload_date, 'upload_date': upload_date,
} }