diff options
| author | Jaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com> | 2013-09-06 14:38:41 +0200 | 
|---|---|---|
| committer | Jaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com> | 2013-09-06 14:45:49 +0200 | 
| commit | faab1d3836ca6c2a3c28ee02efe25d211282f45f (patch) | |
| tree | 07a84621be0c9b8b01f701af4a52de2302ce7b7a | |
| parent | 59282080c894524e5ee72eb5aaf3aa3c3445cddc (diff) | |
[youtube] Fix detection of feeds urls (fixes #1294)
Urls like https://www.youtube.com/feed/watch_later were being as users (before the last changes to YoutubeUserIE, as videos)
| -rw-r--r-- | test/test_all_urls.py | 6 | ||||
| -rw-r--r-- | youtube_dl/extractor/youtube.py | 4 | 
2 files changed, 8 insertions, 2 deletions
| diff --git a/test/test_all_urls.py b/test/test_all_urls.py index fe4090d18..219c453af 100644 --- a/test/test_all_urls.py +++ b/test/test_all_urls.py @@ -44,6 +44,12 @@ class TestAllURLsMatching(unittest.TestCase):      def test_youtube_user_matching(self):          self.assertMatch('www.youtube.com/NASAgovVideo/videos', ['youtube:user']) +    def test_youtube_feeds(self): +        self.assertMatch('https://www.youtube.com/feed/watch_later', ['youtube:watch_later']) +        self.assertMatch('https://www.youtube.com/feed/subscriptions', ['youtube:subscriptions']) +        self.assertMatch('https://www.youtube.com/feed/recommended', ['youtube:recommended']) +        self.assertMatch('https://www.youtube.com/my_favorites', ['youtube:favorites']) +      def test_justin_tv_channelid_matching(self):          self.assertTrue(JustinTVIE.suitable(u"justin.tv/vanillatv"))          self.assertTrue(JustinTVIE.suitable(u"twitch.tv/vanillatv")) diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index 98a44f333..62aecea02 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -1015,14 +1015,14 @@ class YoutubeChannelIE(InfoExtractor):  class YoutubeUserIE(InfoExtractor):      IE_DESC = u'YouTube.com user videos (URL or "ytuser" keyword)' -    _VALID_URL = r'(?:(?:(?:https?://)?(?:\w+\.)?youtube\.com/(?:user/)?)|ytuser:)([A-Za-z0-9_-]+)' +    _VALID_URL = r'(?:(?:(?:https?://)?(?:\w+\.)?youtube\.com/(?:user/)?)|ytuser:)(?!feed/)([A-Za-z0-9_-]+)'      _TEMPLATE_URL = 'http://gdata.youtube.com/feeds/api/users/%s'      _GDATA_PAGE_SIZE = 50      _GDATA_URL = 'http://gdata.youtube.com/feeds/api/users/%s/uploads?max-results=%d&start-index=%d&alt=json'      IE_NAME = u'youtube:user'      def suitable(cls, url): -        if YoutubeIE.suitable(url): return False +        if YoutubeIE.suitable(url) or YoutubeFavouritesIE.suitable(url): return False          else: return super(YoutubeUserIE, cls).suitable(url)      def _real_extract(self, url): | 
