]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/spankbang.py
[ie/youtube] Suppress "Unavailable videos are hidden" warning (#10159)
[yt-dlp.git] / yt_dlp / extractor / spankbang.py
index f242d334c9420d8fb66c486bf49e23e5fed06380..6805a72deb7b033b4474be0f68d751c7719cb44b 100644 (file)
@@ -2,8 +2,8 @@
 
 from .common import InfoExtractor
 from ..utils import (
-    determine_ext,
     ExtractorError,
+    determine_ext,
     merge_dicts,
     parse_duration,
     parse_resolution,
@@ -37,7 +37,7 @@ class SpankBangIE(InfoExtractor):
             'timestamp': 1617109572,
             'upload_date': '20210330',
             'age_limit': 18,
-        }
+        },
     }, {
         # 480p only
         'url': 'http://spankbang.com/1vt0/video/solvane+gangbang',
@@ -72,12 +72,12 @@ def _real_extract(self, url):
         mobj = self._match_valid_url(url)
         video_id = mobj.group('id') or mobj.group('id_2')
         webpage = self._download_webpage(
-            url.replace('/%s/embed' % video_id, '/%s/video' % video_id),
+            url.replace(f'/{video_id}/embed', f'/{video_id}/video'),
             video_id, headers={'Cookie': 'country=US'})
 
         if re.search(r'<[^>]+\b(?:id|class)=["\']video_removed', webpage):
             raise ExtractorError(
-                'Video %s is not available' % video_id, expected=True)
+                f'Video {video_id} is not available', expected=True)
 
         formats = []
 
@@ -104,8 +104,7 @@ def extract_format(format_id, format_url):
         STREAM_URL_PREFIX = 'stream_url_'
 
         for mobj in re.finditer(
-                r'%s(?P<id>[^\s=]+)\s*=\s*(["\'])(?P<url>(?:(?!\2).)+)\2'
-                % STREAM_URL_PREFIX, webpage):
+                rf'{STREAM_URL_PREFIX}(?P<id>[^\s=]+)\s*=\s*(["\'])(?P<url>(?:(?!\2).)+)\2', webpage):
             extract_format(mobj.group('id', 'url'))
 
         if not formats:
@@ -159,7 +158,7 @@ def extract_format(format_id, format_url):
             'view_count': view_count,
             'formats': formats,
             'age_limit': age_limit,
-        }, info
+        }, info,
         )
 
 
@@ -177,7 +176,6 @@ class SpankBangPlaylistIE(InfoExtractor):
     def _real_extract(self, url):
         mobj = self._match_valid_url(url)
         playlist_id = mobj.group('id')
-        display_id = mobj.group('display_id')
 
         webpage = self._download_webpage(
             url, playlist_id, headers={'Cookie': 'country=US; mobile=on'})
@@ -186,11 +184,11 @@ def _real_extract(self, url):
             urljoin(url, mobj.group('path')),
             ie=SpankBangIE.ie_key(), video_id=mobj.group('id'))
             for mobj in re.finditer(
-                r'<a[^>]+\bhref=(["\'])(?P<path>/?[\da-z]+-(?P<id>[\da-z]+)/playlist/%s(?:(?!\1).)*)\1'
-                % re.escape(display_id), webpage)]
+                r'<a[^>]+\bhref=(["\'])(?P<path>/?[\da-z]+-(?P<id>[\da-z]+)/playlist/[^"\'](?:(?!\1).)*)\1',
+                webpage)]
 
         title = self._html_search_regex(
-            r'<h1>([^<]+)\s+playlist\s*<', webpage, 'playlist title',
+            r'<em>([^<]+)</em>\s+playlist\s*<', webpage, 'playlist title',
             fatal=False)
 
         return self.playlist_result(entries, playlist_id, title)