[youtube:favorites] Restore extractor
authorSergey M․ <dstftw@gmail.com>
Mon, 23 Nov 2020 15:33:21 +0000 (22:33 +0700)
committerSergey M․ <dstftw@gmail.com>
Mon, 23 Nov 2020 15:33:21 +0000 (22:33 +0700)
youtube_dl/extractor/extractors.py
youtube_dl/extractor/youtube.py

index 7ba4087fd7944805d4ca6e73696d10011dbf06aa..71178da7ef87914bb67b1c78c989e43cac05f136 100644 (file)
@@ -1491,6 +1491,7 @@ from .yourporn import YourPornIE
 from .yourupload import YourUploadIE
 from .youtube import (
     YoutubeIE,
+    YoutubeFavouritesIE,
     YoutubeHistoryIE,
     YoutubeTabIE,
     YoutubePlaylistIE,
index 8f814a81c24a5224597dde90a8e2e9a2fa34cd68..29c1d041370caebc98405004aece7a3cf6e92856 100644 (file)
@@ -3149,6 +3149,25 @@ class YoutubeYtUserIE(InfoExtractor):
             ie=YoutubeTabIE.ie_key(), video_id=user_id)
 
 
+class YoutubeFavouritesIE(YoutubeBaseInfoExtractor):
+    IE_NAME = 'youtube:favorites'
+    IE_DESC = 'YouTube.com favourite videos, ":ytfav" for short (requires authentication)'
+    _VALID_URL = r'https?://(?:www\.)?youtube\.com/my_favorites|:ytfav(?:ou?rites)?'
+    _LOGIN_REQUIRED = True
+    _TESTS = [{
+        'url': ':ytfav',
+        'only_matching': True,
+    }, {
+        'url': ':ytfavorites',
+        'only_matching': True,
+    }]
+
+    def _real_extract(self, url):
+        return self.url_result(
+            'https://www.youtube.com/playlist?list=LL',
+            ie=YoutubeTabIE.ie_key())
+
+
 class YoutubeSearchIE(SearchInfoExtractor, YoutubeBaseInfoExtractor):
     IE_DESC = 'YouTube.com searches'
     # there doesn't appear to be a real limit, for example if you search for