|
@@ -574,7 +574,8 @@ jwplayer("mediaplayer").setup({"abouttext":"Visit Indie DB","aboutlink":"http:\/
|
|
# Also tests duplicate representation ids, see
|
|
# Also tests duplicate representation ids, see
|
|
# https://github.com/ytdl-org/youtube-dl/issues/15111
|
|
# https://github.com/ytdl-org/youtube-dl/issues/15111
|
|
'float_duration',
|
|
'float_duration',
|
|
- 'http://unknown/manifest.mpd',
|
|
|
|
|
|
+ 'http://unknown/manifest.mpd', # mpd_url
|
|
|
|
+ None, # mpd_base_url
|
|
[{
|
|
[{
|
|
'manifest_url': 'http://unknown/manifest.mpd',
|
|
'manifest_url': 'http://unknown/manifest.mpd',
|
|
'ext': 'm4a',
|
|
'ext': 'm4a',
|
|
@@ -654,7 +655,8 @@ jwplayer("mediaplayer").setup({"abouttext":"Visit Indie DB","aboutlink":"http:\/
|
|
), (
|
|
), (
|
|
# https://github.com/ytdl-org/youtube-dl/pull/14844
|
|
# https://github.com/ytdl-org/youtube-dl/pull/14844
|
|
'urls_only',
|
|
'urls_only',
|
|
- 'http://unknown/manifest.mpd',
|
|
|
|
|
|
+ 'http://unknown/manifest.mpd', # mpd_url
|
|
|
|
+ None, # mpd_base_url
|
|
[{
|
|
[{
|
|
'manifest_url': 'http://unknown/manifest.mpd',
|
|
'manifest_url': 'http://unknown/manifest.mpd',
|
|
'ext': 'mp4',
|
|
'ext': 'mp4',
|
|
@@ -733,15 +735,61 @@ jwplayer("mediaplayer").setup({"abouttext":"Visit Indie DB","aboutlink":"http:\/
|
|
'width': 1920,
|
|
'width': 1920,
|
|
'height': 1080,
|
|
'height': 1080,
|
|
}]
|
|
}]
|
|
|
|
+ ), (
|
|
|
|
+ # https://github.com/ytdl-org/youtube-dl/issues/20346
|
|
|
|
+ # Media considered unfragmented even though it contains
|
|
|
|
+ # Initialization tag
|
|
|
|
+ 'unfragmented',
|
|
|
|
+ 'https://v.redd.it/hw1x7rcg7zl21/DASHPlaylist.mpd', # mpd_url
|
|
|
|
+ 'https://v.redd.it/hw1x7rcg7zl21', # mpd_base_url
|
|
|
|
+ [{
|
|
|
|
+ 'url': 'https://v.redd.it/hw1x7rcg7zl21/audio',
|
|
|
|
+ 'manifest_url': 'https://v.redd.it/hw1x7rcg7zl21/DASHPlaylist.mpd',
|
|
|
|
+ 'ext': 'm4a',
|
|
|
|
+ 'format_id': 'AUDIO-1',
|
|
|
|
+ 'format_note': 'DASH audio',
|
|
|
|
+ 'container': 'm4a_dash',
|
|
|
|
+ 'acodec': 'mp4a.40.2',
|
|
|
|
+ 'vcodec': 'none',
|
|
|
|
+ 'tbr': 129.87,
|
|
|
|
+ 'asr': 48000,
|
|
|
|
+
|
|
|
|
+ }, {
|
|
|
|
+ 'url': 'https://v.redd.it/hw1x7rcg7zl21/DASH_240',
|
|
|
|
+ 'manifest_url': 'https://v.redd.it/hw1x7rcg7zl21/DASHPlaylist.mpd',
|
|
|
|
+ 'ext': 'mp4',
|
|
|
|
+ 'format_id': 'VIDEO-2',
|
|
|
|
+ 'format_note': 'DASH video',
|
|
|
|
+ 'container': 'mp4_dash',
|
|
|
|
+ 'acodec': 'none',
|
|
|
|
+ 'vcodec': 'avc1.4d401e',
|
|
|
|
+ 'tbr': 608.0,
|
|
|
|
+ 'width': 240,
|
|
|
|
+ 'height': 240,
|
|
|
|
+ 'fps': 30,
|
|
|
|
+ }, {
|
|
|
|
+ 'url': 'https://v.redd.it/hw1x7rcg7zl21/DASH_360',
|
|
|
|
+ 'manifest_url': 'https://v.redd.it/hw1x7rcg7zl21/DASHPlaylist.mpd',
|
|
|
|
+ 'ext': 'mp4',
|
|
|
|
+ 'format_id': 'VIDEO-1',
|
|
|
|
+ 'format_note': 'DASH video',
|
|
|
|
+ 'container': 'mp4_dash',
|
|
|
|
+ 'acodec': 'none',
|
|
|
|
+ 'vcodec': 'avc1.4d401e',
|
|
|
|
+ 'tbr': 804.261,
|
|
|
|
+ 'width': 360,
|
|
|
|
+ 'height': 360,
|
|
|
|
+ 'fps': 30,
|
|
|
|
+ }]
|
|
)
|
|
)
|
|
]
|
|
]
|
|
|
|
|
|
- for mpd_file, mpd_url, expected_formats in _TEST_CASES:
|
|
|
|
|
|
+ for mpd_file, mpd_url, mpd_base_url, expected_formats in _TEST_CASES:
|
|
with io.open('./test/testdata/mpd/%s.mpd' % mpd_file,
|
|
with io.open('./test/testdata/mpd/%s.mpd' % mpd_file,
|
|
mode='r', encoding='utf-8') as f:
|
|
mode='r', encoding='utf-8') as f:
|
|
formats = self.ie._parse_mpd_formats(
|
|
formats = self.ie._parse_mpd_formats(
|
|
compat_etree_fromstring(f.read().encode('utf-8')),
|
|
compat_etree_fromstring(f.read().encode('utf-8')),
|
|
- mpd_url=mpd_url)
|
|
|
|
|
|
+ mpd_base_url=mpd_base_url, mpd_url=mpd_url)
|
|
self.ie._sort_formats(formats)
|
|
self.ie._sort_formats(formats)
|
|
expect_value(self, formats, expected_formats, None)
|
|
expect_value(self, formats, expected_formats, None)
|
|
|
|
|