]> jfr.im git - yt-dlp.git/commitdiff
[utils] Better traceback for `ExtractorError`
authorpukkandan <redacted>
Tue, 8 Mar 2022 06:34:49 +0000 (12:04 +0530)
committerpukkandan <redacted>
Tue, 8 Mar 2022 06:34:49 +0000 (12:04 +0530)
yt_dlp/extractor/common.py
yt_dlp/utils.py

index f86e7cb3e9fba9510bd981686bebdbca40c12a6f..5b7de12968f7f4c038499628f8f218c29af57beb 100644 (file)
@@ -749,7 +749,7 @@ def _request_webpage(self, url_or_request, video_id, note=None, errnote=None, fa
 
             errmsg = '%s: %s' % (errnote, error_to_compat_str(err))
             if fatal:
-                raise ExtractorError(errmsg, sys.exc_info()[2], cause=err)
+                raise ExtractorError(errmsg, cause=err)
             else:
                 self.report_warning(errmsg)
                 return False
index 8256d543e467ce58c1ab6da61f6d53037346d3bb..9406eb834d42d263fdbaa06c3c6940f01ccb0d19 100644 (file)
@@ -1076,9 +1076,10 @@ def __init__(self, msg, tb=None, expected=False, cause=None, video_id=None, ie=N
             '' if expected else bug_reports_message())))
 
     def format_traceback(self):
-        if self.traceback is None:
-            return None
-        return ''.join(traceback.format_tb(self.traceback))
+        return join_nonempty(
+            self.traceback and ''.join(traceback.format_tb(self.traceback)),
+            self.cause and ''.join(traceback.format_exception(self.cause)[1:]),
+            delim='\n') or None
 
 
 class UnsupportedError(ExtractorError):