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
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.
Desktop
The original, full-featured app: library, playback, artwork, batch downloads, ZIP export. Electron + React, for macOS, Windows, and Linux.
full experienceCLI
A lightweight, interactive terminal client. No Electron, no curl, no HTTP headers, just ilovemusic download and answer the prompts.
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 SLAWatch 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.
a visual demonstration of the real download flow, not a live download
Not twelve features. Five things, done properly.
Get it
One URL at a time from Spotify, SoundCloud, or Bandcamp. Spotify downloads at 320kbps via spotdl.
Keep it organized
Artwork and metadata are embedded and tagged automatically, so your library looks right without manual cleanup.
Know your tracks
BPM detection on every download. Key detection too, from real audio analysis, when the source is Spotify.
Work in batches
Queue up more than one track in the desktop app and export the finished set as a ZIP.
Listen before you keep it
Preview audio right inside the desktop app before a track lands in your library.
Bring your own Spotify
Spotify access uses your own Developer App credentials (BYOK), encrypted at rest. Never a shared platform login.
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.
Three ways in. Same engine underneath.
For the full visual experience.
Library, playback, artwork, batch downloads, ZIP export. No packaged installer yet; build it from source.
Build from source →# 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
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.
npm install -g @ilovemusic/cli
ilovemusic create-api-key
ilovemusic download
For developers building their own client.
Self-hosted at api.madebyripo.sbs. No uptime SLA, so check /health before depending on it.
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": "..."}'
The fastest way to actually download something.
Ready in under a minute, no packaged installer required.
Install the CLI
One npm command. Needs Node.js 20 or newer, nothing else.
Create a key
Self-serve, rate-limited to 3 per IP per day. Saved locally, no account needed.
Download
Pick a source, paste a URL. The finished file lands in ~/Downloads/ILoveMusic/.
npm install -g @ilovemusic/cli
ilovemusic create-api-key
ilovemusic download
Wherever you already work.
macOS
Desktop: build from source (npm run build:mac) · CLI: npm, Node.js 20+
Windows
Desktop: build from source (npm run build:win) · CLI: npm, Node.js 20+
Linux
Desktop: build from source (npm run build:linux) · CLI: npm, Node.js 20+
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.
Need the details?
Installation, the CLI walkthrough, the full API reference, BYOK setup, and known limitations all live in the docs.
Read the documentation →Built in public.
Read the code, open an issue, fork it, build on it. MIT licensed.
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.
Where it's going.
Nothing on the right side is committed or scheduled. It's the direction, not a promise.
Questions worth answering upfront.
@ilovemusic/cli. npm install -g @ilovemusic/cli, then ilovemusic create-api-key and ilovemusic download.~/Downloads/ILoveMusic/, named artist - title.mp3 from the file's own ID3 tags. The desktop app keeps its own local library.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.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 ↗