crabidy/tidaldy/README.md

62 lines
2.1 KiB
Markdown

# tidaldy — the Tidal provider
Mounts your Tidal account at **`/tidal`** in the crabidy library, using
Tidal's web API.
## How it works
On first start the provider runs Tidal's OAuth **device login**: the
server prints a `link.tidal.com` verification URL to its stdout (for
`cbd`, check the log file) — open it in a browser, authorize, and the
provider finishes logging in by itself. The obtained tokens are written
back into the config file and refreshed automatically from then on; you
should not need to log in again.
The tree offers your playlists, favorite artists (with their albums and
tracks), and a **search** node: press `%` under `/tidal/search` to
create a search term; the term becomes a persistent child node holding
its results (tracks, artists, albums). Terms are renamable (`e`,
re-runs the search) and deletable (`d`).
Everything queueable is also capturable: `w` bookmarks a subtree as
links, `W` downloads a subtree's audio into `/captures/<name>`.
## Configuration — `~/.config/crabidy/tidaly.toml`
The file is rewritten on every server start with the current values
(including refreshed tokens), so **it contains your credentials — keep
it private**. All options with their defaults:
```toml
# Tidal API endpoints. Change only if you know why.
base_url = "https://api.tidal.com/v1"
hifi_url = "https://api.tidalhifi.com/v1"
# Stream quality: "Low" | "High" | "Lossless" | "HiRes".
audio_quality = "Lossless"
# Managed by the provider: filled in by the device login and refreshed
# automatically. Delete this whole section to force a fresh login.
[login]
# device_code = ...
# user_id = ...
# country_code = ...
# access_token = ...
# refresh_token = ...
# expires_after = ...
# OAuth client identity used for the device flow. Working defaults are
# built in; override only to use your own client registration.
[oauth]
# client_id = ...
# client_secret = ...
base_url = "https://auth.tidal.com/v1/oauth2"
```
Notes:
- A missing or empty file is fine: defaults are used and the device
login runs on the next start.
- If Tidal ever invalidates the session (long offline periods), delete
the `[login]` section and restart.