Spotify Playlist Radio

Spotify discontinued its Radio feature. This tool rebuilds it using Last.fm's similarity data to find tracks that match any playlist's sound.

Share

Connecting to Spotify...

Spotify Playlist Radio: Rebuilding Spotify's Discontinued Feature

Spotify quietly removed its dedicated Radio feature from the desktop app in 2022, leaving users without a direct tool to extend a playlist's sound into new territory. The Radio feature used to generate a continuous stream of recommended tracks seeded from a single song, artist, or playlist. After its removal, the closest alternative Spotify offers is the "Enhance" button, which inserts suggested tracks into an existing playlist inline but does not create a standalone radio-style playlist from scratch.

This tool rebuilds that experience. It takes any playlist you own, samples a selection of tracks as seeds, finds similar music using Last.fm's track.getSimilar API, and creates a new playlist of recommendations on your account. The source playlist is never modified.

How Last.fm's Similarity Engine Works

Last.fm's similarity scores are based on collaborative filtering across 700+ billion scrobbles. When two tracks are frequently listened to in sequence or in overlapping listening sessions by many independent users, Last.fm records a similarity relationship between them. The match score returned by track.getSimilar runs from 0 to 1. A score of 0.9 means the two tracks appear together in a very high proportion of similar listening sessions. A score of 0.1 means a weaker but still statistically significant relationship.

This approach differs from audio fingerprinting tools that compare waveforms or spectral features. Last.fm's method reflects actual human listening behavior. Two tracks can sound acoustically different but score highly similar if they consistently appear in the same playlists and sessions across millions of users. This makes Last.fm similarity particularly good for genre-adjacent discovery: finding tracks that listeners treat as related even when they are not sonically identical.

Seed Sampling: Why 10 Random Tracks Beat Using the Full Playlist

This tool defaults to sampling 10 random tracks from your playlist to use as seeds. Using the full playlist would generate more candidates, but the results would skew toward the most popular artists in the playlist. A 50-track playlist with 15 Drake songs would produce recommendations dominated by Drake-adjacent artists.

A random sample of 10 ensures broader coverage. Each seed contributes equally to the candidate pool. A 50-track playlist with diverse genres sampled at 10 tracks will surface recommendations that span the whole genre range rather than converging on its dominant sound. For more focused results, lower the sample size. For wider variety, raise it toward 20.

The tool also calls Last.fm's artist.getSimilar endpoint for each unique artist in the sample. This adds a second layer of discovery: tracks from artists who are similar to your seed artists, even if those specific tracks were not directly similar to the seed tracks. The combined pool gives a richer set of candidates before the Spotify search step.

Stay Close vs. Branch Out: Match Score Thresholds

The match style setting controls the minimum similarity score a track needs to pass into the candidate pool. "Stay Close" uses a threshold of 0.5. Only tracks with strong similarity relationships to your seeds make it through. The resulting playlist stays tightly connected to your source playlist's sound. This is the right choice when you know exactly what you want and want more of it.

"Branch Out" drops the threshold to 0.1. Weaker similarity relationships pass through, and the candidate pool becomes much larger. The resulting playlist may include tracks that are only loosely connected to your source material. Use Branch Out when you want discovery over familiarity, or when your source playlist is niche enough that Stay Close produces too few results.

For obscure playlists, Start with Branch Out. Last.fm has limited similarity data for tracks with fewer scrobbles, so many track.getSimilar calls on niche music return few or no results. The tool handles this gracefully by skipping tracks with no similar-track data and falling back to the artist.getSimilar pool.

Session Tracking: No Repeated Recommendations

Click "More Recommendations" after generating a playlist and the tool runs the same analysis again. It tracks every track it has already suggested in a session-scoped reference. Re-runs skip any track that appeared in a previous run. You get genuinely fresh recommendations each time, not the same list reshuffled.

This is stored in memory for the current browser session only. Refresh the page and the tracking resets. The source playlist is also excluded from every run: the tool always checks each candidate against the original playlist before adding it to the results.

Adding to an Existing Playlist

Instead of creating a new playlist, you can append recommendations to an existing one. Select "Existing Playlist" in the target settings and pick any playlist from your library. The tool calls addItemsToPlaylist directly with the resolved track URIs. The existing tracks in the target playlist are not removed. Tracks are appended to the end.

This is useful for maintaining a running discovery playlist. Each time you run Playlist Radio, add the new results to the same target playlist rather than creating a new one. Over several sessions, you build up a long playlist of similar music with genuine variety, since session tracking prevents repeats within a browsing session.

Authentication and Privacy

This tool uses Spotify's PKCE authorization flow. No credentials are sent to any server. Your access token stays in your browser's sessionStorage and clears when you close the tab. The tool requests playlist-read-private, playlist-read-collaborative, playlist-modify-public, and playlist-modify-private scopes. These are the minimum permissions needed to read your playlists and create or update a target playlist.

Other Playlist Tools

To analyze the BPM distribution, key breakdown, and top artists in any of your playlists, use the Playlist Analyzer. To build a brand-new playlist from scratch using mood tags rather than an existing playlist as a seed, try the Mood Playlist Generator, which pulls crowd-sourced track data from Last.fm's tag system to build mood-matched sets of any size.

From the Blog

View All