Skip to content
MadManJohnSmithPublic

About

Your entire music library in maximum quality and under your control: import, migrate and download your catalog from Qobuz, Tidal, Spotify, Deezer, SoundCloud and Apple Music — FLAC Hi-Res, synced lyrics, pro metadata. / Toda tu música, en máxima calidad y bajo tu control.

Topics

Resources

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

Syncify

Your entire music library. Maximum quality. Under your control.

Connect Qobuz, Tidal, Spotify, Deezer, SoundCloud and Apple Music. Import your library, download it in the best quality available, and keep a perfectly organized local library of real files, ready for Symfonium, Plexamp, or any player you love.

English · Español

⬇ Download the latest release · Build from source · Documentation

Release CI Tauri v2 Rust Core Vue 3 TailwindCSS SQLite

Windows installer & portable · Linux AppImage, DEB & tarball


See it in action

Syncify dashboard — library overview, per-service sources and download statistics

Library — your entire catalog in one table Word-synced lyrics with the built-in player
Your whole catalog, unified Synced lyrics, saved as .lrc sidecars
Downloads — queue with threads and retries Six services connected during onboarding
A download engine you control One login per service, everything stays in sync

Why Syncify?

Streaming services rent you your music. If you leave — or a service loses a license, or a track gets delisted — your library goes with it. Syncify flips that: it turns "your" catalog into your catalog.

  • Leave any service without leaving your music behind. Import your favorites, albums, artists and playlists — plus purchases and listening history where the provider exposes them — then migrate to another service, or download it and own it outright. Coverage is not identical on every provider; the import-parity matrix has the row-by-row truth.
  • Own real files, not licenses. Downloads land as properly tagged FLAC (up to Hi-Res 24-bit/192 kHz) or MP3, verified against what the provider promised.
  • One library, every service. One import folds every service you connect into a single deduplicated library that knows when two services carry the same song. Starring a track inside Syncify is a local marker: your accounts are only written to by the migration tool, not by the library view.

What can you do with it?

  • Import your library from Qobuz, Tidal, Spotify, Deezer, SoundCloud and Apple Music — tracks, albums, artists, playlists. It is not the same depth everywhere: SoundCloud's public API exposes no playlist or history endpoints, Deezer exposes no listening history, and Apple's importer reads the favorites library rather than your history. The parity matrix is the exact reference.
  • Migrate between services: pick a source, pick a destination, review the matches, transfer. Syncify matches on ISRC first, then title and artist, and transfers what it matches as favorites on the destination account. It does not rebuild your playlists over there yet.
  • Download with a quality cascade: the engine always targets the best tier a track is offered in, steps down to the next one when it isn't, and verifies every file it writes.
  • Get professional-grade metadata automatically: multi-value artists, collaborations, compilations handled correctly, countries, BPM, musical key and energy — from MusicBrainz, AcoustID and Last.fm.
  • Synced lyrics as .lrc sidecars, resolved through a 16-strategy cascade across 10 providers.
  • High-resolution covers (including animated ones) saved next to your music, organized in artist/album folders under ~/Music/Syncify.
  • Keep it healthy: duplicate detection and merge, catalog identity audits, integrity checks and a repair pipeline with full audit history.
  • Smart playlists with rule-based filters, built on your own library.

How it works

  1. Connect an account. The app opens a secure login flow per service (browser-based OAuth/session capture) and stores your credentials encrypted on your machine.
  2. Import. A unified Rust engine walks the service API with pagination, resolves every track's canonical identity (ISRC, provider IDs), enriches it, and persists it transactionally, with retry, into your local SQLite library.
  3. Download. Native pipelines handle each provider's delivery format — Qobuz hands out direct FLAC URLs, Tidal delivers segmented streams that the pipeline assembles — then write real FLAC/MP3 files with the metadata, covers and lyrics embedded, and verify what landed on disk matches what was promised.
  4. Enjoy anywhere. The result is a plain folder tree with sidecar files — no proprietary database lock-in. Point Symfonium, Plexamp, Roon or any player at it and it just works.

Under the hood: a Tauri 2 desktop app (Rust core + Vue 3 UI) with a typed IPC layer, a multi-threaded download/repair engine, and a local schema hardened across 83 SQL migrations. Service logins run through small audited Python bridges (Playwright, Mutagen, AcoustID).

How it comes together

Each card below is a live diagram — click one to open the interactive version, where you can hover, pan and zoom.

From account to music

From account to music — what Syncify actually does for you

What happens when you download a song

What a download does — from your service to your disk, step by step

How Syncify takes care of your library

Your library, cared for — sync, order and recovery on its own

Under the hood

Under the hood — how the pieces fit (for the curious)

English diagrams: from account to music · what a download does · your library, cared for · under the hood

Supported services

Favorites Albums/Artists Playlists History Migration target
Qobuz ✅ ✅ ✅ ✅ ✅
Tidal ✅ ✅ ✅ ✅ ✅
Spotify ✅ ✅ ✅ ✅ ✅
Deezer ✅ ✅ ✅ — ⁽¹⁾ ✅
SoundCloud ✅ ✅ ⁽²⁾ — ⁽¹⁾ — ⁽¹⁾ ✅
Apple Music ✅ ⁽³⁾ ✅ ⁽³⁾ ✅ — ✅

⁽¹⁾ Not exposed by the provider's public API — Syncify warns instead of pretending. ⁽²⁾ Derived from each like's publisher metadata; the API has no favorites-albums endpoint. ⁽³⁾ Apple Music imports through its own ISRC-faithful importer (storefront configurable); the unified-engine path is documented in the parity matrix.

The full, honest per-phase matrix lives in docs/MATRIZ_PARIDAD_IMPORTACION.md.

Installation

Grab the latest build from the Releases page:

Platform Files
Windows Syncify_*_x64-setup.exe (installer) · Syncify-Windows-Portable.zip
Linux *.AppImage · *.deb · Syncify-Linux-x86_64.tar.gz (raw binary + bridges)

Then:

  1. Install and launch Syncify: ffmpeg, ffprobe and fpcalc (Chromaprint) ship inside every package, and so does a private Python runtime with the service bridges already installed — there is nothing else to download, install or configure.
  2. Run the first-run wizard: connect your accounts, pick your music folder, done. Credentials are encrypted and stored in Syncify's own SQLite database, inside the app profile folder. The encryption key lives in your OS keyring when one is available, and falls back to a .crypto_key file (mode 0600, same profile folder) when it is not.

Building from source? See src-tauri/binaries/README.md for how the bundled binaries are provided to local production builds.

FAQ

Does my library survive uninstalling Syncify?

Yes. Downloads are plain FLAC/MP3 files in normal folders, with covers and .lrc lyrics as sidecars. No proprietary database holds them together, so Symfonium, Plexamp, Roon or any player reads them directly.

Where do my service credentials live?

Encrypted inside Syncify's own SQLite database, in the app profile folder on your machine. The encryption key is kept in your operating system's keyring when one is available; where it is not (headless Linux, no Secret Service), the key falls back to a .crypto_key file with 0600 permissions in that same profile folder. Each login runs through your browser, and no credential is ever written to a plain config file.

What quality can I expect?

The engine targets the best tier each service offers (FLAC up to Hi-Res 24-bit/192 kHz) and falls back to lower tiers per track. Every file is verified against what the provider promised before it counts as done.

Is there a macOS version?

Not yet. Windows (installer and portable) and Linux (AppImage, DEB, tarball) are the supported platforms today.

Building from source

Requirements: Rust (stable), Node.js 20+, Python 3.11+, and ffmpeg, flac and fpcalc on your PATH. On Linux you also need the WebKit2GTK/GTK dev packages (libwebkit2gtk-4.1-dev, libgtk-3-dev, libayatana-appindicator3-dev, librsvg2-dev).

git clone https://github.com/MadManJohnSmith/Syncify.git
cd Syncify

# Tauri CLI (repo root) + frontend dependencies
npm install
cd ui && npm ci && cd ..

# Python bridges (service logins, metadata, fingerprinting)
python3 -m venv .venv
source .venv/bin/activate
pip install -r scripts/requirements.txt
playwright install chromium

# Run in development (with hot UI reload)
npm run dev

# Production build (installer for your OS)
npm run build

Documentation

Contributing

Contributions are welcome: bugs, UI improvements, new lyrics or metadata providers, more services, docs. Fork the repo, create a focused branch, and open a PR against main — the integration branch CI runs on and releases are cut from. CONTRIBUTING.md has the exact check commands, the paths CI ignores, and how to keep the docs in step with the code.

Found a bug? Open an issue with your OS/version, steps to reproduce, and relevant logs — never personal credentials or tokens.

License

This repository does not currently grant a license for use, copying, modification or redistribution. All rights are reserved by their holders. An explicit license will be defined and versioned before any public distribution.


Sincroniza · Descarga · Organiza — Versión en español

About

Your entire music library in maximum quality and under your control: import, migrate and download your catalog from Qobuz, Tidal, Spotify, Deezer, SoundCloud and Apple Music — FLAC Hi-Res, synced lyrics, pro metadata. / Toda tu música, en máxima calidad y bajo tu control.

Topics

Resources

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages