]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/sixplay.py
[ie/crunchyroll] Fix stream extraction (#10005)
[yt-dlp.git] / yt_dlp / extractor / sixplay.py
index 7ec66ecf39689feafb40744fa642c61300b91943..ef93b92768d85ce4ee5704bf366d07a892ef7838 100644 (file)
@@ -1,17 +1,11 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-import re
-
 from .common import InfoExtractor
 from ..compat import (
-    compat_parse_qs,
     compat_str,
-    compat_urllib_parse_urlparse,
 )
 from ..utils import (
     determine_ext,
     int_or_none,
+    parse_qs,
     try_get,
     qualities,
 )
@@ -41,7 +35,7 @@ class SixPlayIE(InfoExtractor):
     }]
 
     def _real_extract(self, url):
-        domain, video_id = re.search(self._VALID_URL, url).groups()
+        domain, video_id = self._match_valid_url(url).groups()
         service, consumer_name = {
             '6play.fr': ('6play', 'm6web'),
             'rtlplay.be': ('rtlbe_rtl_play', 'rtlbe'),
@@ -79,13 +73,13 @@ def _real_extract(self, url):
                 continue
             if container == 'm3u8' or ext == 'm3u8':
                 if protocol == 'usp':
-                    if compat_parse_qs(compat_urllib_parse_urlparse(asset_url).query).get('token', [None])[0]:
+                    if parse_qs(asset_url).get('token', [None])[0]:
                         urlh = self._request_webpage(
                             asset_url, video_id, fatal=False,
                             headers=self.geo_verification_headers())
                         if not urlh:
                             continue
-                        asset_url = urlh.geturl()
+                        asset_url = urlh.url
                     asset_url = asset_url.replace('_drmnp.ism/', '_unpnp.ism/')
                     for i in range(3, 0, -1):
                         asset_url = asset_url = asset_url.replace('_sd1/', '_sd%d/' % i)
@@ -110,7 +104,6 @@ def _real_extract(self, url):
                     'quality': quality_key(quality),
                     'ext': ext,
                 })
-        self._sort_formats(formats)
 
         def get(getter):
             for src in (data, clip_data):