mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	Make ExtractorError usable for other causes
This commit is contained in:
		| @@ -216,12 +216,15 @@ class FileDownloader(object): | ||||
|         Depending on if the downloader has been configured to ignore | ||||
|         download errors or not, this method may throw an exception or | ||||
|         not when errors are found, after printing the message. | ||||
|  | ||||
|         tb, if given, is additional traceback information. | ||||
|         """ | ||||
|         if message is not None: | ||||
|             self.to_stderr(message) | ||||
|         if self.params.get('verbose'): | ||||
|             if tb is None: | ||||
|                 tb = u''.join(traceback.format_list(traceback.extract_stack())) | ||||
|                 tb_data = traceback.format_list(traceback.extract_stack()) | ||||
|                 tb = u''.join(tb_data) | ||||
|             self.to_stderr(tb) | ||||
|         if not self.params.get('ignoreerrors', False): | ||||
|             raise DownloadError(message) | ||||
| @@ -497,7 +500,7 @@ class FileDownloader(object): | ||||
|                 try: | ||||
|                     videos = ie.extract(url) | ||||
|                 except ExtractorError as de: # An error we somewhat expected | ||||
|                     self.trouble(u'ERROR: ' + compat_str(de), compat_str(u''.join(traceback.format_tb(de.traceback)))) | ||||
|                     self.trouble(u'ERROR: ' + compat_str(de), de.format_traceback()) | ||||
|                     break | ||||
|                 except Exception as e: | ||||
|                     if self.params.get('ignoreerrors', False): | ||||
|   | ||||
| @@ -117,7 +117,7 @@ class InfoExtractor(object): | ||||
|         except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err: | ||||
|             if errnote is None: | ||||
|                 errnote = u'Unable to download webpage' | ||||
|             raise ExtractorError(u'%s: %s' % (errnote, compat_str(err))) | ||||
|             raise ExtractorError(u'%s: %s' % (errnote, compat_str(err)), sys.exc_info()[2]) | ||||
|  | ||||
|  | ||||
| class YoutubeIE(InfoExtractor): | ||||
|   | ||||
| @@ -8,6 +8,7 @@ import locale | ||||
| import os | ||||
| import re | ||||
| import sys | ||||
| import traceback | ||||
| import zlib | ||||
| import email.utils | ||||
| import json | ||||
| @@ -414,12 +415,15 @@ def encodeFilename(s): | ||||
| class ExtractorError(Exception): | ||||
|     """Error during info extraction.""" | ||||
|     def __init__(self, msg, tb=None): | ||||
|         """ tb is the original traceback (so that it can be printed out) """ | ||||
|         """ tb, if given, is the original traceback (so that it can be printed out). """ | ||||
|         super(ExtractorError, self).__init__(msg) | ||||
|         if tb is None: | ||||
|             tb = sys.exc_info()[2] | ||||
|         self.traceback = tb | ||||
|  | ||||
|     def format_traceback(self): | ||||
|         if self.traceback is None: | ||||
|             return None | ||||
|         return u''.join(traceback.format_tb(self.traceback)) | ||||
|  | ||||
|  | ||||
| class DownloadError(Exception): | ||||
|     """Download Error exception. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Philipp Hagemeister
					Philipp Hagemeister