Let youtube IE handle IDs starting with PL (Closes #572)

This commit is contained in:
Philipp Hagemeister 2012-12-04 10:59:38 +01:00
parent 4083bf81a0
commit e387eb5aba
3 changed files with 25 additions and 1 deletions

View File

@ -1,3 +1,5 @@
#!/usr/bin/env python
# Various small unit tests
import sys

View 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()

View File

@ -1671,7 +1671,7 @@ def _download_n_results(self, query, n):
class YoutubePlaylistIE(InfoExtractor):
"""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'
_VIDEO_INDICATOR_TEMPLATE = r'/watch\?v=(.+?)&([^&"]+&)*list=.*?%s'
_MORE_PAGES_INDICATOR = r'yt-uix-pager-next'