|
|
|
@ -99,6 +99,10 @@ class WeverseBaseIE(InfoExtractor):
|
|
|
|
|
return is_expired
|
|
|
|
|
return not self._access_token_is_valid()
|
|
|
|
|
|
|
|
|
|
def _set_weverse_auth_cookies(self):
|
|
|
|
|
self._set_cookie('.weverse.io', self._ACCESS_TOKEN_KEY, self._oauth_tokens[self._ACCESS_TOKEN_KEY])
|
|
|
|
|
self._set_cookie('.weverse.io', self._REFRESH_TOKEN_KEY, self._oauth_tokens[self._REFRESH_TOKEN_KEY])
|
|
|
|
|
|
|
|
|
|
def _refresh_access_token(self):
|
|
|
|
|
if not self._oauth_tokens.get(self._REFRESH_TOKEN_KEY):
|
|
|
|
|
self._report_login_error('no_refresh_token')
|
|
|
|
@ -120,10 +124,9 @@ class WeverseBaseIE(InfoExtractor):
|
|
|
|
|
except ExtractorError as e:
|
|
|
|
|
if isinstance(e.cause, HTTPError) and e.cause.status == 401:
|
|
|
|
|
self._oauth_tokens.clear()
|
|
|
|
|
if self._oauth_cache_key == 'cookies':
|
|
|
|
|
self.cookiejar.clear(domain='.weverse.io', path='/', name=self._ACCESS_TOKEN_KEY)
|
|
|
|
|
self.cookiejar.clear(domain='.weverse.io', path='/', name=self._REFRESH_TOKEN_KEY)
|
|
|
|
|
else:
|
|
|
|
|
self.cookiejar.clear(domain='.weverse.io', path='/', name=self._ACCESS_TOKEN_KEY)
|
|
|
|
|
self.cookiejar.clear(domain='.weverse.io', path='/', name=self._REFRESH_TOKEN_KEY)
|
|
|
|
|
if self._oauth_cache_key != 'cookies':
|
|
|
|
|
self.cache.store(self._NETRC_MACHINE, self._oauth_cache_key, self._oauth_tokens)
|
|
|
|
|
self._report_login_error('expired_refresh_token')
|
|
|
|
|
raise
|
|
|
|
@ -133,10 +136,8 @@ class WeverseBaseIE(InfoExtractor):
|
|
|
|
|
self._REFRESH_TOKEN_KEY: ('refreshToken', {str}, {require('refresh token')}),
|
|
|
|
|
}))
|
|
|
|
|
|
|
|
|
|
if self._oauth_cache_key == 'cookies':
|
|
|
|
|
self._set_cookie('.weverse.io', self._ACCESS_TOKEN_KEY, self._oauth_tokens[self._ACCESS_TOKEN_KEY])
|
|
|
|
|
self._set_cookie('.weverse.io', self._REFRESH_TOKEN_KEY, self._oauth_tokens[self._REFRESH_TOKEN_KEY])
|
|
|
|
|
else:
|
|
|
|
|
self._set_weverse_auth_cookies()
|
|
|
|
|
if self._oauth_cache_key != 'cookies':
|
|
|
|
|
self.cache.store(self._NETRC_MACHINE, self._oauth_cache_key, self._oauth_tokens)
|
|
|
|
|
|
|
|
|
|
def _get_authorization_header(self):
|
|
|
|
@ -169,6 +170,7 @@ class WeverseBaseIE(InfoExtractor):
|
|
|
|
|
|
|
|
|
|
self._oauth_tokens.update(self.cache.load(self._NETRC_MACHINE, self._oauth_cache_key, default={}))
|
|
|
|
|
if self._is_logged_in and self._access_token_is_valid():
|
|
|
|
|
self._set_weverse_auth_cookies()
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
rt_key = self._REFRESH_TOKEN_KEY
|
|
|
|
@ -471,6 +473,8 @@ class WeverseIE(WeverseBaseIE):
|
|
|
|
|
'channel': channel,
|
|
|
|
|
'channel_url': f'https://weverse.io/{channel}',
|
|
|
|
|
'formats': formats,
|
|
|
|
|
# Needed for livestream HLS AES keys
|
|
|
|
|
'additional_cookies_urls': ['https://video-api.weverse.io/'],
|
|
|
|
|
'availability': availability,
|
|
|
|
|
'live_status': live_status,
|
|
|
|
|
**self._parse_post_meta(post),
|
|
|
|
|