Getting Startedยถ

This guide will help you set up Tidal integration with plistsync from start to finish.

Prerequisitesยถ

Installationยถ

First, install the Tidal optional dependencies:

pip install 'plistsync[tidal]'
uv add plistsync --extra tidal

Tidal Accountยถ

Youโ€™ll need an active Tidal account. If you donโ€™t have one, sign up at tidal.com. For tidal, free accounts are sufficient to use the API and plistsync.

API Credentialsยถ

To authenticate with Tidalโ€™s API, you need to obtain API credentials:

  1. Visit the Tidal Developer Portal

  2. Log in with your Tidal account

  3. Create a new application

  4. Generate your client_id (and optionally client_secret)

Configurationยถ

Enable Tidal in your plistsync configuration file:

# ./config/config.yaml
services:
  tidal:
    enabled: true
    client_id: your_tidal_client_id_here
    client_secret: your_tidal_client_secret_here # Optional but recommended

Authenticationยถ

Once configured, authenticate plistsync with your Tidal account:

plistsync auth tidal

This will start an interactive authentication flow:

  1. Youโ€™ll be prompted to open a browser to Tidalโ€™s authorization page

  2. Log in with your Tidal credentials

  3. Grant plistsync the requested permissions

  4. This will save an authentication token in the config folder

Authentication Previewยถ

 plistsync auth tidal Usage: plistsync auth tidal [OPTIONS] Use your Tidal account to authenticate with the Tidal API. This will open a browser window to log in to Tidal and obtain an access token. โ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ โ”‚--mode-m[forward|manual]If set to 'manual', the CLI will not startโ”‚ โ”‚a local server and instead ask you to     โ”‚ โ”‚paste the redirected URL after login. Thisโ”‚ โ”‚should be used if you are running the CLI โ”‚ โ”‚on a remote server without browser access.โ”‚ โ”‚[default: forward]                        โ”‚ โ”‚--port-pINTEGER         Port for the local server (if 'forward'   โ”‚ โ”‚mode is used).                            โ”‚ โ”‚--helpShow this message and exit.โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
 plistsync auth tidal Usage: plistsync auth tidal [OPTIONS] Use your Tidal account to authenticate with the Tidal API. This will open a browser window to log in to Tidal and obtain an access token. โ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ โ”‚--mode-m[forward|manual]If set to 'manual', the CLI will not startโ”‚ โ”‚a local server and instead ask you to     โ”‚ โ”‚paste the redirected URL after login. Thisโ”‚ โ”‚should be used if you are running the CLI โ”‚ โ”‚on a remote server without browser access.โ”‚ โ”‚[default: forward]                        โ”‚ โ”‚--port-pINTEGER         Port for the local server (if 'forward'   โ”‚ โ”‚mode is used).                            โ”‚ โ”‚--helpShow this message and exit.โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

Verificationยถ

Test that everything is working by getting your user data:

from plistsync.services.tidal.api import TidalApi
print(TidalApi().user.me())

This should return your userโ€™s ID and email.