]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/embedly.py
[extractors] Use new framework for existing embeds (#4307)
[yt-dlp.git] / yt_dlp / extractor / embedly.py
index a8d1f3c55cda06fb68f014da651308c2eb0b2a61..483d018bb44c8be047acc3ed1e2f2c514cdf7387 100644 (file)
@@ -1,3 +1,5 @@
+import re
+import urllib.parse
 from .common import InfoExtractor
 from ..compat import compat_urllib_parse_unquote
 
@@ -9,5 +11,14 @@ class EmbedlyIE(InfoExtractor):
         'only_matching': True,
     }]
 
+    @classmethod
+    def _extract_embed_urls(cls, url, webpage):
+        # Bypass suitable check
+        for mobj in re.finditer(r'class=["\']embedly-card["\'][^>]href=["\'](?P<url>[^"\']+)', webpage):
+            yield mobj.group('url')
+
+        for mobj in re.finditer(r'class=["\']embedly-embed["\'][^>]src=["\'][^"\']*url=(?P<url>[^&]+)', webpage):
+            yield urllib.parse.unquote(mobj.group('url'))
+
     def _real_extract(self, url):
         return self.url_result(compat_urllib_parse_unquote(self._match_id(url)))