mirror of
https://github.com/glomatico/votify.git
synced 2026-09-26 11:02:29 +02:00
Include device client token in auth header
Add DEVICE_CLIENT_TOKEN constant and pass it to SpotifyApi._set_authorization_header when storing access tokens. Also relocate proto imports in api.py. This ensures the device client token is included with authorization for device-scoped requests.
This commit is contained in:
+7
-3
@@ -5,8 +5,6 @@ import time
|
||||
from http.cookiejar import MozillaCookieJar
|
||||
|
||||
import base62
|
||||
from .proto.extendedmetadata_pb2 import BatchedEntityRequest, BatchedExtensionResponse
|
||||
from .proto.playplay_pb2 import PlayPlayLicenseRequest, PlayPlayLicenseResponse
|
||||
import httpx
|
||||
|
||||
from ..utils import safe_json
|
||||
@@ -15,6 +13,7 @@ from .constants import (
|
||||
CLIENT_TOKEN_URL,
|
||||
CLIENT_VERSION,
|
||||
COOKIE_DOMAIN,
|
||||
DEVICE_CLIENT_TOKEN,
|
||||
EXTENDED_METADATA_API_URL,
|
||||
GID_METADATA_URL,
|
||||
HOME_PAGE_URL,
|
||||
@@ -32,6 +31,8 @@ from .constants import (
|
||||
from .device_flow import SpotifyDeviceFlow
|
||||
from .enums import SessionType
|
||||
from .exceptions import VotifyRequestException
|
||||
from .proto.extendedmetadata_pb2 import BatchedEntityRequest, BatchedExtensionResponse
|
||||
from .proto.playplay_pb2 import PlayPlayLicenseRequest, PlayPlayLicenseResponse
|
||||
from .totp import Totp
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@@ -186,7 +187,10 @@ class SpotifyApi:
|
||||
|
||||
self._access_token = token_data["access_token"]
|
||||
|
||||
self._set_authorization_header(token_data["access_token"])
|
||||
self._set_authorization_header(
|
||||
token_data["access_token"],
|
||||
DEVICE_CLIENT_TOKEN,
|
||||
)
|
||||
self._authorization_expire_time = (
|
||||
int(time.time()) + token_data["expires_in"]
|
||||
) * 1000
|
||||
|
||||
@@ -37,3 +37,4 @@ DEVICE_RESOLVE_URL = "https://accounts.spotify.com/pair/api/resolve"
|
||||
DEVICE_CLIENT_ID = "65b708073fc0480ea92a077233ca87bd" # Spotify for Desktop
|
||||
DEVICE_SCOPE = "app-remote-control,playlist-modify,playlist-modify-private,playlist-modify-public,playlist-read,playlist-read-collaborative,playlist-read-private,streaming,transfer-auth-session,ugc-image-upload,user-follow-modify,user-follow-read,user-library-modify,user-library-read,user-modify,user-modify-playback-state,user-modify-private,user-personalized,user-read-birthdate,user-read-currently-playing,user-read-email,user-read-play-history,user-read-playback-position,user-read-playback-state,user-read-private,user-read-recently-played,user-top-read"
|
||||
DEVICE_FLOW_USER_AGENT = "Spotify/126600447 Win32_x86_64/0 (PC laptop)"
|
||||
DEVICE_CLIENT_TOKEN = "AAAyQwhc1wWtqYH7spRtLROv2auz6t7xi6xV0OIlc62hyvNrbjR3Lky8Lh2s7fi8jbjX1k31NBQ6d+mpEcAyXCvrNDmZSgTjuJ1QBVzqHOpP5t4E4kDvB36AfvXmcgZltN5dYgbiHal/R2LNupoZvT1fKocen24bUAHsInYgCtKy+kft4OWN1kaFo8LfNZymZzmXBXfxKfCiO1dKBQPz7Rv5hVPpcoyxkfAl4R5aNdap3iuRdAcaB4Udx28Eu98yrA=="
|
||||
|
||||
Reference in New Issue
Block a user