From e42f4a53e8e2386fc46ed7307d170ee39bf2a028 Mon Sep 17 00:00:00 2001 From: vvto33 <54504675+vvto33@users.noreply.github.com> Date: Thu, 21 Mar 2024 15:44:37 +0900 Subject: [PATCH] Add thumbnail URL support For cases where the thumbnail obtained from BrightCove is the broadcaster's default image, this change ensures that the thumbnail hosted by TVer.jp is always used instead. --- yt_dlp/extractor/tver.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/yt_dlp/extractor/tver.py b/yt_dlp/extractor/tver.py index 5f7896837..ee4ea72db 100644 --- a/yt_dlp/extractor/tver.py +++ b/yt_dlp/extractor/tver.py @@ -65,11 +65,13 @@ class TVerIE(InfoExtractor): episode_content = traverse_obj( episode_info, ('result', 'episode', 'content')) or {} + version = str_or_none(episode_content.get('version')) or '5' video_info = self._download_json( f'https://statics.tver.jp/content/episode/{video_id}.json', video_id, query={ - 'v': str_or_none(episode_content.get('version')) or '5', - }, headers={ + 'v': version, + }, + headers={ 'Origin': 'https://tver.jp', 'Referer': 'https://tver.jp/', }) @@ -88,6 +90,21 @@ class TVerIE(InfoExtractor): provider = str_or_none(episode_content.get('productionProviderName')) onair_label = str_or_none(episode_content.get('broadcastDateLabel')) + thumbnails = [ + { + 'id': quality, + 'url': f'https://statics.tver.jp/images/content/thumbnail/episode/{quality}/{video_id}.jpg?v={version}', + 'width': width, + 'height': height, + } + for quality, width, height in [ + ('small', 480, 270), + ('medium', 640, 360), + ('large', 960, 540), + ('xlarge', 1280, 720), + ] + ] + return { '_type': 'url_transparent', 'title': title, @@ -97,6 +114,7 @@ class TVerIE(InfoExtractor): 'alt_title': join_nonempty(title, provider, onair_label, delim=' '), 'channel': provider, 'description': str_or_none(video_info.get('description')), + 'thumbnails': thumbnails, 'url': smuggle_url( self.BRIGHTCOVE_URL_TEMPLATE % (p_id, r_id), {'geo_countries': ['JP']}), 'ie_key': 'BrightcoveNew',