]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/vice.py
[ie/youtube] Suppress "Unavailable videos are hidden" warning (#10159)
[yt-dlp.git] / yt_dlp / extractor / vice.py
index d1a3b48aac1cf841a38371a00f3651c1cd9d93f8..3739a37e4fbbdcee948ad0e27cb9ac2f56012233 100644 (file)
@@ -7,15 +7,12 @@
 from .adobepass import AdobePassIE
 from .common import InfoExtractor
 from .youtube import YoutubeIE
-from ..compat import (
-    compat_HTTPError,
-    compat_str,
-)
+from ..networking.exceptions import HTTPError
 from ..utils import (
-    clean_html,
     ExtractorError,
-    int_or_none,
     OnDemandPagedList,
+    clean_html,
+    int_or_none,
     parse_age_limit,
     str_or_none,
     try_get,
@@ -30,7 +27,7 @@ def _call_api(self, resource, resource_key, resource_id, locale, fields, args=''
   %s(locale: "%s", %s: "%s"%s) {
     %s
   }
-}''' % (resource, locale, resource_key, resource_id, args, fields),
+}''' % (resource, locale, resource_key, resource_id, args, fields),  # noqa: UP031
             })['data'][resource]
 
 
@@ -129,7 +126,7 @@ def _real_extract(self, url):
 
         query.update({
             'exp': exp,
-            'sign': hashlib.sha512(('%s:GET:%d' % (video_id, exp)).encode()).hexdigest(),
+            'sign': hashlib.sha512(f'{video_id}:GET:{exp}'.encode()).hexdigest(),
             'skipadstitching': 1,
             'platform': 'desktop',
             'rn': random.randint(10000, 100000),
@@ -137,14 +134,13 @@ def _real_extract(self, url):
 
         try:
             preplay = self._download_json(
-                'https://vms.vice.com/%s/video/preplay/%s' % (locale, video_id),
+                f'https://vms.vice.com/{locale}/video/preplay/{video_id}',
                 video_id, query=query)
         except ExtractorError as e:
-            if isinstance(e.cause, compat_HTTPError) and e.cause.code in (400, 401):
-                error = json.loads(e.cause.read().decode())
+            if isinstance(e.cause, HTTPError) and e.cause.status in (400, 401):
+                error = json.loads(e.cause.response.read().decode())
                 error_message = error.get('error_description') or error['details']
-                raise ExtractorError('%s said: %s' % (
-                    self.IE_NAME, error_message), expected=True)
+                raise ExtractorError(f'{self.IE_NAME} said: {error_message}', expected=True)
             raise
 
         video_data = preplay['video']
@@ -159,7 +155,7 @@ def _real_extract(self, url):
             cc_url = subtitle.get('url')
             if not cc_url:
                 continue
-            language_code = try_get(subtitle, lambda x: x['languages'][0]['language_code'], compat_str) or 'en'
+            language_code = try_get(subtitle, lambda x: x['languages'][0]['language_code'], str) or 'en'
             subtitles.setdefault(language_code, []).append({
                 'url': cc_url,
             })
@@ -173,7 +169,7 @@ def _real_extract(self, url):
             'duration': int_or_none(video_data.get('video_duration')),
             'timestamp': int_or_none(video_data.get('created_at'), 1000),
             'age_limit': parse_age_limit(video_data.get('video_rating') or rating),
-            'series': try_get(video_data, lambda x: x['show']['base']['display_title'], compat_str),
+            'series': try_get(video_data, lambda x: x['show']['base']['display_title'], str),
             'episode_number': int_or_none(episode.get('episode_number')),
             'episode_id': str_or_none(episode.get('id') or video_data.get('episode_id')),
             'season_number': int_or_none(season.get('season_number')),
@@ -204,7 +200,7 @@ class ViceShowIE(ViceBaseIE):
     def _fetch_page(self, locale, show_id, page):
         videos = self._call_api('videos', 'show_id', show_id, locale, '''body
     id
-    url''', ', page: %d, per_page: %d' % (page + 1, self._PAGE_SIZE))
+    url''', f', page: {page + 1}, per_page: {self._PAGE_SIZE}')
         for video in videos:
             yield self.url_result(
                 video['url'], ViceIE.ie_key(), video.get('id'))
@@ -226,7 +222,7 @@ def _real_extract(self, url):
 
 class ViceArticleIE(ViceBaseIE):
     IE_NAME = 'vice:article'
-    _VALID_URL = r'https://(?:www\.)?vice\.com/(?P<locale>[^/]+)/article/(?:[0-9a-z]{6}/)?(?P<id>[^?#]+)'
+    _VALID_URL = r'https?://(?:www\.)?vice\.com/(?P<locale>[^/]+)/article/(?:[0-9a-z]{6}/)?(?P<id>[^?#]+)'
 
     _TESTS = [{
         'url': 'https://www.vice.com/en_us/article/on-set-with-the-woman-making-mormon-porn-in-utah',
@@ -304,12 +300,6 @@ def _url_res(video_url, ie_key):
         if vice_url:
             return _url_res(vice_url, ViceIE.ie_key())
 
-        embed_code = self._search_regex(
-            r'embedCode=([^&\'"]+)', body,
-            'ooyala embed code', default=None)
-        if embed_code:
-            return _url_res('ooyala:%s' % embed_code, 'Ooyala')
-
         youtube_url = YoutubeIE._extract_url(body)
         if youtube_url:
             return _url_res(youtube_url, YoutubeIE.ie_key())