]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/lego.py
[ie/crunchyroll] Fix stream extraction (#10005)
[yt-dlp.git] / yt_dlp / extractor / lego.py
index 1e3c19dfd65b442ee7b4f3abf1803022c5975d8e..46fc7a9b6035d4e479601cd99e1f2398826d37ab 100644 (file)
@@ -1,14 +1,11 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-import re
 import uuid
 
 from .common import InfoExtractor
-from ..compat import compat_HTTPError
+from ..networking.exceptions import HTTPError
 from ..utils import (
     ExtractorError,
     int_or_none,
+    join_nonempty,
     qualities,
 )
 
@@ -64,7 +61,7 @@ class LEGOIE(InfoExtractor):
     }
 
     def _real_extract(self, url):
-        locale, video_id = re.match(self._VALID_URL, url).groups()
+        locale, video_id = self._match_valid_url(url).groups()
         countries = [locale.split('-')[1].upper()]
         self._initialize_geo_bypass({
             'countries': countries,
@@ -78,7 +75,7 @@ def _real_extract(self, url):
                     'videoId': '%s_%s' % (uuid.UUID(video_id), locale),
                 }, headers=self.geo_verification_headers())
         except ExtractorError as e:
-            if isinstance(e.cause, compat_HTTPError) and e.cause.code == 451:
+            if isinstance(e.cause, HTTPError) and e.cause.status == 451:
                 self.raise_geo_restricted(countries=countries)
             raise
 
@@ -103,12 +100,8 @@ def _real_extract(self, url):
                     m3u8_id=video_source_format, fatal=False))
             else:
                 video_source_quality = video_source.get('Quality')
-                format_id = []
-                for v in (video_source_format, video_source_quality):
-                    if v:
-                        format_id.append(v)
                 f = {
-                    'format_id': '-'.join(format_id),
+                    'format_id': join_nonempty(video_source_format, video_source_quality),
                     'quality': q(video_source_quality),
                     'url': video_source_url,
                 }
@@ -120,7 +113,6 @@ def _real_extract(self, url):
                         'width': quality[2],
                     }),
                 formats.append(f)
-        self._sort_formats(formats)
 
         subtitles = {}
         sub_file_id = video.get('SubFileId')