open source · spotify · soundcloud · bandcamp

Download it once.
Keep it forever.

ILoveMusic pulls tracks from Spotify, SoundCloud, and Bandcamp, tags them properly, and works out the BPM automatically. Desktop app, terminal, or API: pick the one that fits how you work.

macos · apple silicon · v0.2.4 source archive

The Mona Lisa, reimagined wearing a pair of over-ear headphones and looking unimpressed.

ILoveMusic is an open-source tool for downloading, tagging, and organizing music from Spotify, SoundCloud, and Bandcamp. Built for DJs, collectors, and people who like digging through music, not streaming it on shuffle.

01

Desktop

The original, full-featured app: library, playback, artwork, batch downloads, ZIP export. Electron + React, for macOS, Windows, and Linux.

full experience
02

CLI

A lightweight, interactive terminal client. No Electron, no curl, no HTTP headers, just ilovemusic download and answer the prompts.

npm install -g @ilovemusic/cli
03

API

The same engine as a self-hosted job-based HTTP API, for anyone who wants to build their own client on top of it.

self-hosted, no SLA
002 · a visual demonstration

Watch a download happen.

BPM gets detected automatically on every download. Musical key too, from real audio analysis, when the source is Spotify. SoundCloud and Bandcamp fall back to file tags, so key is sometimes blank there.

SPOTIFY BPM 124 F MIN 320KBPS
QUEUED
0%

a visual demonstration of the real download flow, not a live download

003 · what it does

Not twelve features. Five things, done properly.

01

Get it

One URL at a time from Spotify, SoundCloud, or Bandcamp. Spotify downloads at 320kbps via spotdl.

02

Keep it organized

Artwork and metadata are embedded and tagged automatically, so your library looks right without manual cleanup.

03

Know your tracks

BPM detection on every download. Key detection too, from real audio analysis, when the source is Spotify.

04

Work in batches

Queue up more than one track in the desktop app and export the finished set as a ZIP.

05

Listen before you keep it

Preview audio right inside the desktop app before a track lands in your library.

06

Bring your own Spotify

Spotify access uses your own Developer App credentials (BYOK), encrypted at rest. Never a shared platform login.

The Mona Lisa wearing white over-ear headphones, hands raised as if dancing to the music. found on the internet
004 · a short interruption

Music has always been a little obsessive.

People have been sitting with headphones on, replaying the same track, chasing the exact right copy of a song, for as long as there's been recorded music to chase.

ILoveMusic is for that. Not for streaming on shuffle and forgetting, but for the version of listening where you actually want to keep the thing you found.

005 · work your way

Three ways in. Same engine underneath.

A classical painting reimagined with Jesus DJing on a pair of turntables, watched by two apostles. turning water into WAVs
desktop

For the full visual experience.

Library, playback, artwork, batch downloads, ZIP export. No packaged installer yet; build it from source.

Build from source →
terminal
# clone and run locally
git clone git@github.com:riporipo223/iam-ilovemusic.git
cd iam-ilovemusic
npm install
npm install --prefix renderer
npm run dev
terminal

For people who live in the shell.

No curl, no HTTP headers, no job polling. It prompts you and saves the finished file to ~/Downloads/ILoveMusic/. Runs on macOS, Linux, and Windows.

Read the CLI guide →
terminal
npm install -g @ilovemusic/cli

ilovemusic create-api-key
ilovemusic download
api

For developers building their own client.

Self-hosted at api.madebyripo.sbs. No uptime SLA, so check /health before depending on it.

Read the API reference →
bash
curl -X POST https://api.madebyripo.sbs/v1/downloads \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"source": "spotify", "url": "..."}'
006 · quick start

The fastest way to actually download something.

Ready in under a minute, no packaged installer required.

01

Install the CLI

One npm command. Needs Node.js 20 or newer, nothing else.

02

Create a key

Self-serve, rate-limited to 3 per IP per day. Saved locally, no account needed.

03

Download

Pick a source, paste a URL. The finished file lands in ~/Downloads/ILoveMusic/.

terminal
npm install -g @ilovemusic/cli
ilovemusic create-api-key
ilovemusic download
007 · supported platforms

Wherever you already work.

macOS

Desktop: build from source (npm run build:mac) · CLI: npm, Node.js 20+

source available

Windows

Desktop: build from source (npm run build:win) · CLI: npm, Node.js 20+

source available

Linux

Desktop: build from source (npm run build:linux) · CLI: npm, Node.js 20+

source available

Packaged installers aren't published yet. See the Releases page for when they land. The desktop app also needs ffmpeg, aubio, spotdl, and yt-dlp on your machine when running from source.

docs

Need the details?

Installation, the CLI walkthrough, the full API reference, BYOK setup, and known limitations all live in the docs.

Read the documentation →
open source

Built in public.

Read the code, open an issue, fork it, build on it. MIT licensed.

···stars
···forks
MITlicense
View on GitHub
support

Keep the music playing.

Free and open source, built and maintained by one person. There's no funding page yet, so right now the best support is using it, filing real bugs, and sending pull requests.

008 · roadmap

Where it's going.

shippedv0.2.4
Spotify, SoundCloud & Bandcamp downloadsSingle track, 320kbps on Spotify via spotdl
Automatic BPM detectionEvery source, every download
Spotify key detectionReal audio analysis, BYOK credentials
Self-serve API keys & the CLI@ilovemusic/cli on npm
planned ideasunscheduled
Playlist & album downloadsCurrently single-track only, for every source
Rekordbox exportFor DJs already living in Rekordbox
Better waveform visualizationDesktop app
Duplicate detection & better library toolsDesktop app

Nothing on the right side is committed or scheduled. It's the direction, not a promise.

009 · faq

Questions worth answering upfront.

An open-source tool for downloading, tagging, and organizing music from Spotify, SoundCloud, and Bandcamp, available as a desktop app, a terminal client, or an API you can call directly.
The desktop app targets macOS, Windows, and Linux (it's Electron). The CLI runs anywhere Node.js 20+ does. Packaged desktop installers aren't published yet, so building from source is currently the way in on desktop.
Spotify, SoundCloud, and Bandcamp. Single tracks only, no playlists or albums yet; Bandcamp album and artist pages are rejected outright rather than mishandled.
Yes, MIT licensed. The public API is self-hosted by the maintainer with no uptime guarantee, so check the docs' Limitations page before depending on it for anything unattended.
Yes, that's @ilovemusic/cli. npm install -g @ilovemusic/cli, then ilovemusic create-api-key and ilovemusic download.
The CLI saves finished files to ~/Downloads/ILoveMusic/, named artist - title.mp3 from the file's own ID3 tags. The desktop app keeps its own local library.
Yes. Self-serve a key with POST /v1/api-keys (3 per day per IP), then POST /v1/downloads and poll GET /v1/downloads/{job_id}. Full reference in the docs.
Only Spotify downloads get real audio-analysis key detection right now. SoundCloud and Bandcamp fall back to file tags, so key is frequently blank for those two. A known limitation, not a bug.

Keep the
music.

Open source, MIT licensed, and built for people who actually want to keep what they find.

Get ILoveMusic macos · apple silicon · v0.2.4 source View on GitHub ↗ Read the Docs ↗