Avoid crashing if n-sig decode fails
authordirkf <fieldhouse@gmx.net>
Tue, 1 Feb 2022 23:22:57 +0000 (23:22 +0000)
committerdirkf <fieldhouse@gmx.net>
Wed, 2 Feb 2022 14:25:03 +0000 (14:25 +0000)
youtube_dl/extractor/youtube.py

index 05688dc70c5a2e24a70b588ab3bddbf003d5ebbe..4165de15cb7408e0252c838b27dde06dd0a292bb 100644 (file)
@@ -26,6 +26,7 @@ from ..utils import (
     ExtractorError,
     clean_html,
     dict_get,
+    error_to_compat_str,
     float_or_none,
     int_or_none,
     js_to_json,
@@ -1463,7 +1464,12 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
                 self._downloader.to_screen('[debug] [%s] %s' % (self.IE_NAME, 'Decrypted nsig {0} => {1}'.format(n_param, self._player_cache[sig_id])))
             return self._player_cache[sig_id]
         except Exception as e:
-            raise ExtractorError(traceback.format_exc(), cause=e, video_id=video_id)
+            self._downloader.report_warning(
+                '[%s] %s (%s %s)' % (
+                    self.IE_NAME,
+                    'Unable to decode n-parameter: download likely to be throttled',
+                    error_to_compat_str(e),
+                    traceback.format_exc()))
 
     def _unthrottle_format_urls(self, video_id, player_url, formats):
         for fmt in formats: