Playlist Cleanup
A read-only Spotify library auditor for duplicates, re-releases, suspiciously similar tracks, stale playlists and ghost tracks.
- Spotify API
- OAuth PKCE
- Entity resolution
- Next.js

Overview
A read-only auditor for a Spotify library. It scans playlist and Liked Songs metadata and turns the mess into findings — exact duplicates, the same recording across different releases, near-duplicates, unplayable “ghost” tracks, artist over-concentration and stale playlists.
Why I built it
My own library was a mess. I knew it was a mess; I just didn't know how much. So I decided to treat it like an audit and see what fell out.
How matching works
Exact duplicates come from repeated track IDs. The same recording appearing on different releases is caught with ISRC. Near-duplicates are found by comparing normalised titles, artists and durations — close enough to be worth flagging, but not close enough to assume.
Confidence & ambiguity
Every finding carries a confidence level and shows the evidence behind it. A 100% exact match and a 61% “these might be the same” are presented differently: the lower the confidence, the more the tool leaves the final call to the person looking at it.
Spotify & API constraints
The audit works from metadata. Spotify deprecated its audio-features endpoints for new apps, so the project doesn't pretend those signals exist. The connection uses read-only scopes, and nothing in the library is changed in V1. The build uses a synthetic sample library and needs no login.