From 60c8fc73c6e6fe2189e0417a9847705f4baae05f Mon Sep 17 00:00:00 2001 From: SsSsS <54671367+u-spec-png@users.noreply.github.com> Date: Tue, 10 Aug 2021 13:15:32 +0000 Subject: [PATCH] [instagram] Fix comments extraction (#660) Authored-by: u-spec-png --- yt_dlp/extractor/instagram.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/yt_dlp/extractor/instagram.py b/yt_dlp/extractor/instagram.py index 1261f438e..d8acef5ba 100644 --- a/yt_dlp/extractor/instagram.py +++ b/yt_dlp/extractor/instagram.py @@ -195,18 +195,23 @@ def get_count(keys, kind): lambda x: x['%ss' % kind]['count']))) if count is not None: return count + like_count = get_count('preview_like', 'like') comment_count = get_count( ('preview_comment', 'to_comment', 'to_parent_comment'), 'comment') - comments = [{ - 'author': comment.get('user', {}).get('username'), - 'author_id': comment.get('user', {}).get('id'), - 'id': comment.get('id'), - 'text': comment.get('text'), - 'timestamp': int_or_none(comment.get('created_at')), - } for comment in media.get( - 'comments', {}).get('nodes', []) if comment.get('text')] + comments = [] + for comment in try_get(media, lambda x: x['edge_media_to_parent_comment']['edges']): + comment_dict = comment.get('node', {}) + comment_text = comment_dict.get('text') + if comment_text: + comments.append({ + 'author': try_get(comment_dict, lambda x: x['owner']['username']), + 'author_id': try_get(comment_dict, lambda x: x['owner']['id']), + 'id': comment_dict.get('id'), + 'text': comment_text, + 'timestamp': int_or_none(comment_dict.get('created_at')), + }) if not video_url: edges = try_get( media, lambda x: x['edge_sidecar_to_children']['edges'],