diff options
| -rw-r--r-- | youtube_dl/extractor/youtube.py | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index 9a1b87304..044796018 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -3664,15 +3664,25 @@ class YoutubeTabIE(YoutubeBaseInfoExtractor): 'Unsupported lockup view model content type "{0}"{1}'.format(content_type, bug_reports_message()), only_once=True) return + thumb_keys = ('contentImage',) + thumb_keys + ('thumbnailViewModel', 'image') + return merge_dicts(self.url_result( - url, ie=ie.ie_key(), video_id=content_id), { - 'title': traverse_obj(view_model, ( - 'metadata', 'lockupMetadataViewModel', 'title', - 'content', T(compat_str))), - 'thumbnails': self._extract_thumbnails( - view_model, thumb_keys, final_key='sources'), - }) + url, ie=ie.ie_key(), video_id=content_id), + traverse_obj(view_model, { + 'title': ('metadata', 'lockupMetadataViewModel', 'title', + 'content', T(compat_str)), + 'thumbnails': T(lambda vm: self._extract_thumbnails( + vm, thumb_keys, final_key='sources')), + 'duration': ( + 'contentImage', 'thumbnailViewModel', 'overlays', + Ellipsis, ( + ('thumbnailBottomOverlayViewModel', 'badges'), + ('thumbnailOverlayBadgeViewModel', 'thumbnailBadges') + ), Ellipsis, 'thumbnailBadgeViewModel', 'text', + T(parse_duration), any), + }) + ) def _extract_shorts_lockup_view_model(self, view_model): content_id = traverse_obj(view_model, ( |
