]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/simplecast.py
[extractors] Use new framework for existing embeds (#4307)
[yt-dlp.git] / yt_dlp / extractor / simplecast.py
index 2d0b3c06d8938c207b1c7a1e940fb9b123cd3c8e..ec349ddf900d6ba5e5750bd32be9cda4589c397c 100644 (file)
@@ -1,8 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
-import re
-
 from .common import InfoExtractor
 from ..utils import (
     clean_podcast_url,
@@ -71,6 +66,11 @@ def _parse_episode(self, episode):
 class SimplecastIE(SimplecastBaseIE):
     IE_NAME = 'simplecast'
     _VALID_URL = r'https?://(?:api\.simplecast\.com/episodes|player\.simplecast\.com)/(?P<id>%s)' % SimplecastBaseIE._UUID_REGEX
+    _EMBED_REGEX = [rf'''(?x)<iframe[^>]+src=["\']
+        (?P<url>https?://(?:
+            embed\.simplecast\.com/[0-9a-f]{8}|
+            player\.simplecast\.com/{SimplecastBaseIE._UUID_REGEX}
+        ))''']
     _COMMON_TEST_INFO = {
         'display_id': 'errant-signal-chris-franklin-new-wave-video-essays',
         'id': 'b6dc49a2-9404-4853-9aa9-9cfc097be876',
@@ -97,15 +97,6 @@ class SimplecastIE(SimplecastBaseIE):
         'only_matching': True,
     }]
 
-    @staticmethod
-    def _extract_urls(webpage):
-        return re.findall(
-            r'''(?x)<iframe[^>]+src=["\']
-                (
-                    https?://(?:embed\.simplecast\.com/[0-9a-f]{8}|
-                    player\.simplecast\.com/%s
-                ))''' % SimplecastBaseIE._UUID_REGEX, webpage)
-
     def _real_extract(self, url):
         episode_id = self._match_id(url)
         episode = self._call_api('episodes/%s', episode_id)
@@ -122,7 +113,7 @@ class SimplecastEpisodeIE(SimplecastBaseIE):
     }
 
     def _real_extract(self, url):
-        mobj = re.match(self._VALID_URL, url)
+        mobj = self._match_valid_url(url)
         episode = self._call_search_api(
             'episode', mobj.group(1), mobj.group(0))
         return self._parse_episode(episode)