]> jfr.im git - yt-dlp.git/commitdiff
[extractor] Fix some errors being converted to `ExtractorError`
authorpukkandan <redacted>
Tue, 26 Oct 2021 14:47:29 +0000 (20:17 +0530)
committerpukkandan <redacted>
Tue, 26 Oct 2021 14:57:09 +0000 (20:27 +0530)
yt_dlp/extractor/common.py
yt_dlp/utils.py

index c0d7142496d0a446911958e83d4cc4c25a9fb7cf..369cff418eae1985ece9c0e3d4c7f17ad4593862 100644 (file)
@@ -74,6 +74,7 @@
     strip_or_none,
     traverse_obj,
     unescapeHTML,
+    UnsupportedError,
     unified_strdate,
     unified_timestamp,
     update_Request,
@@ -604,10 +605,19 @@ def extract(self, url):
                     if self.__maybe_fake_ip_and_retry(e.countries):
                         continue
                     raise
+        except UnsupportedError:
+            raise
         except ExtractorError as e:
-            video_id = e.video_id or self.get_temp_id(url)
-            raise ExtractorError(
-                e.msg, video_id=video_id, ie=self.IE_NAME, tb=e.traceback, expected=e.expected, cause=e.cause)
+            kwargs = {
+                'video_id': e.video_id or self.get_temp_id(url),
+                'ie': self.IE_NAME,
+                'tb': e.traceback,
+                'expected': e.expected,
+                'cause': e.cause
+            }
+            if hasattr(e, 'countries'):
+                kwargs['countries'] = e.countries
+            raise type(e)(e.msg, **kwargs)
         except compat_http_client.IncompleteRead as e:
             raise ExtractorError('A network error has occurred.', cause=e, expected=True, video_id=self.get_temp_id(url))
         except (KeyError, StopIteration) as e:
index a8755a1b97d74b7197cee5d06d7ca80cba6bc465..48baa6503c635990691acda03263a1d0c8477e99 100644 (file)
@@ -2492,9 +2492,9 @@ class GeoRestrictedError(ExtractorError):
     geographic location due to geographic restrictions imposed by a website.
     """
 
-    def __init__(self, msg, countries=None):
-        super(GeoRestrictedError, self).__init__(msg, expected=True)
-        self.msg = msg
+    def __init__(self, msg, countries=None, **kwargs):
+        kwargs['expected'] = True
+        super(GeoRestrictedError, self).__init__(msg, **kwargs)
         self.countries = countries