From 22cd06c4527ec74259e7277eeb64c7429cc2c6d7 Mon Sep 17 00:00:00 2001 From: u-spec-png <54671367+u-spec-png@users.noreply.github.com> Date: Thu, 4 Nov 2021 03:22:10 +0000 Subject: [PATCH] [Instagram] Improve thumbnail extraction (#1496) Authored by: u-spec-png --- yt_dlp/extractor/instagram.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/yt_dlp/extractor/instagram.py b/yt_dlp/extractor/instagram.py index 4eca9eb92..c4036d096 100644 --- a/yt_dlp/extractor/instagram.py +++ b/yt_dlp/extractor/instagram.py @@ -234,7 +234,9 @@ def _real_extract(self, url): media, lambda x: x['edge_media_to_caption']['edges'][0]['node']['text'], compat_str) or media.get('caption') title = media.get('title') - thumbnail = media.get('display_src') or media.get('display_url') + display_resources = media.get('display_resources') + if not display_resources: + display_resources = [{'src': media.get('display_src')}, {'src': media.get('display_url')}] duration = float_or_none(media.get('video_duration')) timestamp = int_or_none(media.get('taken_at_timestamp') or media.get('date')) uploader = try_get(media, lambda x: x['owner']['full_name']) @@ -252,6 +254,12 @@ def get_count(keys, kind): comment_count = get_count( ('preview_comment', 'to_comment', 'to_parent_comment'), 'comment') + thumbnails = [{ + 'url': thumbnail['src'], + 'width': thumbnail.get('config_width'), + 'height': thumbnail.get('config_height'), + } for thumbnail in display_resources if thumbnail.get('src')] + comments = [] for comment in try_get(media, lambda x: x['edge_media_to_parent_comment']['edges']): comment_dict = comment.get('node', {}) @@ -326,7 +334,7 @@ def get_count(keys, kind): 'title': title or 'Video by %s' % uploader_id, 'description': description, 'duration': duration, - 'thumbnail': thumbnail, + 'thumbnails': thumbnails, 'timestamp': timestamp, 'uploader_id': uploader_id, 'uploader': uploader,