diff options
| author | Sergey M․ <dstftw@gmail.com> | 2015-12-20 07:48:16 +0600 | 
|---|---|---|
| committer | Sergey M․ <dstftw@gmail.com> | 2015-12-20 07:48:16 +0600 | 
| commit | e462474e1d944e8b1547edc619a13a7ee2abbc2b (patch) | |
| tree | 9ee3a8397e4d3a9fc8d3c2f17368726ceda02ab8 | |
| parent | 6b77d52b1f8ca3777284e4164e5363c110aeba66 (diff) | |
[youtube] Generalize playlists extractor
| -rw-r--r-- | youtube_dl/extractor/__init__.py | 2 | ||||
| -rw-r--r-- | youtube_dl/extractor/youtube.py | 19 | 
2 files changed, 16 insertions, 5 deletions
| diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index 65c5e1c92..eac50eda5 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -852,7 +852,7 @@ from .youtube import (      YoutubeTruncatedIDIE,      YoutubeTruncatedURLIE,      YoutubeUserIE, -    YoutubeUserPlaylistsIE, +    YoutubePlaylistsIE,      YoutubeWatchLaterIE,  )  from .zapiks import ZapiksIE diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index 89759a1cb..4aac2cc03 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -1775,6 +1775,10 @@ class YoutubeChannelIE(YoutubePlaylistBaseInfoExtractor):          },      }] +    @classmethod +    def suitable(cls, url): +        return False if YoutubePlaylistsIE.suitable(url) else super(YoutubeChannelIE, cls).suitable(url) +      def _real_extract(self, url):          channel_id = self._match_id(url) @@ -1848,10 +1852,10 @@ class YoutubeUserIE(YoutubeChannelIE):              return super(YoutubeUserIE, cls).suitable(url) -class YoutubeUserPlaylistsIE(YoutubePlaylistsBaseInfoExtractor): -    IE_DESC = 'YouTube.com user playlists' -    _VALID_URL = r'https?://(?:\w+\.)?youtube\.com/user/(?P<id>[^/]+)/playlists' -    IE_NAME = 'youtube:user:playlists' +class YoutubePlaylistsIE(YoutubePlaylistsBaseInfoExtractor): +    IE_DESC = 'YouTube.com user/channel playlists' +    _VALID_URL = r'https?://(?:\w+\.)?youtube\.com/(?:user|channel)/(?P<id>[^/]+)/playlists' +    IE_NAME = 'youtube:playlists'      _TESTS = [{          'url': 'http://www.youtube.com/user/ThirstForScience/playlists', @@ -1868,6 +1872,13 @@ class YoutubeUserPlaylistsIE(YoutubePlaylistsBaseInfoExtractor):              'id': 'igorkle1',              'title': 'Игорь Клейнер',          }, +    }, { +        'url': 'https://www.youtube.com/channel/UCiU1dHvZObB2iP6xkJ__Icw/playlists', +        'playlist_mincount': 17, +        'info_dict': { +            'id': 'UCiU1dHvZObB2iP6xkJ__Icw', +            'title': 'Chem Player', +        },      }] | 
