mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	[extractor/youtube] Differentiate between no and disabled comments (#5491)
`comments` and `comment_count` will be set to None, as opposed to an empty list and 0, respectively. Fixes https://github.com/yt-dlp/yt-dlp/issues/5068 Authored by: coletdjnz, pukkandan
This commit is contained in:
		| @@ -3738,6 +3738,9 @@ class InfoExtractor: | ||||
|     def _get_subtitles(self, *args, **kwargs): | ||||
|         raise NotImplementedError('This method must be implemented by subclasses') | ||||
| 
 | ||||
|     class CommentsDisabled(Exception): | ||||
|         """Raise in _get_comments if comments are disabled for the video""" | ||||
| 
 | ||||
|     def extract_comments(self, *args, **kwargs): | ||||
|         if not self.get_param('getcomments'): | ||||
|             return None | ||||
| @@ -3753,6 +3756,8 @@ class InfoExtractor: | ||||
|                 interrupted = False | ||||
|             except KeyboardInterrupt: | ||||
|                 self.to_screen('Interrupted by user') | ||||
|             except self.CommentsDisabled: | ||||
|                 return {'comments': None, 'comment_count': None} | ||||
|             except Exception as e: | ||||
|                 if self.get_param('ignoreerrors') is not True: | ||||
|                     raise | ||||
|   | ||||
| @@ -3270,6 +3270,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|         message = self._get_text(root_continuation_data, ('contents', ..., 'messageRenderer', 'text'), max_runs=1) | ||||
|         if message and not parent and tracker['running_total'] == 0: | ||||
|             self.report_warning(f'Youtube said: {message}', video_id=video_id, only_once=True) | ||||
|             raise self.CommentsDisabled | ||||
| 
 | ||||
|     @staticmethod | ||||
|     def _generate_comment_continuation(video_id): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Matthew
					Matthew