]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/springboardplatform.py
[ie/matchtv] Fix extractor (#10190)
[yt-dlp.git] / yt_dlp / extractor / springboardplatform.py
index 49ac1f559cd63e6791d371d2cbe27514511c83af..cd3261d554a529e6d4cf2f7146084c5415f51725 100644 (file)
@@ -1,17 +1,14 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
 import re
 
 from .common import InfoExtractor
 from ..utils import (
     ExtractorError,
     int_or_none,
-    xpath_attr,
-    xpath_text,
-    xpath_element,
     unescapeHTML,
     unified_timestamp,
+    xpath_attr,
+    xpath_element,
+    xpath_text,
 )
 
 
@@ -24,6 +21,7 @@ class SpringboardPlatformIE(InfoExtractor):
                             xml_feeds_advanced/index/(?P<index_2>\d+)/rss3/(?P<id_2>\d+)
                         )
                     '''
+    _EMBED_REGEX = [r'<iframe\b[^>]+\bsrc=(["\'])(?P<url>(?:https?:)?//cms\.springboardplatform\.com/embed_iframe/\d+/video/\d+.*?)\1']
     _TESTS = [{
         'url': 'http://cms.springboardplatform.com/previews/159/video/981017/0/0/1',
         'md5': '5c3cb7b5c55740d482561099e920f192',
@@ -48,22 +46,13 @@ class SpringboardPlatformIE(InfoExtractor):
         'only_matching': True,
     }]
 
-    @staticmethod
-    def _extract_urls(webpage):
-        return [
-            mobj.group('url')
-            for mobj in re.finditer(
-                r'<iframe\b[^>]+\bsrc=(["\'])(?P<url>(?:https?:)?//cms\.springboardplatform\.com/embed_iframe/\d+/video/\d+.*?)\1',
-                webpage)]
-
     def _real_extract(self, url):
         mobj = self._match_valid_url(url)
         video_id = mobj.group('id') or mobj.group('id_2')
         index = mobj.group('index') or mobj.group('index_2')
 
         video = self._download_xml(
-            'http://cms.springboardplatform.com/xml_feeds_advanced/index/%s/rss3/%s'
-            % (index, video_id), video_id)
+            f'http://cms.springboardplatform.com/xml_feeds_advanced/index/{index}/rss3/{video_id}', video_id)
 
         item = xpath_element(video, './/item', 'item', fatal=True)
 
@@ -76,7 +65,7 @@ def _real_extract(self, url):
 
         if 'error_video.mp4' in video_url:
             raise ExtractorError(
-                'Video %s no longer exists' % video_id, expected=True)
+                f'Video {video_id} no longer exists', expected=True)
 
         duration = int_or_none(content.get('duration'))
         tbr = int_or_none(content.get('bitrate'))
@@ -112,8 +101,6 @@ def _real_extract(self, url):
         })
         formats.append(m3u8_format)
 
-        self._sort_formats(formats)
-
         return {
             'id': video_id,
             'title': title,