]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/substack.py
[extractors] Use new framework for existing embeds (#4307)
[yt-dlp.git] / yt_dlp / extractor / substack.py
index 70cf10515c8fd0d57252bf34298daef162032f3e..787b9f70d68d51964caa9f1343e24a8168e5f238 100644 (file)
@@ -46,14 +46,15 @@ class SubstackIE(InfoExtractor):
     }]
 
     @classmethod
-    def _extract_url(cls, webpage, url):
+    def _extract_embed_urls(cls, url, webpage):
         if not re.search(r'<script[^>]+src=["\']https://substackcdn.com/[^"\']+\.js', webpage):
             return
 
         mobj = re.search(r'{[^}]*["\']subdomain["\']\s*:\s*["\'](?P<subdomain>[^"]+)', webpage)
         if mobj:
             parsed = urllib.parse.urlparse(url)
-            return parsed._replace(netloc=f'{mobj.group("subdomain")}.substack.com').geturl()
+            yield parsed._replace(netloc=f'{mobj.group("subdomain")}.substack.com').geturl()
+            raise cls.StopExtraction()
 
     def _extract_video_formats(self, video_id, username):
         formats, subtitles = [], {}