]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/srgssr.py
[ie/PrankCastPost] Add extractor (#8933)
[yt-dlp.git] / yt_dlp / extractor / srgssr.py
index 2977b5e6703b4962e61026b02ba558e40edce38e..145f25e9f7602856c620e8365b2c1bcc9b072a1e 100644 (file)
@@ -1,13 +1,9 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-import re
-
 from .common import InfoExtractor
 from ..utils import (
     ExtractorError,
     float_or_none,
     int_or_none,
+    join_nonempty,
     parse_iso8601,
     qualities,
     try_get,
@@ -82,7 +78,7 @@ def _get_media_data(self, bu, media_type, media_id):
         return media_data
 
     def _real_extract(self, url):
-        bu, media_type, media_id = re.match(self._VALID_URL, url).groups()
+        bu, media_type, media_id = self._match_valid_url(url).groups()
         media_data = self._get_media_data(bu, media_type, media_id)
         title = media_data['title']
 
@@ -95,11 +91,7 @@ def _real_extract(self, url):
                 continue
             protocol = source.get('protocol')
             quality = source.get('quality')
-            format_id = []
-            for e in (protocol, source.get('encoding'), quality):
-                if e:
-                    format_id.append(e)
-            format_id = '-'.join(format_id)
+            format_id = join_nonempty(protocol, source.get('encoding'), quality)
 
             if protocol in ('HDS', 'HLS'):
                 if source.get('tokenType') == 'AKAMAI':
@@ -136,7 +128,6 @@ def _real_extract(self, url):
                     'url': podcast_url,
                     'quality': q(quality),
                 })
-        self._sort_formats(formats)
 
         if media_type == 'video':
             for sub in (media_data.get('subtitleList') or []):
@@ -249,7 +240,7 @@ class SRGSSRPlayIE(InfoExtractor):
     }]
 
     def _real_extract(self, url):
-        mobj = re.match(self._VALID_URL, url)
+        mobj = self._match_valid_url(url)
         bu = mobj.group('bu')
         media_type = mobj.group('type') or mobj.group('type_2')
         media_id = mobj.group('id')