|
@ -1490,7 +1490,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor, SubtitlesInfoExtractor): |
|
|
}) |
|
|
}) |
|
|
return results |
|
|
return results |
|
|
|
|
|
|
|
|
class YoutubePlaylistIE(InfoExtractor): |
|
|
|
|
|
|
|
|
class YoutubePlaylistIE(YoutubeBaseInfoExtractor): |
|
|
IE_DESC = u'YouTube.com playlists' |
|
|
IE_DESC = u'YouTube.com playlists' |
|
|
_VALID_URL = r"""(?: |
|
|
_VALID_URL = r"""(?: |
|
|
(?:https?://)? |
|
|
(?:https?://)? |
|
@ -1516,6 +1516,9 @@ class YoutubePlaylistIE(InfoExtractor): |
|
|
"""Receives a URL and returns True if suitable for this IE.""" |
|
|
"""Receives a URL and returns True if suitable for this IE.""" |
|
|
return re.match(cls._VALID_URL, url, re.VERBOSE) is not None |
|
|
return re.match(cls._VALID_URL, url, re.VERBOSE) is not None |
|
|
|
|
|
|
|
|
|
|
|
def _real_initialize(self): |
|
|
|
|
|
self._login() |
|
|
|
|
|
|
|
|
def _real_extract(self, url): |
|
|
def _real_extract(self, url): |
|
|
# Extract playlist id |
|
|
# Extract playlist id |
|
|
mobj = re.match(self._VALID_URL, url, re.VERBOSE) |
|
|
mobj = re.match(self._VALID_URL, url, re.VERBOSE) |
|
|