mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	[extractor/generic] Support relative URIs in _parse_xspf
<location> can have relative URIs, not just absolute.
This commit is contained in:
		 Ricardo Constantino
					Ricardo Constantino
				
			
				
					committed by
					
						 Sergey M․
						Sergey M․
					
				
			
			
				
	
			
			
			 Sergey M․
						Sergey M․
					
				
			
						parent
						
							178ee88319
						
					
				
				
					commit
					96b8b9abae
				
			| @@ -694,6 +694,48 @@ jwplayer("mediaplayer").setup({"abouttext":"Visit Indie DB","aboutlink":"http:\/ | ||||
|                 self.ie._sort_formats(formats) | ||||
|                 expect_value(self, formats, expected_formats, None) | ||||
|  | ||||
|     def test_parse_xspf(self): | ||||
|         _TEST_CASES = [ | ||||
|             ( | ||||
|                 'foo_xspf', | ||||
|                 'https://example.org/src/', | ||||
|                 [{ | ||||
|                     'description': 'Visit http://bigbrother404.bandcamp.com', | ||||
|                     'duration': 202.416, | ||||
|                     'formats': [{'url': 'https://example.org/src/cd1/track%201.mp3'}], | ||||
|                     'id': 'foo_xspf', | ||||
|                     'title': 'Pandemonium' | ||||
|                 }, | ||||
|                 { | ||||
|                     'description': 'Visit http://bigbrother404.bandcamp.com', | ||||
|                     'duration': 255.857, | ||||
|                     'formats': [{'url': 'https://example.org/%E3%83%88%E3%83%A9%E3%83%83%E3%82%AF%E3%80%80%EF%BC%92.mp3'}], | ||||
|                     'id': 'foo_xspf', | ||||
|                     'title': 'Final Cartridge (Nichico Twelve Remix)' | ||||
|                 }, | ||||
|                 { | ||||
|                     'description': 'Visit http://bigbrother404.bandcamp.com', | ||||
|                     'duration': 287.915, | ||||
|                     'formats': [ | ||||
|                         {'url': 'https://example.org/src/track3.mp3'}, | ||||
|                         {'url': 'https://example.com/track3.mp3'} | ||||
|                     ], | ||||
|                     'id': 'foo_xspf', | ||||
|                     'title': 'Rebuilding Nightingale' | ||||
|                 }] | ||||
|             ), | ||||
|         ] | ||||
|  | ||||
|         for xspf_file, xspf_base_url, expected_entries in _TEST_CASES: | ||||
|             with io.open('./test/testdata/xspf/%s.xspf' % xspf_file, | ||||
|                          mode='r', encoding='utf-8') as f: | ||||
|                 entries = self.ie._parse_xspf( | ||||
|                     compat_etree_fromstring(f.read().encode('utf-8')), | ||||
|                         xspf_file, xspf_base_url) | ||||
|                 expect_value(self, entries, expected_entries, None) | ||||
|                 for i in range(len(entries)): | ||||
|                     expect_dict(self, entries[i], expected_entries[i]) | ||||
|  | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|     unittest.main() | ||||
|   | ||||
							
								
								
									
										34
									
								
								test/testdata/xspf/foo_xspf.xspf
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								test/testdata/xspf/foo_xspf.xspf
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <playlist version="1" xmlns="http://xspf.org/ns/0/"> | ||||
|     <date>2018-03-09T18:01:43Z</date> | ||||
|     <trackList> | ||||
|         <track> | ||||
|             <location>cd1/track%201.mp3</location> | ||||
|             <title>Pandemonium</title> | ||||
|             <creator>Foilverb</creator> | ||||
|             <annotation>Visit http://bigbrother404.bandcamp.com</annotation> | ||||
|             <album>Pandemonium EP</album> | ||||
|             <trackNum>1</trackNum> | ||||
|             <duration>202416</duration> | ||||
|         </track> | ||||
|         <track> | ||||
|             <location>../%E3%83%88%E3%83%A9%E3%83%83%E3%82%AF%E3%80%80%EF%BC%92.mp3</location> | ||||
|             <title>Final Cartridge (Nichico Twelve Remix)</title> | ||||
|             <annotation>Visit http://bigbrother404.bandcamp.com</annotation> | ||||
|             <creator>Foilverb</creator> | ||||
|             <album>Pandemonium EP</album> | ||||
|             <trackNum>2</trackNum> | ||||
|             <duration>255857</duration> | ||||
|         </track> | ||||
|         <track> | ||||
|             <location>track3.mp3</location> | ||||
|             <location>https://example.com/track3.mp3</location> | ||||
|             <title>Rebuilding Nightingale</title> | ||||
|             <annotation>Visit http://bigbrother404.bandcamp.com</annotation> | ||||
|             <creator>Foilverb</creator> | ||||
|             <album>Pandemonium EP</album> | ||||
|             <trackNum>3</trackNum> | ||||
|             <duration>287915</duration> | ||||
|         </track> | ||||
|     </trackList> | ||||
| </playlist> | ||||
		Reference in New Issue
	
	Block a user