FREE WINDOWS UTILITY · MIT

Playlist Surgeon

Bulk-clean Spotify playlists you own or collaborate on. Select one artist, several artists, arbitrary tracks, or a saved local blocklist; review the selection; then remove the matches in controlled API batches with a local backup first.

LICENSEMIT
PLATFORMWindows 10/11 x64
AUTHOAuth PKCE · no client secret
DATARules, tokens, backups stay local

The point is maintenance, not novelty.

Many Spotify playlist plugins and managers already exist. Playlist Surgeon is intentionally a small local utility whose job is to keep this specific bulk-cleanup workflow working as Spotify changes its API. The project is expected to track endpoint, field, authentication, scope, quota, and access-rule changes rather than freeze on one integration. If Spotify eventually builds equivalent artist-level and multi-select cleanup directly into its own clients, the gap may no longer need a separate tool.

What it does now.

  • Loads your playlists and editable playlist items through Spotify's current Web API.
  • Groups tracks by every credited artist and shows artist counts.
  • Ctrl/Shift-select multiple artists and select all matching tracks at once.
  • Select or deselect individual tracks in the same cleanup pass.
  • Save artists to a persistent local blocklist and apply the rule to later playlist scans.
  • Search by track, artist, or album before selecting.
  • Create a timestamped JSON backup before destructive removals.
  • Use Spotify playlist snapshot IDs and batches of up to 100 removal items.
  • Respect Spotify rate limits using Retry-After handling.
  • Protect refresh-token state with Windows DPAPI for the current user.

Requirements and one-time setup.

  1. Use Windows 10 or Windows 11 x64. The published build is self-contained; .NET 8 is only required when compiling from source.
  2. Use a Spotify Premium account. Spotify's current Web API documentation requires Premium for Web API use.
  3. Create an app in the Spotify Developer Dashboard and select Web API.
  4. Add the exact redirect URI http://127.0.0.1:5543/callback/. Spotify permits HTTP for explicit loopback IP addresses; do not substitute localhost.
  5. Copy the Spotify Client ID into Playlist Surgeon. Do not enter a Client Secret; the desktop app uses Authorization Code + PKCE.
  6. Click Connect Spotify, approve the playlist scopes, choose a playlist, and review proposed removals before applying them.

Spotify currently exposes playlist items only for playlists you own or collaborate on. For a Spotify-generated mix, first copy it into a playlist you own, then edit that copy.

Build it yourself.

The full source and MIT license are public. From the project folder on Windows:

.\build.ps1

Or publish directly:

dotnet publish .\PlaylistSurgeon.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -o .\dist

The output is dist\PlaylistSurgeon.exe. GitHub Actions also builds the Windows artifact from the same source. Windows build verified in GitHub Actions on September 18, 2026.

Local data boundary.

Playlist Surgeon does not require a Clintware account or backend. Settings, blocklist rules, encrypted OAuth state, and pre-change backups live under:

%LOCALAPPDATA%\Clintware\PlaylistSurgeon

Network traffic is limited to Spotify authentication and Spotify Web API calls required for the playlist operation.

Compatibility target.

The current implementation targets Spotify's 2026 playlist API migration: GET/POST/DELETE/PUT /playlists/{id}/items, the playlist item response field, PKCE for public desktop clients, explicit loopback redirect URIs, and the current playlist access restrictions.

API-change fixes are welcome as issues or pull requests. Compatibility changes should cite the applicable Spotify changelog or reference documentation so the project remains auditable.