|
|
@ -27,6 +27,7 @@ from ..utils import (
|
|
|
|
unsmuggle_url,
|
|
|
|
unsmuggle_url,
|
|
|
|
update_url_query,
|
|
|
|
update_url_query,
|
|
|
|
clean_html,
|
|
|
|
clean_html,
|
|
|
|
|
|
|
|
mimetype2ext,
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -545,14 +546,16 @@ class BrightcoveNewIE(InfoExtractor):
|
|
|
|
formats = []
|
|
|
|
formats = []
|
|
|
|
for source in json_data.get('sources', []):
|
|
|
|
for source in json_data.get('sources', []):
|
|
|
|
container = source.get('container')
|
|
|
|
container = source.get('container')
|
|
|
|
source_type = source.get('type')
|
|
|
|
ext = mimetype2ext(source.get('type'))
|
|
|
|
src = source.get('src')
|
|
|
|
src = source.get('src')
|
|
|
|
if source_type == 'application/x-mpegURL' or container == 'M2TS':
|
|
|
|
if ext == 'ism':
|
|
|
|
|
|
|
|
continue
|
|
|
|
|
|
|
|
elif ext == 'm3u8' or container == 'M2TS':
|
|
|
|
if not src:
|
|
|
|
if not src:
|
|
|
|
continue
|
|
|
|
continue
|
|
|
|
formats.extend(self._extract_m3u8_formats(
|
|
|
|
formats.extend(self._extract_m3u8_formats(
|
|
|
|
src, video_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False))
|
|
|
|
src, video_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False))
|
|
|
|
elif source_type == 'application/dash+xml':
|
|
|
|
elif ext == 'mpd':
|
|
|
|
if not src:
|
|
|
|
if not src:
|
|
|
|
continue
|
|
|
|
continue
|
|
|
|
formats.extend(self._extract_mpd_formats(src, video_id, 'dash', fatal=False))
|
|
|
|
formats.extend(self._extract_mpd_formats(src, video_id, 'dash', fatal=False))
|
|
|
@ -568,7 +571,7 @@ class BrightcoveNewIE(InfoExtractor):
|
|
|
|
'tbr': tbr,
|
|
|
|
'tbr': tbr,
|
|
|
|
'filesize': int_or_none(source.get('size')),
|
|
|
|
'filesize': int_or_none(source.get('size')),
|
|
|
|
'container': container,
|
|
|
|
'container': container,
|
|
|
|
'ext': container.lower(),
|
|
|
|
'ext': ext or container.lower(),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if width == 0 and height == 0:
|
|
|
|
if width == 0 and height == 0:
|
|
|
|
f.update({
|
|
|
|
f.update({
|
|
|
|