[test_InfoExtractor] Add test for #20346
This commit is contained in:
		
							parent
							
								
									79d2077edc
								
							
						
					
					
						commit
						2e27421c70
					
				
					 2 changed files with 80 additions and 4 deletions
				
			
		| 
						 | 
					@ -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)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										28
									
								
								test/testdata/mpd/unfragmented.mpd
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								test/testdata/mpd/unfragmented.mpd
									
										
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,28 @@
 | 
				
			||||||
 | 
					<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 | 
				
			||||||
 | 
					<MPD mediaPresentationDuration="PT54.915S" minBufferTime="PT1.500S" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" type="static" xmlns="urn:mpeg:dash:schema:mpd:2011">
 | 
				
			||||||
 | 
					    <Period duration="PT54.915S">
 | 
				
			||||||
 | 
					        <AdaptationSet segmentAlignment="true" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
 | 
				
			||||||
 | 
					            <Representation bandwidth="804261" codecs="avc1.4d401e" frameRate="30" height="360" id="VIDEO-1" mimeType="video/mp4" startWithSAP="1" width="360">
 | 
				
			||||||
 | 
					                <BaseURL>DASH_360</BaseURL>
 | 
				
			||||||
 | 
					                <SegmentBase indexRange="915-1114" indexRangeExact="true">
 | 
				
			||||||
 | 
					                    <Initialization range="0-914"/>
 | 
				
			||||||
 | 
					                </SegmentBase>
 | 
				
			||||||
 | 
					            </Representation>
 | 
				
			||||||
 | 
					            <Representation bandwidth="608000" codecs="avc1.4d401e" frameRate="30" height="240" id="VIDEO-2" mimeType="video/mp4" startWithSAP="1" width="240">
 | 
				
			||||||
 | 
					                <BaseURL>DASH_240</BaseURL>
 | 
				
			||||||
 | 
					                <SegmentBase indexRange="913-1112" indexRangeExact="true">
 | 
				
			||||||
 | 
					                    <Initialization range="0-912"/>
 | 
				
			||||||
 | 
					                </SegmentBase>
 | 
				
			||||||
 | 
					            </Representation>
 | 
				
			||||||
 | 
					        </AdaptationSet>
 | 
				
			||||||
 | 
					        <AdaptationSet>
 | 
				
			||||||
 | 
					            <Representation audioSamplingRate="48000" bandwidth="129870" codecs="mp4a.40.2" id="AUDIO-1" mimeType="audio/mp4" startWithSAP="1">
 | 
				
			||||||
 | 
					                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
 | 
				
			||||||
 | 
					                <BaseURL>audio</BaseURL>
 | 
				
			||||||
 | 
					                <SegmentBase indexRange="832-1007" indexRangeExact="true">
 | 
				
			||||||
 | 
					                    <Initialization range="0-831"/>
 | 
				
			||||||
 | 
					                </SegmentBase>
 | 
				
			||||||
 | 
					            </Representation>
 | 
				
			||||||
 | 
					        </AdaptationSet>
 | 
				
			||||||
 | 
					    </Period>
 | 
				
			||||||
 | 
					</MPD>
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue