Track Down

How It Works

Your data stays in your browser

Track Down is built entirely client-side. When you connect Spotify, your browser runs the OAuth PKCE flow directly with Spotify's servers. Your access token never touches our server — it lives in your browser's sessionStorage for the duration of your tab session.

All Spotify API calls (search, playlist read/write, currently-playing) happen directly from your browser using your own token. The only server code is a thin passthrough route for Last.fm, which exists solely to hide our API key.

The matching engine

When you paste tracks or pull from a source, Track Down sends each "Artist — Track" pair to Spotify's search API. It retrieves up to 5 candidates and scores each one using a combination of:

Results are sorted by confidence score from highest to lowest, with scores >70% shown in green.

The scoring formula

Every match is scored 40% artist-name overlap, 40% track-title overlap, and 20% character-level (Levenshtein) similarity — anything above 0.40 is auto-selected, everything else goes to a "Needs Review" list.

Ready to see it run? Convert your Last.fm history or pick any other source to try the matching engine yourself.

Sources

How much can each source actually pull?

Every ceiling below is a real, tested limit from Last.fm's own API or Spotify's own playlist API — not an arbitrary cap Track Down adds on top. Asking for the maximum costs the same one request either way, so every source is set to pull as much as Last.fm allows.

SourceMax per runWhy
Top Tracks, Loved Tracks, Tag, Artist Top Tracks1,000 tracksLast.fm's own ceiling on these endpoints — verified directly against the live API
Recent Scrobbles1,000 tracksPaginated 200 at a time until the selected count is reached; repeat plays are deduplicated by artist+track as they come in, so the final count can be lower than requested
Similar Artists250 artistsLast.fm hard-caps this endpoint server-side regardless of what's requested
Track Radio40 seed songs × up to 200 similar tracks eachThe seed count is a paste-size guard, not an API limit; 200 stays clear of that seed's real similarity-graph ceiling
Saving to SpotifyNo fixed limitSpotify's playlist-add endpoint accepts 100 tracks per request — Track Down batches automatically, so a 1,000-track playlist just takes 10 batches

Last.fm's API terms cap usage at 5 requests per second, averaged over 5 minutes, for the shared key every Track Down user's Last.fm lookups route through. Track Down enforces that server-side and retries automatically if it's ever hit, so a busy moment on the site slows a lookup down rather than failing it.

Toolbox

Half the Toolbox renders shareable images on an HTML5 Canvas element in your browser and downloads them directly — nothing uploaded to any server. The other half (Playlist Sort, Shuffle, Dedupe, Duplicator, Export, Join, Split, and Replace) reads and, where relevant, saves a new playlist built from one you own, using the same client-side token as everything else — no separate permission step. Playlist Replace is the one exception that edits an existing playlist directly instead of creating a new one, and it asks for explicit confirmation before doing so. Try the full Toolbox.

Learn more about scrobbling and discovery

For the ideas behind the Last.fm sources — what scrobbling is, why long-term history matters, and how to use it for discovery beyond one streaming platform — see the Guides section.