An open-source (MIT) CLI for scrobbling vinyl records from your terminal (I originally built it because I wanted to do this while already in Claude Code).
It:
- Looks up an album on Discogs (tracklist + durations)
- Lets you pick the correct release in a TUI (unless it’s extremely confident)
- Scrobbles the whole album to Last.fm in one go
- Album scrobbling designed for vinyl (Discogs-first tracklists)
- Interactive release picker (TUI)
- Timestamp modes:
- “started now” (default): you’re putting it on right as you run the command
- “ended now”: prefix the query with
ended
--dry-runto preview without sending anything--allow-ignoredif Last.fm ignores some tracks (e.g. very short interludes)
Requires Python 3.10+.
python -m venv .venv
source .venv/bin/activate
python -m pip install -U pip
python -m pip install -e .Secrets are stored in your user config directory (not in this repo) with permissions set to 0600.
Run scrobble status to see the exact path on your OS.
You can either:
- run the interactive auth commands below, or
- set env vars (
DISCOGS_TOKEN,LASTFM_API_KEY,LASTFM_API_SECRET) for the current shell.
Create a Discogs personal access token (Discogs settings → Developers: https://www.discogs.com/settings/developers), then:
scrobble auth discogsLast.fm requires an API key + secret (annoying, but required to sign requests). Create one (Last.fm API account page: https://www.last.fm/api/account/create), then:
scrobble auth lastfmThis opens a browser to authorize and stores a Last.fm session key locally (no Last.fm password).
scrobble album barney wilen moshiscrobble album ended barney wilen moshiscrobble album miles davis kind of blue --started-at "2026-01-31T19:32:00"
scrobble album ended miles davis kind of blue --ended-at "2026-01-31T20:18:00"scrobble album miles davis kind of blue --dry-runscrobble album barney wilen moshi --allow-ignoredscrobble status- Never paste tokens into
README.md, issues, or commit messages. - Confirm you’re not committing local workspace artifacts:
.context/is ignored via.gitignore. - Double-check before pushing:
git statusshows no secrets addedrg -n "LASTFM_|DISCOGS_|api_key|api_secret|session_key|token=" -S .
MIT. See LICENSE.