|
|
@ -10,6 +10,7 @@ import unittest |
|
|
|
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) |
|
|
|
|
|
|
|
from test.helper import FakeYDL, expect_dict, expect_value |
|
|
|
from youtube_dl.compat import compat_etree_fromstring |
|
|
|
from youtube_dl.extractor.common import InfoExtractor |
|
|
|
from youtube_dl.extractor import YoutubeIE, get_info_extractor |
|
|
|
from youtube_dl.utils import encode_data_uri, strip_jsonp, ExtractorError, RegexNotFoundError |
|
|
@ -488,6 +489,91 @@ jwplayer("mediaplayer").setup({"abouttext":"Visit Indie DB","aboutlink":"http:\/ |
|
|
|
self.ie._sort_formats(formats) |
|
|
|
expect_value(self, formats, expected_formats, None) |
|
|
|
|
|
|
|
def test_parse_mpd_formats(self): |
|
|
|
_TEST_CASES = [ |
|
|
|
( |
|
|
|
# https://github.com/rg3/youtube-dl/issues/13919 |
|
|
|
'float_duration', |
|
|
|
'http://unknown/manifest.mpd', |
|
|
|
[{ |
|
|
|
'manifest_url': 'http://unknown/manifest.mpd', |
|
|
|
'ext': 'mp4', |
|
|
|
'format_id': '318597', |
|
|
|
'format_note': 'DASH video', |
|
|
|
'protocol': 'http_dash_segments', |
|
|
|
'acodec': 'none', |
|
|
|
'vcodec': 'avc1.42001f', |
|
|
|
'tbr': 318.597, |
|
|
|
'width': 340, |
|
|
|
'height': 192, |
|
|
|
}, { |
|
|
|
'manifest_url': 'http://unknown/manifest.mpd', |
|
|
|
'ext': 'mp4', |
|
|
|
'format_id': '638590', |
|
|
|
'format_note': 'DASH video', |
|
|
|
'protocol': 'http_dash_segments', |
|
|
|
'acodec': 'none', |
|
|
|
'vcodec': 'avc1.42001f', |
|
|
|
'tbr': 638.59, |
|
|
|
'width': 512, |
|
|
|
'height': 288, |
|
|
|
}, { |
|
|
|
'manifest_url': 'http://unknown/manifest.mpd', |
|
|
|
'ext': 'mp4', |
|
|
|
'format_id': '1022565', |
|
|
|
'format_note': 'DASH video', |
|
|
|
'protocol': 'http_dash_segments', |
|
|
|
'acodec': 'none', |
|
|
|
'vcodec': 'avc1.4d001f', |
|
|
|
'tbr': 1022.565, |
|
|
|
'width': 688, |
|
|
|
'height': 384, |
|
|
|
}, { |
|
|
|
'manifest_url': 'http://unknown/manifest.mpd', |
|
|
|
'ext': 'mp4', |
|
|
|
'format_id': '2046506', |
|
|
|
'format_note': 'DASH video', |
|
|
|
'protocol': 'http_dash_segments', |
|
|
|
'acodec': 'none', |
|
|
|
'vcodec': 'avc1.4d001f', |
|
|
|
'tbr': 2046.506, |
|
|
|
'width': 1024, |
|
|
|
'height': 576, |
|
|
|
}, { |
|
|
|
'manifest_url': 'http://unknown/manifest.mpd', |
|
|
|
'ext': 'mp4', |
|
|
|
'format_id': '3998017', |
|
|
|
'format_note': 'DASH video', |
|
|
|
'protocol': 'http_dash_segments', |
|
|
|
'acodec': 'none', |
|
|
|
'vcodec': 'avc1.640029', |
|
|
|
'tbr': 3998.017, |
|
|
|
'width': 1280, |
|
|
|
'height': 720, |
|
|
|
}, { |
|
|
|
'manifest_url': 'http://unknown/manifest.mpd', |
|
|
|
'ext': 'mp4', |
|
|
|
'format_id': '5997485', |
|
|
|
'format_note': 'DASH video', |
|
|
|
'protocol': 'http_dash_segments', |
|
|
|
'acodec': 'none', |
|
|
|
'vcodec': 'avc1.640032', |
|
|
|
'tbr': 5997.485, |
|
|
|
'width': 1920, |
|
|
|
'height': 1080, |
|
|
|
}] |
|
|
|
), |
|
|
|
] |
|
|
|
|
|
|
|
for mpd_file, mpd_url, expected_formats in _TEST_CASES: |
|
|
|
with io.open('./test/testdata/mpd/%s.mpd' % mpd_file, |
|
|
|
mode='r', encoding='utf-8') as f: |
|
|
|
formats = self.ie._parse_mpd_formats( |
|
|
|
compat_etree_fromstring(f.read().encode('utf-8')), |
|
|
|
mpd_url=mpd_url) |
|
|
|
self.ie._sort_formats(formats) |
|
|
|
expect_value(self, formats, expected_formats, None) |
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__': |
|
|
|
unittest.main() |