]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/commonmistakes.py
[ie/youtube] Suppress "Unavailable videos are hidden" warning (#10159)
[yt-dlp.git] / yt_dlp / extractor / commonmistakes.py
index 1a5dcbd8b252ea46a41667905ef55ddfb535254e..8ddb164b97bf807e68c289500560ed8b986f270e 100644 (file)
@@ -1,16 +1,10 @@
-from __future__ import unicode_literals
-
-import sys
-
 from .common import InfoExtractor
 from ..utils import ExtractorError
 
 
 class CommonMistakesIE(InfoExtractor):
     IE_DESC = False  # Do not list
-    _VALID_URL = r'''(?x)
-        (?:url|URL)$
-    '''
+    _VALID_URL = r'(?:url|URL|yt-dlp)$'
 
     _TESTS = [{
         'url': 'url',
@@ -22,11 +16,11 @@ class CommonMistakesIE(InfoExtractor):
 
     def _real_extract(self, url):
         msg = (
-            'You\'ve asked yt-dlp to download the URL "%s". '
+            f'You\'ve asked yt-dlp to download the URL "{url}". '
             'That doesn\'t make any sense. '
             'Simply remove the parameter in your command or configuration.'
-        ) % url
-        if not self._downloader.params.get('verbose'):
+        )
+        if not self.get_param('verbose'):
             msg += ' Add -v to the command line to see what arguments and configuration yt-dlp has'
         raise ExtractorError(msg, expected=True)
 
@@ -35,9 +29,7 @@ class UnicodeBOMIE(InfoExtractor):
     IE_DESC = False
     _VALID_URL = r'(?P<bom>\ufeff)(?P<id>.*)$'
 
-    # Disable test for python 3.2 since BOM is broken in re in this version
-    # (see https://github.com/ytdl-org/youtube-dl/issues/9751)
-    _TESTS = [] if (3, 0) < sys.version_info <= (3, 3) else [{
+    _TESTS = [{
         'url': '\ufeffhttp://www.youtube.com/watch?v=BaW_jenozKc',
         'only_matching': True,
     }]
@@ -46,5 +38,21 @@ def _real_extract(self, url):
         real_url = self._match_id(url)
         self.report_warning(
             'Your URL starts with a Byte Order Mark (BOM). '
-            'Removing the BOM and looking for "%s" ...' % real_url)
+            f'Removing the BOM and looking for "{real_url}" ...')
         return self.url_result(real_url)
+
+
+class BlobIE(InfoExtractor):
+    IE_DESC = False
+    _VALID_URL = r'blob:'
+
+    _TESTS = [{
+        'url': 'blob:https://www.youtube.com/4eb3d090-a761-46e6-8083-c32016a36e3b',
+        'only_matching': True,
+    }]
+
+    def _real_extract(self, url):
+        raise ExtractorError(
+            'You\'ve asked yt-dlp to download a blob URL. '
+            'A blob URL exists only locally in your browser. '
+            'It is not possible for yt-dlp to access it.', expected=True)