Getting Startedยถ

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

Prerequisitesยถ

Installationยถ

First, install the Spotify optional dependencies:

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

Spotify Accountยถ

Youโ€™ll need an active and paid Spotify account.

Note

Since February 2026, Spotify

  • no longer allows access to its API for free accounts

  • and limits us to 5 users per App, even for paid accounts.

This means we can no longer provide working API credentials for plistsync users. You have to create you own credentials.

API Credentialsยถ

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

  1. Visit the Spotify Developer Portal

  2. Log in with your paid Spotify account

  3. Create a new application

  4. Generate your client_id and client_secret

Create an app

Configure the app's callback, and get  and

Configurationยถ

Enable Spotify in your plistsync configuration file:

# ./config/config.yaml
services:
  spotify:
    enabled: true
    client_id: your_spotify_client_id_here
    client_secret: your_spotify_client_secret_here # Optional but recommended

Authenticationยถ

Once configured, authenticate plistsync with your Spotify account:

plistsync auth spotify

This will start an interactive authentication flow:

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

  2. Log in with your Spotify credentials

  3. Grant plistsync the requested permissions

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

Authentication Previewยถ

 plistsync auth spotify Usage: plistsync auth spotify [OPTIONS] Use your Spotify account to authenticate with the Spotify API. This will open a browser window to log in to Spotify 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 server is   โ”‚ โ”‚used).                                    โ”‚ โ”‚--helpShow this message and exit.โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
 plistsync auth spotify Usage: plistsync auth spotify [OPTIONS] Use your Spotify account to authenticate with the Spotify API. This will open a browser window to log in to Spotify 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 server is   โ”‚ โ”‚used).                                    โ”‚ โ”‚--helpShow this message and exit.โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

Verificationยถ

Test that everything is working by getting your user data:

from plistsync.services.spotify.api import SpotifyApi
print(SpotifyApi().user.me())

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