]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/tennistv.py
[extractor] Add `_perform_login` function (#2943)
[yt-dlp.git] / yt_dlp / extractor / tennistv.py
index 5e3eb89380b09338f795683f979f205de9514fa3..58fdecebeec76beaf3f2235547e27c1d32b98ca5 100644 (file)
@@ -30,11 +30,9 @@ class TennisTVIE(InfoExtractor):
         'skip': 'Requires email and password of a subscribed account',
     }
     _NETRC_MACHINE = 'tennistv'
+    _session_token = None
 
-    def _login(self):
-        username, password = self._get_login_info()
-        if not username or not password:
-            raise ExtractorError('No login info available, needed for using %s.' % self.IE_NAME, expected=True)
+    def _perform_login(self, username, password):
 
         login_form = {
             'Email': username,
@@ -63,7 +61,8 @@ def _login(self):
         self._session_token = login_result['sessionToken']
 
     def _real_initialize(self):
-        self._login()
+        if not self._session_token:
+            raise self.raise_login_required('Login info is needed for this website', method='password')
 
     def _real_extract(self, url):
         video_id = self._match_id(url)
@@ -86,6 +85,7 @@ def _real_extract(self, url):
             'https://www.tennistv.com/api/users/v1/entitlementchecknondiva',
             video_id, note='Checking video authorization', headers=headers, data=check_json)
         formats = self._extract_m3u8_formats(check_result['contentUrl'], video_id, ext='mp4')
+        self._sort_formats(formats)
 
         vdata = self._download_json(
             'https://www.tennistv.com/api/en/v2/none/common/video/%s' % video_id,