From 497d2fab6c25df04362e5fac8383acd28030a97b Mon Sep 17 00:00:00 2001 From: pukkandan Date: Tue, 8 Mar 2022 12:04:49 +0530 Subject: [PATCH] [utils] Better traceback for `ExtractorError` --- yt_dlp/extractor/common.py | 2 +- yt_dlp/utils.py | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/yt_dlp/extractor/common.py b/yt_dlp/extractor/common.py index f86e7cb3e..5b7de1296 100644 --- a/yt_dlp/extractor/common.py +++ b/yt_dlp/extractor/common.py @@ -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 diff --git a/yt_dlp/utils.py b/yt_dlp/utils.py index 8256d543e..9406eb834 100644 --- a/yt_dlp/utils.py +++ b/yt_dlp/utils.py @@ -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):