mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2025-09-03 00:25:08 +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:
@ -56,24 +56,22 @@ class GaiaIE(InfoExtractor):
|
||||
def _real_initialize(self):
|
||||
auth = self._get_cookies('https://www.gaia.com/').get('auth')
|
||||
if auth:
|
||||
auth = self._parse_json(
|
||||
compat_urllib_parse_unquote(auth.value),
|
||||
None, fatal=False)
|
||||
if not auth:
|
||||
username, password = self._get_login_info()
|
||||
if username is None:
|
||||
return
|
||||
auth = self._download_json(
|
||||
'https://auth.gaia.com/v1/login',
|
||||
None, data=urlencode_postdata({
|
||||
'username': username,
|
||||
'password': password
|
||||
}))
|
||||
if auth.get('success') is False:
|
||||
raise ExtractorError(', '.join(auth['messages']), expected=True)
|
||||
if auth:
|
||||
auth = self._parse_json(compat_urllib_parse_unquote(auth.value), None, fatal=False)
|
||||
self._jwt = auth.get('jwt')
|
||||
|
||||
def _perform_login(self, username, password):
|
||||
if self._jwt:
|
||||
return
|
||||
auth = self._download_json(
|
||||
'https://auth.gaia.com/v1/login',
|
||||
None, data=urlencode_postdata({
|
||||
'username': username,
|
||||
'password': password
|
||||
}))
|
||||
if auth.get('success') is False:
|
||||
raise ExtractorError(', '.join(auth['messages']), expected=True)
|
||||
self._jwt = auth.get('jwt')
|
||||
|
||||
def _real_extract(self, url):
|
||||
display_id, vtype = self._match_valid_url(url).groups()
|
||||
node_id = self._download_json(
|
||||
|
Reference in New Issue
Block a user