]> jfr.im git - yt-dlp.git/commitdiff
[ie/youtube] Fix `like_count` extraction (#8763)
authorPandey Ganesha <redacted>
Wed, 13 Dec 2023 07:04:12 +0000 (12:34 +0530)
committerGitHub <redacted>
Wed, 13 Dec 2023 07:04:12 +0000 (07:04 +0000)
Closes #8759
Authored by: Ganesh910

yt_dlp/extractor/youtube.py

index 86818a9dc9d6cfe7f1ea32a1e857579e4d28065a..5b14b187a73ea4c10003c039194ea776602d9e7f 100644 (file)
@@ -4480,14 +4480,13 @@ def process_language(container, base_url, lang_code, sub_name, query):
                             if mobj:
                                 info[mobj.group('type') + '_count'] = str_to_int(mobj.group('count'))
                                 break
-            sbr_tooltip = try_get(
-                vpir, lambda x: x['sentimentBar']['sentimentBarRenderer']['tooltip'])
-            if sbr_tooltip:
-                like_count, dislike_count = sbr_tooltip.split(' / ')
-                info.update({
-                    'like_count': str_to_int(like_count),
-                    'dislike_count': str_to_int(dislike_count),
-                })
+
+            info['like_count'] = traverse_obj(vpir, (
+                'videoActions', 'menuRenderer', 'topLevelButtons', ...,
+                'segmentedLikeDislikeButtonViewModel', 'likeButtonViewModel', 'likeButtonViewModel',
+                'toggleButtonViewModel', 'toggleButtonViewModel', 'defaultButtonViewModel',
+                'buttonViewModel', 'accessibilityText', {parse_count}), get_all=False)
+
             vcr = traverse_obj(vpir, ('viewCount', 'videoViewCountRenderer'))
             if vcr:
                 vc = self._get_count(vcr, 'viewCount')