[youtube:subscriptions] Use colon for differentiation of shortcuts
authorPhilipp Hagemeister <phihag@phihag.de>
Sun, 7 Jul 2013 15:13:26 +0000 (17:13 +0200)
committerPhilipp Hagemeister <phihag@phihag.de>
Sun, 7 Jul 2013 15:13:26 +0000 (17:13 +0200)
test/test_all_urls.py
youtube_dl/extractor/youtube.py

index 39a5ee33a70d181b7e6e33786f2d6fedb044c3a3..c73d0e4679853b3e80bd9832a57b0d804265895a 100644 (file)
@@ -61,6 +61,17 @@ class TestAllURLsMatching(unittest.TestCase):
                 else:
                     self.assertFalse(ie.suitable(url), '%s should not match URL %r' % (type(ie).__name__, url))
 
+    def test_keywords(self):
+        ies = gen_extractors()
+        matching_ies = lambda url: [ie.IE_NAME for ie in ies
+                                    if ie.suitable(url) and ie.IE_NAME != 'generic']
+        self.assertEqual(matching_ies(':ytsubs'), ['youtube:subscriptions'])
+        self.assertEqual(matching_ies(':ytsubscriptions'), ['youtube:subscriptions'])
+        self.assertEqual(matching_ies(':thedailyshow'), ['ComedyCentral'])
+        self.assertEqual(matching_ies(':tds'), ['ComedyCentral'])
+        self.assertEqual(matching_ies(':colbertreport'), ['ComedyCentral'])
+        self.assertEqual(matching_ies(':cr'), ['ComedyCentral'])
+
 
 if __name__ == '__main__':
     unittest.main()
index 7ca6244e9f34e2f02d41af7f2e3fdd9305b61069..7a2a8a4f811bb574ab419db26c5cc13e08d16cab 100644 (file)
@@ -870,14 +870,14 @@ class YoutubeShowIE(InfoExtractor):
 
 class YoutubeSubscriptionsIE(YoutubeIE):
     """It's a subclass of YoutubeIE because we need to login"""
-    IE_DESC = u'YouTube.com subscriptions feed, "ytsubscriptions" keyword(requires authentication)'
-    _VALID_URL = r'https?://www\.youtube\.com/feed/subscriptions|ytsubscriptions'
+    IE_DESC = u'YouTube.com subscriptions feed, "ytsubs" keyword(requires authentication)'
+    _VALID_URL = r'https?://www\.youtube\.com/feed/subscriptions|:ytsubs(?:criptions)?'
     IE_NAME = u'youtube:subscriptions'
     _FEED_TEMPLATE = 'http://www.youtube.com/feed_ajax?action_load_system_feed=1&feed_name=subscriptions&paging=%s'
     _PAGING_STEP = 30
 
+    # Overwrite YoutubeIE properties we don't want
     _TESTS = []
-
     @classmethod
     def suitable(cls, url):
         return re.match(cls._VALID_URL, url) is not None