mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 22:55:18 +00:00 
			
		
		
		
	[ie/youtube:tab] Fix shorts tab extraction (#10938)
Closes #10936 Authored by: seproDev
This commit is contained in:
		| @@ -5088,7 +5088,7 @@ class YoutubeTabBaseInfoExtractor(YoutubeBaseInfoExtractor): | ||||
|     def _rich_entries(self, rich_grid_renderer): | ||||
|         renderer = traverse_obj( | ||||
|             rich_grid_renderer, | ||||
|             ('content', ('videoRenderer', 'reelItemRenderer', 'playlistRenderer')), get_all=False) or {} | ||||
|             ('content', ('videoRenderer', 'reelItemRenderer', 'playlistRenderer', 'shortsLockupViewModel'), any)) or {} | ||||
|         video_id = renderer.get('videoId') | ||||
|         if video_id: | ||||
|             yield self._extract_video(renderer) | ||||
| @@ -5100,6 +5100,21 @@ class YoutubeTabBaseInfoExtractor(YoutubeBaseInfoExtractor): | ||||
|                 ie=YoutubeTabIE.ie_key(), video_id=playlist_id, | ||||
|                 video_title=self._get_text(renderer, 'title')) | ||||
|             return | ||||
|         # shortsLockupViewModel extraction | ||||
|         entity_id = renderer.get('entityId') | ||||
|         if entity_id: | ||||
|             video_id = traverse_obj(renderer, ('onTap', 'innertubeCommand', 'reelWatchEndpoint', 'videoId', {str})) | ||||
|             if not video_id: | ||||
|                 return | ||||
|             yield self.url_result( | ||||
|                 f'https://www.youtube.com/shorts/{video_id}', | ||||
|                 ie=YoutubeIE, video_id=video_id, | ||||
|                 **traverse_obj(renderer, ('overlayMetadata', { | ||||
|                     'title': ('primaryText', 'content', {str}), | ||||
|                     'view_count': ('secondaryText', 'content', {parse_count}), | ||||
|                 })), | ||||
|                 thumbnails=self._extract_thumbnails(renderer, 'thumbnail', final_key='sources')) | ||||
|             return | ||||
| 
 | ||||
|     def _video_entry(self, video_renderer): | ||||
|         video_id = video_renderer.get('videoId') | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 sepro
					sepro