Spotify Slayer

Spotify is for finding music.
This is for playing it out.

Browse your playlists, tag every track by energy and busyness, build a set with a visual arc, get the actual files, and export to rekordbox or Traktor.

Free and open source ยท Runs on your machine ยท No account, no signup, no hosted version

A DJ set open in Spotify Slayer: five tracks with the energy arc bar above them, per-track genre tags, in and out points, and energy and busyness ratings.

A set in progress โ€” the arc bar shows its energy shape, sized by each track's active region.

The problem

Spotify is a great place to find records and a terrible place to prep a set. Tracks you add get buried in Liked Songs. There's no way to rate one by energy, mark where you'd bring it in, see the shape of an hour, or do anything about the fact that you can't play a stream at a gig.

Spotify Slayer is a second interface onto your own Spotify account, built for the part of the job that happens after you find the record.

What it does

Build

Sets with a shape

Drag-and-drop ordering, in/out points per track, and program vs. on-air duration. The arc bar renders your set's energy as a strip, each block sized by how long that track actually plays.

Tag

Energy and busyness

Rate every track 1โ€“5 on two axes, plus freeform labels like "opener" or "floor filler." Ratings live in your library and follow the track into every set. Genres arrive automatically from MusicBrainz.

Acquire

Get the actual files

Search Soulseek from any track row and pull FLAC or MP3, sorted by quality โ€” with a YouTube-sourced fallback for what Soulseek doesn't have. Downloads are tagged and filed automatically.

Export

Onto the USB stick

rekordbox XML with your in/out points as memory cues, m3u8 for Traktor, or a plain numbered folder you can drag straight onto a stick and browse on the player.

Running it

There is no hosted version, and that's deliberate. The half of this app that matters most โ€” finding files, tagging them, filing them, building the folder you carry to a gig โ€” needs a real disk and real binaries on your own machine. A cloud instance couldn't do any of it. So you run it yourself, with your own Spotify credentials, and nothing you do here passes through anyone else's server.

  1. Make a Spotify app

    Create one at developer.spotify.com and add http://127.0.0.1:3000/api/auth/callback/spotify as a redirect URI. It takes about a minute, needs no review or approval, and you are the only user of it. (Use 127.0.0.1, not localhost โ€” Spotify rejects the latter.)

  2. Clone and configure

    # grab it
    git clone https://github.com/audiodestrukt/spotify-slayer
    cd spotify-slayer && npm install
    
    # .env
    SPOTIFY_CLIENT_ID=your_client_id
    SPOTIFY_CLIENT_SECRET=your_client_secret
    NEXTAUTH_URL=http://127.0.0.1:3000
    NEXTAUTH_SECRET=any_random_string
    MUSIC_DIR=/home/you/Music/dj-library
  3. Run it

    npm run dev   # then open http://127.0.0.1:3000

    Set building and tagging work immediately. File acquisition needs a couple of extra pieces โ€” see below.

What you need

Honest notes