[youtube] Fix average rating extraction (closes #21304)
authorSergey M․ <dstftw@gmail.com>
Fri, 7 Jun 2019 16:13:33 +0000 (23:13 +0700)
committerSergey M․ <dstftw@gmail.com>
Fri, 7 Jun 2019 16:13:33 +0000 (23:13 +0700)
youtube_dl/extractor/youtube.py

index 5f1957a59fcd60b0570f8fa06f46c74f067eb03e..963c73a2d9cafb3c26e8e5b8bd3c9b52d76b2f44 100644 (file)
@@ -2224,6 +2224,10 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
                 r'<[^>]+class=["\']watch-view-count[^>]+>\s*([\d,\s]+)', video_webpage,
                 'view count', default=None))
 
+        average_rating = (
+            float_or_none(video_details.get('averageRating'))
+            or try_get(video_info, lambda x: float_or_none(x['avg_rating'][0])))
+
         # subtitles
         video_subtitles = self.extract_subtitles(video_id, video_webpage)
         automatic_captions = self.extract_automatic_captions(video_id, video_webpage)
@@ -2353,7 +2357,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
             'view_count': view_count,
             'like_count': like_count,
             'dislike_count': dislike_count,
-            'average_rating': float_or_none(video_info.get('avg_rating', [None])[0]),
+            'average_rating': average_rating,
             'formats': formats,
             'is_live': is_live,
             'start_time': start_time,