aboutsummaryrefslogtreecommitdiffstats
path: root/hypervideo_dl/extractor/gaia.py
diff options
context:
space:
mode:
Diffstat (limited to 'hypervideo_dl/extractor/gaia.py')
-rw-r--r--hypervideo_dl/extractor/gaia.py30
1 files changed, 14 insertions, 16 deletions
diff --git a/hypervideo_dl/extractor/gaia.py b/hypervideo_dl/extractor/gaia.py
index 7821fb7..5b0195c 100644
--- a/hypervideo_dl/extractor/gaia.py
+++ b/hypervideo_dl/extractor/gaia.py
@@ -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(