Spotify metadata downloader for lossless music
  • TypeScript 98.9%
  • CSS 0.8%
  • JavaScript 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-24 14:44:47 +02:00
build fix(build): add macOS hardened-runtime entitlements 2026-06-23 21:43:56 +02:00
frontend Keep Vite compatible with electron-vite 2026-08-24 14:29:46 +02:00
src Address PR feedback: marker on atomic temps, stale-validation guard 2026-07-19 01:51:47 +02:00
tests Address PR feedback: marker on atomic temps, stale-validation guard 2026-07-19 01:51:47 +02:00
.gitattributes Harden download pipeline and fix audit findings (stability, UX, perf) 2026-07-19 01:27:11 +02:00
.gitignore Harden download pipeline and fix audit findings (stability, UX, perf) 2026-07-19 01:27:11 +02:00
.oxfmtrc.json Harden download pipeline and fix audit findings (stability, UX, perf) 2026-07-19 01:27:11 +02:00
.oxlintrc.json Redesign frontend to "Hi-Fi Archival" + migrate toolchain to bun/oxlint/oxfmt/tsgo/knip 2026-06-14 00:52:39 +02:00
AGENTS.md Update dependencies 2026-08-24 13:34:25 +02:00
bun.lock Keep Vite compatible with electron-vite 2026-08-24 14:29:46 +02:00
electron-builder.yml Harden download pipeline and fix audit findings (stability, UX, perf) 2026-07-19 01:27:11 +02:00
electron.vite.config.ts Harden download pipeline and fix audit findings (stability, UX, perf) 2026-07-19 01:27:11 +02:00
knip.json Update dependencies 2026-08-24 13:34:25 +02:00
package.json Keep Vite compatible with electron-vite 2026-08-24 14:29:46 +02:00
README.md Update dependencies 2026-08-24 13:34:25 +02:00
tsconfig.json Redesign frontend to "Hi-Fi Archival" + migrate toolchain to bun/oxlint/oxfmt/tsgo/knip 2026-06-14 00:52:39 +02:00
tsconfig.node.json Redesign frontend to "Hi-Fi Archival" + migrate toolchain to bun/oxlint/oxfmt/tsgo/knip 2026-06-14 00:52:39 +02:00
vitest.config.ts Harden download pipeline and fix audit findings (stability, UX, perf) 2026-07-19 01:27:11 +02:00

SpotiFLAC

A desktop application for downloading high-quality audio (FLAC/MP3) from Tidal, Qobuz, and Amazon Music using Spotify metadata.

Credits

This project is based on:

Features

  • Multi-Source Downloads: Tidal, Qobuz, or Amazon Music with automatic source selection
  • Spotify Integration: Use Spotify URLs (tracks, albums, playlists, artists) for metadata
  • High-Quality Audio: Lossless FLAC or high-bitrate MP3
  • Automatic Metadata: Embeds track info, album art, ISRC
  • Cover Art Sources: iTunes, Deezer, MusicBrainz, Spotify (prioritized by quality)
  • Batch Downloads: Queue multiple tracks, albums, or playlists
  • Parallel Downloads: Configurable concurrent downloads
  • Library Tools: Verify and clean up your music library
  • Audio Analysis: Detect upscaled files

Installation

Pre-built Binaries

Download from the Releases page:

  • SpotiFLAC-windows-amd64.exe - Windows 64-bit
  • SpotiFLAC-linux-amd64 - Linux 64-bit

Building from Source

SpotiFLAC is a TypeScript-only Electron app (Electron 42, electron-vite + electron-builder). The former Go/Wails backend has been ported to the Electron main process under src/main/ (providers, audio, persistence via node:sqlite, download manager). ffmpeg/ffprobe are bundled via ffmpeg-static.

Prerequisites:

  • Bun 1.3+ (package manager + script runner; matches the bun.lock and the release workflow)
bun install        # installs root (main process) + frontend (renderer) deps
bun run dev        # run the app with HMR
bun run build      # type-check + build main/preload/renderer into out/
bun run compile    # build without type-checking
bun run dist       # build installers (NSIS / dmg / AppImage) via electron-builder
bun run dist:dir   # unpacked build (no installer) for quick local testing
bun run check      # typecheck + lint + format check + tests
bun run icons      # regenerate electron-builder icons under build/

Dev tooling: bun run typecheck (TypeScript 7), bun run lint (oxlint), bun run format (oxfmt), bun run knip (advisory unused-export report), bun run knip:strict (same report with a non-zero exit code).

Build resources are generated locally by bun run icons. Code signing is configured in electron-builder.yml; set publish.owner/publish.repo and win.publisherName to your signing certificate's CN before publishing.

Usage

  1. Enter a Spotify URL (track, album, playlist, or artist)
  2. Review the metadata
  3. Click download

Disclaimer

For personal use only. Respect copyright laws and streaming platform terms of service.