Session and token storage#
Token storage: where a saved login lives.
A session is the (access token, refresh token, user, country,
issuing client) tuple Tidal’s device flow yields. The default
FileTokenStore is a single JSON file with mode 0600;
hosts (Django) may supply any object implementing TokenStore
(e.g. DB-backed or encrypted-at-rest) — the rest of the library only
talks to the protocol.
Compatibility: files written by Tidal-Media-Downloader
(~/.tidal-dl.token.json) are base64-wrapped JSON with the same
field names; FileTokenStore reads them transparently and
rewrites them in the plain-JSON format on first save.
- class tidalpy.session.FileTokenStore(path=None)[source]#
Bases:
objectJSON-file token store with atomic writes and legacy format support.
- Parameters:
path (str | Path | None)
- load()[source]#
- Return type:
TokenRecord | None
- save(record)[source]#
- Parameters:
record (TokenRecord)
- Return type:
None
- class tidalpy.session.TokenRecord(user_id=None, country_code=None, access_token=None, refresh_token=None, expires_after=0.0, client_id=None, updated_at=<factory>)[source]#
Bases:
objectA saved login, bound to the OAuth client that issued it.
- Parameters:
- __init__(user_id=None, country_code=None, access_token=None, refresh_token=None, expires_after=0.0, client_id=None, updated_at=<factory>)#
- class tidalpy.session.TokenStore(*args, **kwargs)[source]#
Bases:
ProtocolStorage a
TidalClientreads and writes.- __init__(*args, **kwargs)#
- load()[source]#
Current saved session, or
Nonewhen absent/unreadable.- Return type:
TokenRecord | None
- save(record)[source]#
Persist
record(must be durable and atomic enough).- Parameters:
record (TokenRecord)
- Return type:
None