]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/vice.py
Update to ytdl-commit-195f22f6
[yt-dlp.git] / yt_dlp / extractor / vice.py
index e37499512856234d9b989aec53dfd59c42647300..d1a3b48aac1cf841a38371a00f3651c1cd9d93f8 100644 (file)
@@ -1,11 +1,7 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
 import functools
 import hashlib
 import json
 import random
-import re
 import time
 
 from .adobepass import AdobePassIE
@@ -41,6 +37,7 @@ def _call_api(self, resource, resource_key, resource_id, locale, fields, args=''
 class ViceIE(ViceBaseIE, AdobePassIE):
     IE_NAME = 'vice'
     _VALID_URL = r'https?://(?:(?:video|vms)\.vice|(?:www\.)?vice(?:land|tv))\.com/(?P<locale>[^/]+)/(?:video/[^/]+|embed)/(?P<id>[\da-f]{24})'
+    _EMBED_REGEX = [r'<iframe\b[^>]+\bsrc=["\'](?P<url>(?:https?:)?//video\.vice\.com/[^/]+/embed/[\da-f]{24})']
     _TESTS = [{
         'url': 'https://video.vice.com/en_us/video/pet-cremator/58c69e38a55424f1227dc3f7',
         'info_dict': {
@@ -106,19 +103,8 @@ class ViceIE(ViceBaseIE, AdobePassIE):
         'only_matching': True,
     }]
 
-    @staticmethod
-    def _extract_urls(webpage):
-        return re.findall(
-            r'<iframe\b[^>]+\bsrc=["\']((?:https?:)?//video\.vice\.com/[^/]+/embed/[\da-f]{24})',
-            webpage)
-
-    @staticmethod
-    def _extract_url(webpage):
-        urls = ViceIE._extract_urls(webpage)
-        return urls[0] if urls else None
-
     def _real_extract(self, url):
-        locale, video_id = re.match(self._VALID_URL, url).groups()
+        locale, video_id = self._match_valid_url(url).groups()
 
         video = self._call_api('videos', 'id', video_id, locale, '''body
     locked
@@ -164,7 +150,6 @@ def _real_extract(self, url):
         video_data = preplay['video']
         formats = self._extract_m3u8_formats(
             preplay['playURL'], video_id, 'mp4', 'm3u8_native')
-        self._sort_formats(formats)
         episode = video_data.get('episode') or {}
         channel = video_data.get('channel') or {}
         season = video_data.get('season') or {}
@@ -225,7 +210,7 @@ def _fetch_page(self, locale, show_id, page):
                 video['url'], ViceIE.ie_key(), video.get('id'))
 
     def _real_extract(self, url):
-        locale, display_id = re.match(self._VALID_URL, url).groups()
+        locale, display_id = self._match_valid_url(url).groups()
         show = self._call_api('shows', 'slug', display_id, locale, '''dek
     id
     title''')[0]
@@ -290,7 +275,6 @@ class ViceArticleIE(ViceBaseIE):
         },
         'params': {
             'skip_download': True,
-            'format': 'bestvideo',
         },
         'add_ie': [ViceIE.ie_key()],
     }, {
@@ -302,7 +286,7 @@ class ViceArticleIE(ViceBaseIE):
     }]
 
     def _real_extract(self, url):
-        locale, display_id = re.match(self._VALID_URL, url).groups()
+        locale, display_id = self._match_valid_url(url).groups()
 
         article = self._call_api('articles', 'slug', display_id, locale, '''body
     embed_code''')[0]