[youtube] add an extractor for the "Watch Later" list
This commit is contained in:
		| @@ -93,6 +93,7 @@ from .youtube import ( | ||||
|     YoutubeShowIE, | ||||
|     YoutubeSubscriptionsIE, | ||||
|     YoutubeRecommendedIE, | ||||
|     YoutubeWatchLaterIE, | ||||
|     YoutubeFavouritesIE, | ||||
| ) | ||||
| from .zdf import ZDFIE | ||||
|   | ||||
| @@ -920,10 +920,15 @@ class YoutubeFeedsInfoExtractor(YoutubeBaseInfoExtractor): | ||||
|     """ | ||||
|     _LOGIN_REQUIRED = True | ||||
|     _PAGING_STEP = 30 | ||||
|     # use action_load_personal_feed instead of action_load_system_feed | ||||
|     _PERSONAL_FEED = False | ||||
|  | ||||
|     @property | ||||
|     def _FEED_TEMPLATE(self): | ||||
|         return 'http://www.youtube.com/feed_ajax?action_load_system_feed=1&feed_name=%s&paging=%%s' % self._FEED_NAME | ||||
|         action = 'action_load_system_feed' | ||||
|         if self._PERSONAL_FEED: | ||||
|             action = 'action_load_personal_feed' | ||||
|         return 'http://www.youtube.com/feed_ajax?%s=1&feed_name=%s&paging=%%s' % (action, self._FEED_NAME) | ||||
|  | ||||
|     @property | ||||
|     def IE_NAME(self): | ||||
| @@ -942,7 +947,7 @@ class YoutubeFeedsInfoExtractor(YoutubeBaseInfoExtractor): | ||||
|                                           u'Downloading page %s' % i) | ||||
|             info = json.loads(info) | ||||
|             feed_html = info['feed_html'] | ||||
|             m_ids = re.finditer(r'"/watch\?v=(.*?)"', feed_html) | ||||
|             m_ids = re.finditer(r'"/watch\?v=(.*?)["&]', feed_html) | ||||
|             ids = orderedSet(m.group(1) for m in m_ids) | ||||
|             feed_entries.extend(self.url_result(id, 'Youtube') for id in ids) | ||||
|             if info['paging'] is None: | ||||
| @@ -961,6 +966,13 @@ class YoutubeRecommendedIE(YoutubeFeedsInfoExtractor): | ||||
|     _FEED_NAME = 'recommended' | ||||
|     _PLAYLIST_TITLE = u'Youtube Recommended videos' | ||||
|  | ||||
| class YoutubeWatchLaterIE(YoutubeFeedsInfoExtractor): | ||||
|     IE_DESC = u'Youtube watch later list, "ytwatchlater" keyword (requires authentication)' | ||||
|     _VALID_URL = r'https?://www\.youtube\.com/feed/watch_later|:ytwatchlater' | ||||
|     _FEED_NAME = 'watch_later' | ||||
|     _PLAYLIST_TITLE = u'Youtube Watch Later' | ||||
|     _PAGING_STEP = 100 | ||||
|     _PERSONAL_FEED = True | ||||
|  | ||||
| class YoutubeFavouritesIE(YoutubeBaseInfoExtractor): | ||||
|     IE_NAME = u'youtube:favorites' | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Jaime Marquínez Ferrándiz
					Jaime Marquínez Ferrándiz