DJ Scrobbler is a desktop music app for people who listen to long-form DJ sets on YouTube, but still want precise Last.fm listening history.
It searches for a matching tracklist, follows the currently playing track, and scrobbles individual songs instead of flattening a one-hour mix into a single play.
Website · Releases · Changelog · Architecture · Roadmap
- Search YouTube for DJ sets directly inside the app.
- Save favorite sets and browse listening history across sessions.
- Search 1001Tracklists and set79 in parallel, preferring an exact 1001Tracklists match.
- Show the active tracklist in sync with playback, highlighting the current track.
- Enrich identified tracks with artwork when a provider has none.
- Connect a Last.fm account and scrobble each individual track as it plays.
- Keep the DJ set title as the album in Last.fm, so listening history retains context.
- Resume interrupted sets from where you left off.
- Edit set metadata and browse favorites by DJ, event, or venue.
- Track local listening totals and show upcoming DJ events near a saved location.
- Three visual themes: Neon Night, Signal Teal, Sunset Deck.
Streaming platforms still do a poor job with DJ sets, radio shows, mixes, and other long-form music. A tracklist may exist somewhere on the web, but the player usually treats the whole set as one item.
DJ Scrobbler tries to bridge that gap: an app-owned YouTube player on one side, tracklist communities on the other, and Last.fm as the permanent listening history.
It is also a small love letter to Last.fm, which remains one of the most useful social music platforms ever made.
Installers are published on the GitHub Releases page.
DJ Scrobbler is built for:
- macOS (Apple Silicon and Intel)
- Windows
- Linux
DJ Scrobbler isn't notarized with Apple yet, so a copy downloaded through the browser is blocked by Gatekeeper. Install it with one command instead — no Gatekeeper dialog, no workarounds:
curl -fsSL https://raw.githubusercontent.com/ericcastro/dj-scrobbler/main/install.sh | bashAfter that the app keeps itself up to date: when a new release is available it downloads and installs it in place with one click.
DJ Scrobbler has three plugin layers:
- Source plugins understand playable set URLs (currently YouTube).
- Tracklist plugins find and extract tracklists (currently 1001Tracklists and set79).
- Event plugins find upcoming appearances for tagged DJs (currently Resident Advisor and Shotgun).
When you open a DJ set, the app starts its own YouTube player immediately and searches both tracklist providers. An exact 1001Tracklists match wins; set79 is a best-effort fallback based on title and duration. The app maps the player's current time onto provider cue points, updates Now Playing, records listening stats, and scrobbles to Last.fm once a track has genuinely played long enough.
Tracklists, provider preferences, set metadata, and artwork results are cached locally. User-facing history, favorites, edits, settings, and listening statistics remain local to the machine.
For a deeper breakdown, see ARCHITECTURE.md.
Requirements: Node.js 20+, npm.
npm install # install dependencies
npm start # run the app
npm run dev # run with developer extras enabled
npm test # run the test suiteEnable verbose logging:
DJ_VERBOSE=1 npm startLoad a specific YouTube URL on startup (useful for testing a specific set):
DJ_DEBUG_LOAD_URL=https://www.youtube.com/watch?v=... npm startDJ Scrobbler is in active early development, working toward a stable 1.0 release. Rough edges are expected — particularly around tracklist matching, which depends on third-party sites that can change their structure or behaviour at any time.
MIT