Support more common YouTube playlist URLs
authorRicardo Garcia <sarbalap+freshmeat@gmail.com>
Sat, 12 Feb 2011 19:19:20 +0000 (20:19 +0100)
committerRicardo Garcia <sarbalap+freshmeat@gmail.com>
Sat, 12 Feb 2011 19:19:20 +0000 (20:19 +0100)
youtube-dl

index dd875a38eabf84b1e6e952abcc7bebf20956e590..0f9724637bc65378c9a49ebdd177fa13740399e1 100755 (executable)
@@ -2096,7 +2096,7 @@ class YahooSearchIE(InfoExtractor):
 class YoutubePlaylistIE(InfoExtractor):
        """Information Extractor for YouTube playlists."""
 
-       _VALID_URL = r'(?:http://)?(?:\w+\.)?youtube.com/(?:(?:view_play_list|my_playlists|artist)\?.*?(p|a)=|user/.*?/user/|p/)([^&]+).*'
+       _VALID_URL = r'(?:http://)?(?:\w+\.)?youtube.com/(?:(?:view_play_list|my_playlists|artist)\?.*?(p|a)=|user/.*?/user/|p/|user/.*?#[pg]/c/)([0-9A-Za-z]+)(?:/.*?/([0-9A-Za-z_-]+))?.*'
        _TEMPLATE_URL = 'http://www.youtube.com/%s?%s=%s&page=%s&gl=US&hl=en'
        _VIDEO_INDICATOR = r'/watch\?v=(.+?)&'
        _MORE_PAGES_INDICATOR = r'(?m)>\s*Next\s*</a>'
@@ -2124,6 +2124,11 @@ class YoutubePlaylistIE(InfoExtractor):
                        self._downloader.trouble(u'ERROR: invalid url: %s' % url)
                        return
 
+               # Single video case
+               if mobj.group(3) is not None:
+                       self._youtube_ie.extract(mobj.group(3))
+                       return
+
                # Download playlist pages
                # prefix is 'p' as default for playlists but there are other types that need extra care
                playlist_prefix = mobj.group(1)