]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/vlive.py
[extractor] Add `_perform_login` function (#2943)
[yt-dlp.git] / yt_dlp / extractor / vlive.py
index 74dc349d5642d5e92a949039b8ac23de8684a214..ae35c976c22a6d8185bb1ab20799dc6c7e38e4ba 100644 (file)
@@ -26,22 +26,16 @@ class VLiveBaseIE(NaverBaseIE):
     _NETRC_MACHINE = 'vlive'
     _logged_in = False
 
-    def _real_initialize(self):
-        if not self._logged_in:
-            VLiveBaseIE._logged_in = self._login()
-
-    def _login(self):
-        email, password = self._get_login_info()
-        if email is None:
-            return False
-
+    def _perform_login(self, username, password):
+        if self._logged_in:
+            return
         LOGIN_URL = 'https://www.vlive.tv/auth/email/login'
         self._request_webpage(
             LOGIN_URL, None, note='Downloading login cookies')
 
         self._download_webpage(
             LOGIN_URL, None, note='Logging in',
-            data=urlencode_postdata({'email': email, 'pwd': password}),
+            data=urlencode_postdata({'email': username, 'pwd': password}),
             headers={
                 'Referer': LOGIN_URL,
                 'Content-Type': 'application/x-www-form-urlencoded'
@@ -54,7 +48,7 @@ def _login(self):
 
         if not try_get(login_info, lambda x: x['message']['login'], bool):
             raise ExtractorError('Unable to log in', expected=True)
-        return True
+        VLiveBaseIE._logged_in = True
 
     def _call_api(self, path_template, video_id, fields=None, query_add={}, note=None):
         if note is None: