]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/rts.py
[ie/FlexTV] Add extractor (#9178)
[yt-dlp.git] / yt_dlp / extractor / rts.py
index aed35f8a9802b1d98664ddf6ada0499059b5625f..9f73d1811fa10964698fb411446e53d418929f6c 100644 (file)
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
 import re
 
 from .srgssr import SRGSSRIE
@@ -15,7 +12,7 @@
 )
 
 
-class RTSIE(SRGSSRIE):
+class RTSIE(SRGSSRIE):  # XXX: Do not subclass from concrete IE
     IE_DESC = 'RTS.ch'
     _VALID_URL = r'rts:(?P<rts_id>\d+)|https?://(?:.+?\.)?rts\.ch/(?:[^/]+/){2,}(?P<id>[0-9]+)-(?P<display_id>.+?)\.html'
 
@@ -116,7 +113,7 @@ class RTSIE(SRGSSRIE):
     ]
 
     def _real_extract(self, url):
-        m = re.match(self._VALID_URL, url)
+        m = self._match_valid_url(url)
         media_id = m.group('rts_id') or m.group('id')
         display_id = m.group('display_id') or media_id
 
@@ -139,8 +136,8 @@ def download_json(internal_id):
 
             if not entries:
                 page, urlh = self._download_webpage_handle(url, display_id)
-                if re.match(self._VALID_URL, urlh.geturl()).group('id') != media_id:
-                    return self.url_result(urlh.geturl(), 'RTS')
+                if re.match(self._VALID_URL, urlh.url).group('id') != media_id:
+                    return self.url_result(urlh.url, 'RTS')
 
                 # article with videos on rhs
                 videos = re.findall(
@@ -215,7 +212,6 @@ def extract_bitrate(url):
             })
 
         self._check_formats(formats, media_id)
-        self._sort_formats(formats)
 
         duration = info.get('duration') or info.get('cutout') or info.get('cutduration')
         if isinstance(duration, compat_str):