mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2026-05-12 10:26:14 +00:00
Compare commits
3 Commits
4161727150
...
2d285b543e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2d285b543e | ||
|
|
8c2d740997 | ||
|
|
dc1fd5cd0b |
@ -31,7 +31,6 @@ from ..utils.traversal import require, traverse_obj
|
|||||||
class WeverseBaseIE(InfoExtractor):
|
class WeverseBaseIE(InfoExtractor):
|
||||||
_NETRC_MACHINE = 'weverse'
|
_NETRC_MACHINE = 'weverse'
|
||||||
_ACCOUNT_API_BASE = 'https://accountapi.weverse.io'
|
_ACCOUNT_API_BASE = 'https://accountapi.weverse.io'
|
||||||
_CLIENT_ID = 'weverse'
|
|
||||||
_CLIENT_PLATFORM = 'WEB'
|
_CLIENT_PLATFORM = 'WEB'
|
||||||
_SIGNING_KEY = b'1b9cb6378d959b45714bec49971ade22e6e24e42'
|
_SIGNING_KEY = b'1b9cb6378d959b45714bec49971ade22e6e24e42'
|
||||||
_ACCESS_TOKEN_KEY = 'we2_access_token'
|
_ACCESS_TOKEN_KEY = 'we2_access_token'
|
||||||
@ -69,7 +68,7 @@ class WeverseBaseIE(InfoExtractor):
|
|||||||
return {
|
return {
|
||||||
**self._API_HEADERS,
|
**self._API_HEADERS,
|
||||||
'X-ACC-APP-SECRET': '5419526f1c624b38b10787e5c10b2a7a',
|
'X-ACC-APP-SECRET': '5419526f1c624b38b10787e5c10b2a7a',
|
||||||
'X-ACC-SERVICE-ID': self._CLIENT_ID,
|
'X-ACC-SERVICE-ID': 'weverse',
|
||||||
'X-ACC-TRACE-ID': str(uuid.uuid4()),
|
'X-ACC-TRACE-ID': str(uuid.uuid4()),
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -110,6 +109,7 @@ class WeverseBaseIE(InfoExtractor):
|
|||||||
if self._is_logged_in:
|
if self._is_logged_in:
|
||||||
headers['Authorization'] = f'Bearer {self._oauth_tokens[self._ACCESS_TOKEN_KEY]}'
|
headers['Authorization'] = f'Bearer {self._oauth_tokens[self._ACCESS_TOKEN_KEY]}'
|
||||||
|
|
||||||
|
try:
|
||||||
response = self._download_json(
|
response = self._download_json(
|
||||||
f'{self._ACCOUNT_API_BASE}/api/v1/token/refresh', None,
|
f'{self._ACCOUNT_API_BASE}/api/v1/token/refresh', None,
|
||||||
'Refreshing access token', 'Unable to refresh access token',
|
'Refreshing access token', 'Unable to refresh access token',
|
||||||
@ -117,6 +117,16 @@ class WeverseBaseIE(InfoExtractor):
|
|||||||
data=json.dumps({
|
data=json.dumps({
|
||||||
'refreshToken': self._oauth_tokens[self._REFRESH_TOKEN_KEY],
|
'refreshToken': self._oauth_tokens[self._REFRESH_TOKEN_KEY],
|
||||||
}, separators=(',', ':')).encode())
|
}, separators=(',', ':')).encode())
|
||||||
|
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.cache.store(self._NETRC_MACHINE, self._oauth_cache_key, self._oauth_tokens)
|
||||||
|
self._report_login_error('expired_refresh_token')
|
||||||
|
raise
|
||||||
|
|
||||||
self._oauth_tokens.update(traverse_obj(response, {
|
self._oauth_tokens.update(traverse_obj(response, {
|
||||||
self._ACCESS_TOKEN_KEY: ('accessToken', {str}, {require('access token')}),
|
self._ACCESS_TOKEN_KEY: ('accessToken', {str}, {require('access token')}),
|
||||||
@ -196,7 +206,7 @@ class WeverseBaseIE(InfoExtractor):
|
|||||||
'platform': self._CLIENT_PLATFORM,
|
'platform': self._CLIENT_PLATFORM,
|
||||||
'wpf': 'pc',
|
'wpf': 'pc',
|
||||||
})
|
})
|
||||||
for retry in (False, True):
|
for is_retry in (False, True):
|
||||||
wmsgpad = int(time.time() * 1000)
|
wmsgpad = int(time.time() * 1000)
|
||||||
wmd = base64.b64encode(hmac.HMAC(
|
wmd = base64.b64encode(hmac.HMAC(
|
||||||
self._SIGNING_KEY, f'{api_path[:255]}{wmsgpad}'.encode(),
|
self._SIGNING_KEY, f'{api_path[:255]}{wmsgpad}'.encode(),
|
||||||
@ -215,7 +225,7 @@ class WeverseBaseIE(InfoExtractor):
|
|||||||
'wmd': wmd,
|
'wmd': wmd,
|
||||||
})
|
})
|
||||||
except ExtractorError as e:
|
except ExtractorError as e:
|
||||||
if retry or not isinstance(e.cause, HTTPError):
|
if is_retry or not isinstance(e.cause, HTTPError):
|
||||||
raise
|
raise
|
||||||
elif self._is_logged_in and e.cause.status == 401:
|
elif self._is_logged_in and e.cause.status == 401:
|
||||||
self._refresh_access_token()
|
self._refresh_access_token()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user