mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2025-09-30 13:44:51 +00:00
[extractor] Add _perform_login
function (#2943)
* Adds new functions `_initialize_pre_login` and `_perform_login` as part of the extractor API * Adds `ie.supports_login` to the public API
This commit is contained in:
@@ -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 @@ class VLiveBaseIE(NaverBaseIE):
|
||||
|
||||
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:
|
||||
|
Reference in New Issue
Block a user