Home

TuneSaver

A desktop app that turns your Spotify playlists into playable Beat Saber libraries, matched, scored, and downloaded automatically.

OVERVIEW

I play Beat Saber and I use Spotify. There was no good way to connect one into the other, so I built it. TuneSaver is an Electron desktop app that authenticates with Spotify through a secretless PKCE OAuth flow, reads your playlists, and searches the BeatSaver community catalogue for the custom map that best matches every track. A custom weighted similarity engine scores title and artist together with title cleaning, repeated-letter collapsing, and a Levenshtein distance fallback to pick the strongest candidate. It then batch-downloads and extracts each map straight into Beat Saber's CustomLevels folder. For full playlists it writes a native .bplist file so your collection appears in-game complete with its original Spotify cover art. A clean IPC architecture keeps the main and renderer processes isolated via a context bridge, with protocol registration for OAuth callbacks and environment-aware config across dev and packaged builds.

HIGHLIGHTS

  • Secretless Spotify PKCE OAuth with protocol-based callback handling
  • Weighted title-and-artist matching engine over the BeatSaver catalogue
  • Title normalisation, repeated-letter collapsing, and Levenshtein scoring fallback
  • Concurrent map downloads with live per-map progress and ZIP extraction
  • Automatic .bplist playlist generation with embedded Spotify cover art
  • Rate-limited batch search that respects the BeatSaver API

ROLE

Desktop app + OAuth integration

TYPE

Desktop application · Windows / macOS

STACK

ElectronReact 19TypeScriptViteSpotify API
PreviousLystMateNext WalletLogger