mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	[YouTube] Fix like_count extraction using likeButtonViewModel
				
					
				
			* also fix various tests * TODO: check against yt-dlp tests
This commit is contained in:
		| @@ -295,6 +295,7 @@ class TestNRKSubtitles(BaseTestSubtitles): | |||||||
|     def test_allsubtitles(self): |     def test_allsubtitles(self): | ||||||
|         self.DL.params['writesubtitles'] = True |         self.DL.params['writesubtitles'] = True | ||||||
|         self.DL.params['allsubtitles'] = True |         self.DL.params['allsubtitles'] = True | ||||||
|  |         self.DL.params['format'] = 'best/bestvideo' | ||||||
|         subtitles = self.getSubtitles() |         subtitles = self.getSubtitles() | ||||||
|         self.assertEqual(set(subtitles.keys()), set(['nb-ttv'])) |         self.assertEqual(set(subtitles.keys()), set(['nb-ttv'])) | ||||||
|         self.assertEqual(md5(subtitles['nb-ttv']), '67e06ff02d0deaf975e68f6cb8f6a149') |         self.assertEqual(md5(subtitles['nb-ttv']), '67e06ff02d0deaf975e68f6cb8f6a149') | ||||||
|   | |||||||
| @@ -39,6 +39,7 @@ from ..utils import ( | |||||||
|     mimetype2ext, |     mimetype2ext, | ||||||
|     NO_DEFAULT, |     NO_DEFAULT, | ||||||
|     parse_codecs, |     parse_codecs, | ||||||
|  |     parse_count, | ||||||
|     parse_duration, |     parse_duration, | ||||||
|     parse_qs, |     parse_qs, | ||||||
|     qualities, |     qualities, | ||||||
| @@ -46,6 +47,7 @@ from ..utils import ( | |||||||
|     smuggle_url, |     smuggle_url, | ||||||
|     str_or_none, |     str_or_none, | ||||||
|     str_to_int, |     str_to_int, | ||||||
|  |     T, | ||||||
|     traverse_obj, |     traverse_obj, | ||||||
|     try_call, |     try_call, | ||||||
|     try_get, |     try_get, | ||||||
| @@ -1250,7 +1252,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | |||||||
|                 'title': 'IMG 3456', |                 'title': 'IMG 3456', | ||||||
|                 'description': '', |                 'description': '', | ||||||
|                 'upload_date': '20170613', |                 'upload_date': '20170613', | ||||||
|                 'uploader': 'ElevageOrVert', |                 'uploader': "l'Or Vert asbl", | ||||||
|                 'uploader_id': '@ElevageOrVert', |                 'uploader_id': '@ElevageOrVert', | ||||||
|             }, |             }, | ||||||
|             'params': { |             'params': { | ||||||
| @@ -2474,6 +2476,14 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | |||||||
|                             'like_count': str_to_int(like_count), |                             'like_count': str_to_int(like_count), | ||||||
|                             'dislike_count': str_to_int(dislike_count), |                             'dislike_count': str_to_int(dislike_count), | ||||||
|                         }) |                         }) | ||||||
|  |                     else: | ||||||
|  |                         info['like_count'] = traverse_obj(vpir, ( | ||||||
|  |                             'videoActions', 'menuRenderer', 'topLevelButtons', Ellipsis, | ||||||
|  |                             'segmentedLikeDislikeButtonViewModel', 'likeButtonViewModel', 'likeButtonViewModel', | ||||||
|  |                             'toggleButtonViewModel', 'toggleButtonViewModel', 'defaultButtonViewModel', | ||||||
|  |                             'buttonViewModel', (('title', ('accessibilityText', T(lambda s: s.split()), Ellipsis))), T(parse_count)), | ||||||
|  |                             get_all=False) | ||||||
|  |  | ||||||
|                 vsir = content.get('videoSecondaryInfoRenderer') |                 vsir = content.get('videoSecondaryInfoRenderer') | ||||||
|                 if vsir: |                 if vsir: | ||||||
|                     rows = try_get( |                     rows = try_get( | ||||||
| @@ -2588,7 +2598,7 @@ class YoutubeTabIE(YoutubeBaseInfoExtractor): | |||||||
|         'playlist_mincount': 94, |         'playlist_mincount': 94, | ||||||
|         'info_dict': { |         'info_dict': { | ||||||
|             'id': 'UCqj7Cz7revf5maW9g5pgNcg', |             'id': 'UCqj7Cz7revf5maW9g5pgNcg', | ||||||
|             'title': 'Igor Kleiner - Playlists', |             'title': r're:Igor Kleiner(?: Ph\.D\.)? - Playlists', | ||||||
|             'description': 'md5:be97ee0f14ee314f1f002cf187166ee2', |             'description': 'md5:be97ee0f14ee314f1f002cf187166ee2', | ||||||
|             'uploader': 'Igor Kleiner', |             'uploader': 'Igor Kleiner', | ||||||
|             'uploader_id': '@IgorDataScience', |             'uploader_id': '@IgorDataScience', | ||||||
| @@ -2599,7 +2609,7 @@ class YoutubeTabIE(YoutubeBaseInfoExtractor): | |||||||
|         'playlist_mincount': 94, |         'playlist_mincount': 94, | ||||||
|         'info_dict': { |         'info_dict': { | ||||||
|             'id': 'UCqj7Cz7revf5maW9g5pgNcg', |             'id': 'UCqj7Cz7revf5maW9g5pgNcg', | ||||||
|             'title': 'Igor Kleiner - Playlists', |             'title': r're:Igor Kleiner(?: Ph\.D\.)? - Playlists', | ||||||
|             'description': 'md5:be97ee0f14ee314f1f002cf187166ee2', |             'description': 'md5:be97ee0f14ee314f1f002cf187166ee2', | ||||||
|             'uploader': 'Igor Kleiner', |             'uploader': 'Igor Kleiner', | ||||||
|             'uploader_id': '@IgorDataScience', |             'uploader_id': '@IgorDataScience', | ||||||
| @@ -2711,7 +2721,7 @@ class YoutubeTabIE(YoutubeBaseInfoExtractor): | |||||||
|         'url': 'https://www.youtube.com/channel/UCKfVa3S1e4PHvxWcwyMMg8w/channels', |         'url': 'https://www.youtube.com/channel/UCKfVa3S1e4PHvxWcwyMMg8w/channels', | ||||||
|         'info_dict': { |         'info_dict': { | ||||||
|             'id': 'UCKfVa3S1e4PHvxWcwyMMg8w', |             'id': 'UCKfVa3S1e4PHvxWcwyMMg8w', | ||||||
|             'title': 'lex will - Channels', |             'title': r're:lex will - (?:Home|Channels)', | ||||||
|             'description': 'md5:2163c5d0ff54ed5f598d6a7e6211e488', |             'description': 'md5:2163c5d0ff54ed5f598d6a7e6211e488', | ||||||
|             'uploader': 'lex will', |             'uploader': 'lex will', | ||||||
|             'uploader_id': '@lexwill718', |             'uploader_id': '@lexwill718', | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user