|
|
@ -10,6 +10,7 @@ from .common import InfoExtractor
|
|
|
|
from .youtube import YoutubeIE
|
|
|
|
from .youtube import YoutubeIE
|
|
|
|
from ..compat import (
|
|
|
|
from ..compat import (
|
|
|
|
compat_etree_fromstring,
|
|
|
|
compat_etree_fromstring,
|
|
|
|
|
|
|
|
compat_str,
|
|
|
|
compat_urllib_parse_unquote,
|
|
|
|
compat_urllib_parse_unquote,
|
|
|
|
compat_urlparse,
|
|
|
|
compat_urlparse,
|
|
|
|
compat_xml_parse_error,
|
|
|
|
compat_xml_parse_error,
|
|
|
@ -1907,14 +1908,14 @@ class GenericIE(InfoExtractor):
|
|
|
|
content_type = head_response.headers.get('Content-Type', '').lower()
|
|
|
|
content_type = head_response.headers.get('Content-Type', '').lower()
|
|
|
|
m = re.match(r'^(?P<type>audio|video|application(?=/(?:ogg$|(?:vnd\.apple\.|x-)?mpegurl)))/(?P<format_id>[^;\s]+)', content_type)
|
|
|
|
m = re.match(r'^(?P<type>audio|video|application(?=/(?:ogg$|(?:vnd\.apple\.|x-)?mpegurl)))/(?P<format_id>[^;\s]+)', content_type)
|
|
|
|
if m:
|
|
|
|
if m:
|
|
|
|
format_id = m.group('format_id')
|
|
|
|
format_id = compat_str(m.group('format_id'))
|
|
|
|
if format_id.endswith('mpegurl'):
|
|
|
|
if format_id.endswith('mpegurl'):
|
|
|
|
formats = self._extract_m3u8_formats(url, video_id, 'mp4')
|
|
|
|
formats = self._extract_m3u8_formats(url, video_id, 'mp4')
|
|
|
|
elif format_id == 'f4m':
|
|
|
|
elif format_id == 'f4m':
|
|
|
|
formats = self._extract_f4m_formats(url, video_id)
|
|
|
|
formats = self._extract_f4m_formats(url, video_id)
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
formats = [{
|
|
|
|
formats = [{
|
|
|
|
'format_id': m.group('format_id'),
|
|
|
|
'format_id': format_id,
|
|
|
|
'url': url,
|
|
|
|
'url': url,
|
|
|
|
'vcodec': 'none' if m.group('type') == 'audio' else None
|
|
|
|
'vcodec': 'none' if m.group('type') == 'audio' else None
|
|
|
|
}]
|
|
|
|
}]
|
|
|
|