Skip to main content

sssync

A scriptable playlist sync tool for Qobuz, Spotify, and Jellyfin.

Features

  • Sync playlists from Spotify or Qobuz into Qobuz or Jellyfin (Spotify is read-only, so it's a source only)
  • ISRC-based track matching (exact) with fuzzy title/artist/duration fallback
  • Incremental, append-only syncs — existing playlist contents are never touched
  • Favorites sync between services that support them
  • Simple TOML config, streamrip-style CLI

Installation

Requires Python 3.11+.

Install as an isolated tool (recommended):

uv tool install sssync
# or
pipx install sssync

Try it without installing anything:

uvx sssync playlists qobuz

Or with pip in a virtualenv:

pip install sssync

Configuration

sssync config

Creates and opens ~/.config/sssync/config.toml:

[qobuz]
# Session token: log into https://play.qobuz.com → DevTools →
# Application → Cookies → qobuz.com → user_auth_token
token = ""

[spotify]
client_id = ""
client_secret = ""
redirect_uri = "http://127.0.0.1:8888/callback"

[jellyfin]
url = "http://your-server/jellyfin"
api_key = ""
# or: api_key_path = "~/jellyfin_api_key.txt"

Usage

List playlists on a source:

sssync playlists qobuz
sssync playlists jellyfin

Sync a playlist (accepts a name, id, or URL):

sssync sync spotify qobuz "House Mix"
sssync sync qobuz jellyfin 69103992
sssync sync qobuz jellyfin 69103992 "House Mix (DJ Set)"

Sync everything:

sssync sync spotify qobuz --all

Preview without writing:

sssync sync qobuz jellyfin 69103992 --dry-run

Sync favorites:

sssync favorites spotify qobuz

How matching works

  1. ISRC — if both services expose the track's ISRC, it's an exact match.
  2. Fuzzy — normalized title/artist similarity (rapidfuzz) with a duration tolerance. Thresholds are tunable in the [sync] section of the config.

Unmatched tracks are reported, never silently dropped.

Development

git clone https://github.com/uprcse/sssync.git
cd sssync
pip install -e ".[dev]"
pytest tests/
ruff check sssync tests

CI runs pytest + ruff on Python 3.11–3.13.

License

MIT — see LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sssync-0.2.0.tar.gz (17.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sssync-0.2.0-py3-none-any.whl (16.0 kB view details)

Uploaded Python 3

File details

Details for the file sssync-0.2.0.tar.gz.

File metadata

  • Download URL: sssync-0.2.0.tar.gz
  • Upload date:
  • Size: 17.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for sssync-0.2.0.tar.gz
Algorithm Hash digest
SHA256 be1a7e53fbf2a7e09bc626353ae1c89dd6c7f4a534846d2087b02a7eb3e43dae
MD5 3db4af24d44ed937374276408c6b43eb
BLAKE2b-256 e8283a4103a540b64b40075f418913ae6f9a7d2c093e4d5d020bb2b57471f990

See more details on using hashes here.

Provenance

The following attestation bundles were made for sssync-0.2.0.tar.gz:

Publisher: release.yml on uprcse/sssync

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sssync-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: sssync-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 16.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for sssync-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e44df29efcd5b7fd73066c22555126f44cdba062de35ac446bfbab34c617160c
MD5 63a653fb5d3c24b7f62afea5eedc8e25
BLAKE2b-256 dd1579e8b8337835d34251c69de47833dc53274f65c1f51ee6db67bcd5cb4660

See more details on using hashes here.

Provenance

The following attestation bundles were made for sssync-0.2.0-py3-none-any.whl:

Publisher: release.yml on uprcse/sssync

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.2.2

2 files

0.2.1

2 files

This release

0.2.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page