]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/teachable.py
[ie/crunchyroll] Fix stream extraction (#10005)
[yt-dlp.git] / yt_dlp / extractor / teachable.py
index e480d7610145f912f48cb1cb260825257fd2837b..5eac9aa3fd0984390051ea5a6531aee8eccacac3 100644 (file)
@@ -56,7 +56,7 @@ def is_logged(webpage):
             self._logged_in = True
             return
 
-        login_url = urlh.geturl()
+        login_url = urlh.url
 
         login_form = self._hidden_inputs(login_page)
 
@@ -99,6 +99,7 @@ def is_logged(webpage):
 
 
 class TeachableIE(TeachableBaseIE):
+    _WORKING = False
     _VALID_URL = r'''(?x)
                     (?:
                         %shttps?://(?P<site_t>[^/]+)|
@@ -140,12 +141,12 @@ def _is_teachable(webpage):
             r'<link[^>]+href=["\']https?://(?:process\.fs|assets)\.teachablecdn\.com',
             webpage)
 
-    @staticmethod
-    def _extract_url(webpage, source_url):
-        if not TeachableIE._is_teachable(webpage):
-            return
-        if re.match(r'https?://[^/]+/(?:courses|p)', source_url):
-            return '%s%s' % (TeachableBaseIE._URL_PREFIX, source_url)
+    @classmethod
+    def _extract_embed_urls(cls, url, webpage):
+        if cls._is_teachable(webpage):
+            if re.match(r'https?://[^/]+/(?:courses|p)', url):
+                yield f'{cls._URL_PREFIX}{url}'
+                raise cls.StopExtraction()
 
     def _real_extract(self, url):
         mobj = self._match_valid_url(url)
@@ -160,7 +161,7 @@ def _real_extract(self, url):
 
         webpage = self._download_webpage(url, video_id)
 
-        wistia_urls = WistiaIE._extract_urls(webpage)
+        wistia_urls = WistiaIE._extract_embed_urls(url, webpage)
         if not wistia_urls:
             if any(re.search(p, webpage) for p in (
                     r'class=["\']lecture-contents-locked',