]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/frontendmasters.py
[ie/orf:on] Improve extraction (#9677)
[yt-dlp.git] / yt_dlp / extractor / frontendmasters.py
index f1db33fb161f13d2b2fe6e09d327c04247444945..3bae8add05fb6cd3a518ad391ad56f03f1e65775 100644 (file)
@@ -1,6 +1,3 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
 import re
 
 from .common import InfoExtractor
@@ -28,14 +25,7 @@ class FrontendMastersBaseIE(InfoExtractor):
         'high': {'width': 1920, 'height': 1080}
     }
 
-    def _real_initialize(self):
-        self._login()
-
-    def _login(self):
-        (username, password) = self._get_login_info()
-        if username is None:
-            return
-
+    def _perform_login(self, username, password):
         login_page = self._download_webpage(
             self._LOGIN_URL, None, 'Downloading login page')
 
@@ -170,7 +160,6 @@ def _real_extract(self, url):
                     'format_id': format_id,
                 })
                 formats.append(f)
-        self._sort_formats(formats)
 
         subtitles = {
             'en': [{
@@ -207,7 +196,7 @@ class FrontendMastersLessonIE(FrontendMastersPageBaseIE):
     }
 
     def _real_extract(self, url):
-        mobj = re.match(self._VALID_URL, url)
+        mobj = self._match_valid_url(url)
         course_name, lesson_name = mobj.group('course_name', 'lesson_name')
 
         course = self._download_course(course_name, url)
@@ -252,9 +241,9 @@ def _real_extract(self, url):
         entries = []
         for lesson in lessons:
             lesson_name = lesson.get('slug')
-            if not lesson_name:
-                continue
             lesson_id = lesson.get('hash') or lesson.get('statsId')
+            if not lesson_id or not lesson_name:
+                continue
             entries.append(self._extract_lesson(chapters, lesson_id, lesson))
 
         title = course.get('title')