aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpukkandan <pukkandan.ytdlp@gmail.com>2022-06-17 12:00:55 +0530
committerpukkandan <pukkandan.ytdlp@gmail.com>2022-06-17 12:00:55 +0530
commit0df111a371f191a2513e681ec30fc8563545c983 (patch)
treeff5d09abe4f0c1816a048d4a89ed1bfb1b884251
parenta39a7ba8d6efccf8d2fc8029ecebcb10e6c11d59 (diff)
downloadhypervideo-pre-0df111a371f191a2513e681ec30fc8563545c983.tar.lz
hypervideo-pre-0df111a371f191a2513e681ec30fc8563545c983.tar.xz
hypervideo-pre-0df111a371f191a2513e681ec30fc8563545c983.zip
[youtube] Extract `comment_count` from webpage
Closes #4091
-rw-r--r--yt_dlp/extractor/youtube.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/yt_dlp/extractor/youtube.py b/yt_dlp/extractor/youtube.py
index c3a4f70d9..1b70c8ef1 100644
--- a/yt_dlp/extractor/youtube.py
+++ b/yt_dlp/extractor/youtube.py
@@ -3684,6 +3684,14 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
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):