Sort your Spotify playlists by tempo, energy, danceability, and more. Pick a playlist, click a column to sort, and save the new order back to Spotify.
Live at sortyourmusic.playlistmachinery.com
| Attribute | Description |
|---|---|
| BPM | Tempo in beats per minute |
| Energy | Overall intensity (0–100) |
| Danceability | How suitable for dancing (0–100) |
| Loudness | Average volume in dB |
| Valence | Musical positivity / mood (0–100) |
| Length | Track duration |
| Acousticness | How acoustic the track is (0–100) |
| Popularity | Spotify popularity score (0–100) |
| Artist Separation | Maximizes spacing between same-artist tracks |
| Shuffle | Random order |
A BPM filter lets you narrow results to a specific tempo range, with an option to include doubled BPM values.
There are two versions of the app in this repo:
web/— The original version (~2012). jQuery, Bootstrap 3, everything inline in one file. Seeweb/README.md.web2/— Modern rewrite (2026). Vanilla ES modules, modular file structure, no framework. Seeweb2/README.md.
Create an app at developer.spotify.com/dashboard with the following settings:
- Redirect URI: must match
SPOTIFY_REDIRECT_URIinconfig.js - Scopes used:
playlist-read-private,playlist-modify-private,playlist-modify-public
Authentication uses the Authorization Code + PKCE flow (no client secret needed).
Each version has its own deploy script:
cd web && ./deploy # rsyncs to production server
cd web2 && ./deploy # rsyncs to production server