From a33c0d9c5d6b58b9dc5c0c3adcf4407b64f8b56d Mon Sep 17 00:00:00 2001 From: DEvmIb Date: Sat, 27 Nov 2021 19:25:18 +0530 Subject: [PATCH] [twitch:vod] Extract live status (#1722) Authored by: DEvmIb --- yt_dlp/extractor/twitch.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/yt_dlp/extractor/twitch.py b/yt_dlp/extractor/twitch.py index c5b16f2b0..cd97f0a24 100644 --- a/yt_dlp/extractor/twitch.py +++ b/yt_dlp/extractor/twitch.py @@ -345,6 +345,7 @@ def _extract_info(self, info): 'timestamp': parse_iso8601(info.get('recorded_at')), 'view_count': int_or_none(info.get('views')), 'is_live': is_live, + 'was_live': True, } def _extract_moments(self, info, item_id): @@ -368,9 +369,14 @@ def _extract_info_gql(self, info, item_id): if vod_id[0] != 'v': vod_id = 'v%s' % vod_id thumbnail = url_or_none(info.get('previewThumbnailURL')) + is_live = None if thumbnail: - for p in ('width', 'height'): - thumbnail = thumbnail.replace('{%s}' % p, '0') + if thumbnail.endswith('/404_processing_{width}x{height}.png'): + is_live, thumbnail = True, None + else: + is_live = False + for p in ('width', 'height'): + thumbnail = thumbnail.replace('{%s}' % p, '0') return { 'id': vod_id, @@ -383,6 +389,8 @@ def _extract_info_gql(self, info, item_id): 'timestamp': unified_timestamp(info.get('publishedAt')), 'view_count': int_or_none(info.get('viewCount')), 'chapters': list(self._extract_moments(info, item_id)), + 'is_live': is_live, + 'was_live': True, } def _real_extract(self, url):