]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/nrk.py
[ie/crunchyroll] Fix stream extraction (#10005)
[yt-dlp.git] / yt_dlp / extractor / nrk.py
index 7eb5b21cb467b8a777d35805033f6a1b10976763..384865accdcb89a6ae13b4ab3bd0f44cff1d7cfa 100644 (file)
@@ -3,7 +3,8 @@
 import re
 
 from .common import InfoExtractor
-from ..compat import compat_HTTPError, compat_str
+from ..compat import compat_str
+from ..networking.exceptions import HTTPError
 from ..utils import (
     ExtractorError,
     determine_ext,
@@ -148,7 +149,7 @@ def call_playback_api(item, query=None):
             try:
                 return self._call_api(f'playback/{item}/program/{video_id}', video_id, item, query=query)
             except ExtractorError as e:
-                if isinstance(e.cause, compat_HTTPError) and e.cause.code == 400:
+                if isinstance(e.cause, HTTPError) and e.cause.status == 400:
                     return self._call_api(f'playback/{item}/{video_id}', video_id, item, query=query)
                 raise
 
@@ -180,7 +181,6 @@ def call_playback_api(item, query=None):
                     'format_id': asset_format,
                     'vcodec': 'none',
                 })
-        self._sort_formats(formats)
 
         data = call_playback_api('metadata')
 
@@ -735,7 +735,7 @@ def _real_extract(self, url):
             entries, series_id, titles.get('title'), titles.get('subtitle'))
 
 
-class NRKTVDirekteIE(NRKTVIE):
+class NRKTVDirekteIE(NRKTVIE):  # XXX: Do not subclass from concrete IE
     IE_DESC = 'NRK TV Direkte and NRK Radio Direkte'
     _VALID_URL = r'https?://(?:tv|radio)\.nrk\.no/direkte/(?P<id>[^/?#&]+)'