diff --git a/youtube_dl/extractor/brightcove.py b/youtube_dl/extractor/brightcove.py index c172bad2d..aeb22be16 100644 --- a/youtube_dl/extractor/brightcove.py +++ b/youtube_dl/extractor/brightcove.py @@ -27,6 +27,7 @@ from ..utils import ( unsmuggle_url, update_url_query, clean_html, + mimetype2ext, ) @@ -545,14 +546,16 @@ class BrightcoveNewIE(InfoExtractor): formats = [] for source in json_data.get('sources', []): container = source.get('container') - source_type = source.get('type') + ext = mimetype2ext(source.get('type')) 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: continue formats.extend(self._extract_m3u8_formats( src, video_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False)) - elif source_type == 'application/dash+xml': + elif ext == 'mpd': if not src: continue formats.extend(self._extract_mpd_formats(src, video_id, 'dash', fatal=False)) @@ -568,7 +571,7 @@ class BrightcoveNewIE(InfoExtractor): 'tbr': tbr, 'filesize': int_or_none(source.get('size')), 'container': container, - 'ext': container.lower(), + 'ext': ext or container.lower(), } if width == 0 and height == 0: f.update({ diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index 4c1d0d526..e6e0155b4 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -2123,6 +2123,7 @@ def mimetype2ext(mt): 'dash+xml': 'mpd', 'f4m': 'f4m', 'f4m+xml': 'f4m', + 'vnd.ms-sstr+xml': 'ism', }.get(res, res)