From b7aa03e3f8e4a78594ffa33539201cd1d382acbc Mon Sep 17 00:00:00 2001 From: bashonly Date: Tue, 26 Nov 2024 17:11:43 -0600 Subject: [PATCH] refactor Authored by: bashonly --- yt_dlp/extractor/tiktok.py | 41 +++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/yt_dlp/extractor/tiktok.py b/yt_dlp/extractor/tiktok.py index 721d36e49e..6090906448 100644 --- a/yt_dlp/extractor/tiktok.py +++ b/yt_dlp/extractor/tiktok.py @@ -413,16 +413,6 @@ class TikTokBaseIE(InfoExtractor): for f in formats: self._set_cookie(urllib.parse.urlparse(f['url']).hostname, 'sid_tt', auth_cookie.value) - thumbnails = [] - for cover_id in ('cover', 'ai_dynamic_cover', 'animated_cover', 'ai_dynamic_cover_bak', - 'origin_cover', 'dynamic_cover'): - for cover_url in traverse_obj(video_info, (cover_id, 'url_list', ...)): - thumbnails.append({ - 'id': cover_id, - 'url': cover_url, - 'preference': -1 if cover_id in ('cover', 'origin_cover') else -2, - }) - stats_info = aweme_detail.get('statistics') or {} music_info = aweme_detail.get('music') or {} labels = traverse_obj(aweme_detail, ('hybrid_label', ..., 'text'), expected_type=str) @@ -468,7 +458,17 @@ class TikTokBaseIE(InfoExtractor): 'formats': formats, 'subtitles': self.extract_subtitles( aweme_detail, aweme_id, traverse_obj(author_info, 'uploader', 'uploader_id', 'channel_id')), - 'thumbnails': thumbnails, + 'thumbnails': [ + { + 'id': cover_id, + 'url': cover_url, + 'preference': -1 if cover_id in ('cover', 'origin_cover') else -2, + } + for cover_id in ( + 'cover', 'ai_dynamic_cover', 'animated_cover', + 'ai_dynamic_cover_bak', 'origin_cover', 'dynamic_cover') + for cover_url in traverse_obj(video_info, (cover_id, 'url_list', ...)) + ], 'duration': (traverse_obj(video_info, ( (None, 'download_addr'), 'duration', {int_or_none(scale=1000)}, any)) or traverse_obj(music_info, ('duration', {int_or_none}))), @@ -573,21 +573,20 @@ class TikTokBaseIE(InfoExtractor): 'uploader_id': (('authorId', 'uid', 'id'), {str_or_none}), }), get_all=False) - thumbnails = [] - for cover_id in ('thumbnail', 'cover', 'dynamicCover', 'originCover'): - for cover_url in traverse_obj(aweme_detail, ((None, 'video'), cover_id, {url_or_none})): - thumbnails.append({ - 'id': cover_id, - 'url': self._proto_relative_url(cover_url), - 'preference': -2 if cover_id == 'dynamicCover' else -1, - }) - return { 'id': video_id, 'formats': None if extract_flat else self._extract_web_formats(aweme_detail), 'subtitles': None if extract_flat else self.extract_subtitles(aweme_detail, video_id, None), 'http_headers': {'Referer': webpage_url}, - 'thumbnails': thumbnails, + 'thumbnails': [ + { + 'id': cover_id, + 'url': self._proto_relative_url(cover_url), + 'preference': -2 if cover_id == 'dynamicCover' else -1, + } + for cover_id in ('thumbnail', 'cover', 'dynamicCover', 'originCover') + for cover_url in traverse_obj(aweme_detail, ((None, 'video'), cover_id, {url_or_none})) + ], **author_info, 'channel_url': format_field(author_info, 'channel_id', self._UPLOADER_URL_FORMAT, default=None), 'uploader_url': format_field(