aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--yt_dlp/extractor/twitch.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/yt_dlp/extractor/twitch.py b/yt_dlp/extractor/twitch.py
index 6321297bb..9b333f6f6 100644
--- a/yt_dlp/extractor/twitch.py
+++ b/yt_dlp/extractor/twitch.py
@@ -179,6 +179,14 @@ class TwitchBaseIE(InfoExtractor):
video_id, ops,
'Downloading %s access token GraphQL' % token_kind)['data'][method]
+ def _get_thumbnails(self, thumbnail):
+ return [{
+ 'url': re.sub(r'\d+x\d+(\.\w+)($|(?=[?#]))', r'0x0\g<1>', thumbnail),
+ 'preference': 1,
+ }, {
+ 'url': thumbnail,
+ }] if thumbnail else None
+
class TwitchVodIE(TwitchBaseIE):
IE_NAME = 'twitch:vod'
@@ -460,15 +468,13 @@ class TwitchVodIE(TwitchBaseIE):
is_live, thumbnail = True, None
else:
is_live = False
- for p in ('width', 'height'):
- thumbnail = thumbnail.replace('{%s}' % p, '0')
return {
'id': vod_id,
'title': info.get('title') or 'Untitled Broadcast',
'description': info.get('description'),
'duration': int_or_none(info.get('lengthSeconds')),
- 'thumbnail': thumbnail,
+ 'thumbnails': self._get_thumbnails(thumbnail),
'uploader': try_get(info, lambda x: x['owner']['displayName'], compat_str),
'uploader_id': try_get(info, lambda x: x['owner']['login'], compat_str),
'timestamp': unified_timestamp(info.get('publishedAt')),
@@ -1053,7 +1059,7 @@ class TwitchStreamIE(TwitchBaseIE):
'display_id': channel_name,
'title': title,
'description': description,
- 'thumbnail': thumbnail,
+ 'thumbnails': self._get_thumbnails(thumbnail),
'uploader': uploader,
'uploader_id': channel_name,
'timestamp': timestamp,