From ff7e543821cd463c9989d480d216427d32593469 Mon Sep 17 00:00:00 2001 From: bhodaya Date: Wed, 24 Jun 2020 09:42:00 +0300 Subject: [PATCH] fix facebook comments count --- test/ci/test_facebook.py | 27 +++++++++++++++++++++------ youtube_dl/extractor/facebook.py | 8 ++++++++ 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/test/ci/test_facebook.py b/test/ci/test_facebook.py index 540a89508..8533a81f5 100644 --- a/test/ci/test_facebook.py +++ b/test/ci/test_facebook.py @@ -3,25 +3,40 @@ import youtube_dl class facebookMetaData(unittest.TestCase): - def test_metadata_fetch(self): + def test_likes_metadata(self): params = {} url = "https://www.facebook.com/iihfhockey/videos/2742345396033296/" ydl = youtube_dl.YoutubeDL(params) info = ydl.extract_info(url, download=False) - self.assertTrue(info.has_key('like_count')) - self.assertTrue(info.has_key('reactions_count')) + self.assertGreater(info.get('like_count'), 200) - def _test_metadata_fetch_with_log_in(self): - url = "https://www.facebook.com/iihfhockey/videos/2742345396033296/" + def test_reactions_metadata(self): + params = {} + url = "https://www.facebook.com/supercarblondie/videos/519426815548240/" + ydl = youtube_dl.YoutubeDL(params) + info = ydl.extract_info(url, download=False) + self.assertGreater(info.get('reactions_count'), 1000000) + self.assertGreater(info.get('like_count'), 800000) + + def test_comments_live_video(self): + params = {} + url = "https://www.facebook.com/Medianetlive/videos/676754012901513/" + ydl = youtube_dl.YoutubeDL(params) + info = ydl.extract_info(url, download=False) + self.assertGreater(info.get('comment_count'), 0) + + def test_metadata_fetch_with_log_in(self): + url = "https://www.facebook.com/SerieA/videos/282581803097269" params = {} with open("cookie_file") as file: - proxy = "ec2-35-175-164-238.compute-1.amazonaws.com:3128" + proxy = "ec2-3-221-82-67.compute-1.amazonaws.com:3128" params['cookiefile'] = file.name params['proxy'] = proxy ydl = youtube_dl.YoutubeDL(params) info = ydl.extract_info(url, download=False) self.assertTrue(info.get('timestamp')) self.assertTrue(info.get('view_count')) + self.assertTrue(info.get('comment_count')) self.assertTrue(info.get('width')) self.assertTrue(info.get('uploader_id')) self.assertTrue(info.get('thumbnail')) diff --git a/youtube_dl/extractor/facebook.py b/youtube_dl/extractor/facebook.py index 108d385a1..cf60a2c21 100644 --- a/youtube_dl/extractor/facebook.py +++ b/youtube_dl/extractor/facebook.py @@ -630,6 +630,14 @@ class FacebookIE(InfoExtractor): if values: return values[-1] + value = self._search_regex(r'"commentCount":(.+?),', webpage, 'comment_count', fatal=False) + if value: + return value + + value = self._search_regex(r'"commentcount":(.+?),', tahoe_data.secondary, 'comment_count', fatal=False) + if value: + return value + def _extract_views(self, webpage, tahoe_data): value = self._extract_meta_count(['postViewCount', 'viewCount'], webpage, tahoe_data, 'likes') if value: