Skip to content

About

Local-first desktop playlist migration between Spotify and YouTube Music with inspectable matching, durable transfers, and safe rollback.

Topics

Resources

Code of conduct

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

SoundShift Logo

SoundShift

Effortless, local-first playlist migration with live visual diffs and 1-click rollback.

Tauri v2 Rust React 19 TypeScript MIT License Zero Telemetry

Features • Quick Start • How It Works • Supported Services • Contributing • Privacy Policy


SoundShift.mp4

What is SoundShift?

SoundShift is a fast, local desktop app that moves your music playlists between Spotify and YouTube Music.

Most playlist transfer tools require paid monthly subscriptions, ask for third-party cloud access, or demand that you manually copy API tokens from browser developer tools. SoundShift takes a different approach: it runs 100% locally on your computer, connects through native login windows, lets you preview every match before anything changes, and lets you undo any transfer with a single click.

Metadata only: SoundShift transfers playlist track metadata (titles, artists, and album info). It never downloads, rips, or streams audio files.


Features

Direct In-App Login

No developer keys, Spotify client secrets, or copied browser headers required. Log in directly through isolated native WebView windows. Credentials stay safely in your operating system's keychain.

Staging Diff & Match Inspector

Never wonder what got transferred. Before a single song is added to your destination playlist, SoundShift displays a full visual diff:

  • Exact Matches (Green): Matched with high confidence using ISRC codes, normalized titles, and duration checks.
  • Ambiguous Matches (Amber): Multiple candidate songs found; pick the right one manually in seconds.
  • Unresolved / Missing (Red): Clearly highlighted so you know exactly which tracks need attention.

1-Click Snapshot Rollback

Accidentally added tracks to the wrong playlist or changed your mind? Every transfer automatically records an immutable snapshot of your playlist before making changes. Restore your original playlist anytime from the Transfer History screen.

Smart Deduplication

Merging into a playlist you already use? SoundShift checks existing songs in the destination by ID, ISRC, and title/artist, skipping tracks that are already there so you do not end up with duplicates.

Concurrent Worker Engine

Powered by Tokio and Rust, transfers run with user-selectable worker concurrency (1 to 8 workers), adaptive rate limiting, exponential backoff, and live real-time progress logs.

100% Private & Local-First

Zero cloud servers. Zero analytics or tracking beacons. Your tokens, snapshots, and playlist history stay entirely inside local SQLite storage on your machine.


Supported Services

Service Read Playlists Create New Playlist Append to Existing Deduplication Auth Method
Spotify Yes Yes Yes Yes Native WebView session
YouTube Music Yes Yes Yes Yes Native WebView session

Note: YouTube Music playlist mutations enforce single-writer consistency to avoid server conflict collisions.


How It Works

[1. Connect Accounts]  -> Native WebView authentication (stored in OS Keychain)
         |
[2. Ingest Playlist]   -> Cached locally in SQLite for instant browsing
         |
[3. Match Pipeline]    -> Multi-pass matching: ISRC -> Normalization -> Duration check
         |
[4. Visual Staging]    -> Review exact and ambiguous matches before transferring
         |
[5. Batch Transfer]    -> Concurrent worker tasks with deduplication and live telemetry
         |
[6. Snapshot Safety]   -> Pre-mutation state saved in SQLite with 1-click rollback

Quick Start

Download

Pre-built installers for Windows, macOS, and Linux will be available on the Releases page.

Build from Source

Prerequisites

  • Node.js (v22.12+; v24 recommended) and npm
  • Rust (stable toolchain, 1.80+)
  • Platform build dependencies (MSVC on Windows, Xcode tools on macOS, WebKitGTK on Linux)

Steps

  1. Clone the repository:

    git clone https://github.com/sizwinz/SoundShift.git
    cd SoundShift
  2. Install dependencies:

    npm install
  3. Run in development mode:

    npm run tauri dev
  4. Build a release installer:

    npm run tauri build

Testing & Quality

SoundShift maintains strict quality gates across both the Rust systems core and React frontend:

# Run backend test suite
cargo test --manifest-path src-tauri/Cargo.toml

# Run backend linter with zero warnings
cargo clippy --manifest-path src-tauri/Cargo.toml -- -D warnings

# Run frontend tests
npm test

# Run frontend build
npm run build

Documentation


License

SoundShift is open source software licensed under the MIT License.

About

Local-first desktop playlist migration between Spotify and YouTube Music with inspectable matching, durable transfers, and safe rollback.

Topics

Resources

Code of conduct

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages