]> jfr.im git - yt-dlp.git/commitdiff
[youtube] Extract `comment_count` from webpage
authorpukkandan <redacted>
Fri, 17 Jun 2022 06:30:55 +0000 (12:00 +0530)
committerpukkandan <redacted>
Fri, 17 Jun 2022 06:30:55 +0000 (12:00 +0530)
Closes #4091

yt_dlp/extractor/youtube.py

index c3a4f70d956cc31c6a4be0fcdb6c8f776db21ac3..1b70c8ef102fbcb8023e228c6313da92191f07ac 100644 (file)
@@ -3684,6 +3684,14 @@ def process_language(container, base_url, lang_code, sub_name, query):
                 headers=self.generate_api_headers(ytcfg=master_ytcfg),
                 note='Downloading initial data API JSON')
 
+        info['comment_count'] = traverse_obj(initial_data, (
+            'contents', 'twoColumnWatchNextResults', 'results', 'results', 'contents', ..., 'itemSectionRenderer',
+            'contents', ..., 'commentsEntryPointHeaderRenderer', 'commentCount', 'simpleText'
+        ), (
+            'engagementPanels', lambda _, v: v['engagementPanelSectionListRenderer']['panelIdentifier'] == 'comment-item-section',
+            'engagementPanelSectionListRenderer', 'header', 'engagementPanelTitleHeaderRenderer', 'contextualInfo', 'runs', ..., 'text'
+        ), expected_type=int_or_none, get_all=False)
+
         try:  # This will error if there is no livechat
             initial_data['contents']['twoColumnWatchNextResults']['conversationBar']['liveChatRenderer']['continuations'][0]['reloadContinuationData']['continuation']
         except (KeyError, IndexError, TypeError):