mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-11-04 00:25:15 +00:00 
			
		
		
		
	Let youtube IE handle IDs starting with PL (Closes #572)
This commit is contained in:
		@@ -1,3 +1,5 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env python
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Various small unit tests
 | 
					# Various small unit tests
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import sys
 | 
					import sys
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										22
									
								
								test/test_youtube_playlist_ids.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								test/test_youtube_playlist_ids.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env python
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import sys
 | 
				
			||||||
 | 
					import unittest
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Allow direct execution
 | 
				
			||||||
 | 
					import os
 | 
				
			||||||
 | 
					sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from youtube_dl.InfoExtractors import YoutubeIE, YoutubePlaylistIE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class TestYoutubePlaylistMatching(unittest.TestCase):
 | 
				
			||||||
 | 
					    def test_playlist_matching(self):
 | 
				
			||||||
 | 
					        assert YoutubePlaylistIE().suitable(u'ECUl4u3cNGP61MdtwGTqZA0MreSaDybji8')
 | 
				
			||||||
 | 
					        assert YoutubePlaylistIE().suitable(u'PL63F0C78739B09958')
 | 
				
			||||||
 | 
					        assert not YoutubePlaylistIE().suitable(u'PLtS2H6bU1M')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_youtube_matching(self):
 | 
				
			||||||
 | 
					        assert YoutubeIE().suitable(u'PLtS2H6bU1M')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if __name__ == '__main__':
 | 
				
			||||||
 | 
					    unittest.main()
 | 
				
			||||||
@@ -1671,7 +1671,7 @@ class YahooSearchIE(InfoExtractor):
 | 
				
			|||||||
class YoutubePlaylistIE(InfoExtractor):
 | 
					class YoutubePlaylistIE(InfoExtractor):
 | 
				
			||||||
    """Information Extractor for YouTube playlists."""
 | 
					    """Information Extractor for YouTube playlists."""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    _VALID_URL = r'(?:(?:https?://)?(?:\w+\.)?youtube\.com/(?:(?:course|view_play_list|my_playlists|artist|playlist)\?.*?(p|a|list)=|user/.*?/user/|p/|user/.*?#[pg]/c/)(?:PL|EC)?|PL|EC)([0-9A-Za-z-_]+)(?:/.*?/([0-9A-Za-z_-]+))?.*'
 | 
					    _VALID_URL = r'(?:(?:https?://)?(?:\w+\.)?youtube\.com/(?:(?:course|view_play_list|my_playlists|artist|playlist)\?.*?(p|a|list)=|user/.*?/user/|p/|user/.*?#[pg]/c/)(?:PL|EC)?|PL|EC)([0-9A-Za-z-_]{10,})(?:/.*?/([0-9A-Za-z_-]+))?.*'
 | 
				
			||||||
    _TEMPLATE_URL = 'http://www.youtube.com/%s?%s=%s&page=%s&gl=US&hl=en'
 | 
					    _TEMPLATE_URL = 'http://www.youtube.com/%s?%s=%s&page=%s&gl=US&hl=en'
 | 
				
			||||||
    _VIDEO_INDICATOR_TEMPLATE = r'/watch\?v=(.+?)&([^&"]+&)*list=.*?%s'
 | 
					    _VIDEO_INDICATOR_TEMPLATE = r'/watch\?v=(.+?)&([^&"]+&)*list=.*?%s'
 | 
				
			||||||
    _MORE_PAGES_INDICATOR = r'yt-uix-pager-next'
 | 
					    _MORE_PAGES_INDICATOR = r'yt-uix-pager-next'
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user