Mood Playlist Generator
Pick a mood, set your track count, and generate a Spotify playlist in seconds using Last.fm's crowd-sourced music data.
Connecting to Spotify...
Mood Playlists: How Music Affects Emotion and How to Build the Perfect Set
A 2020 study published in PLOS ONE found that music selected to match mood states improved emotional outcomes in 65% of participants. Listeners who chose tracks aligned with their current mood reported faster emotional recovery and stronger feelings of social connection compared to those who listened to random content. Mood-matched music is not just a preference thing. It has measurable psychological effects.
This tool builds mood playlists by pulling track data from Last.fm's tag.getTopTracks API. Each tag in Last.fm is crowd-sourced: real listeners apply tags to tracks as they scrobble them. A track tagged "chill" by thousands of users across years of listening is far more reliable than an algorithmic label. Last.fm has logged over 700 billion scrobbles. That is a large signal base for tag quality.
How Last.fm Mood Tags Work
Last.fm tags are user-submitted labels attached to tracks, albums, and artists. When a listener scrobbles a track, they can tag it with any word or phrase. Tags like "chill", "workout", and "lo-fi" have hundreds of thousands of applications across millions of tracks. The tag.getTopTracks endpoint returns the most-tagged tracks for any given tag, ranked by tag weight. High-weight tracks are those that the most listeners independently tagged with that mood.
This is different from how Spotify's own mood playlists work. Spotify uses audio feature analysis (tempo, energy, valence scores) to classify tracks. Last.fm uses direct listener intent. Both approaches have trade-offs, but for niche moods like "rainy day" or "meditation", listener-driven tagging tends to capture cultural context that audio features miss.
Multi-Mood Interleaving: Why Round-Robin Works Better
When you pick two or three mood tags, this tool does not add all tracks from tag A first and then all tracks from tag B. It uses round-robin interleaving: one track from tag A, one from tag B, one from tag C, then repeat. For a 30-track playlist with three tags, you get roughly 10 tracks per mood, alternating throughout the list.
Sequential stacking would create a playlist that feels like three separate playlists stitched together. Round-robin creates a continuous blend. If you pick "chill" and "acoustic", the playlist alternates between them instead of playing 25 chill tracks followed by 25 acoustic ones. The result is a more consistent listening experience across the full runtime.
Artist Diversity Cap: Fixing Algorithmic Over-Representation
Algorithmic playlists have a well-known problem: a few high-popularity artists dominate the results. If you ask for 25 chill tracks from Last.fm, you might get five Norah Jones tracks and four Bon Iver tracks before you reach anything less mainstream. That is not a bad selection, but it is not diverse.
The artist diversity cap solves this. Set it to "Max 2 per artist" and no single artist appears more than twice. Set it to "Max 1 per artist" for a fully spread playlist. The cap applies after deduplication and before the track count limit. You get the requested number of tracks from as wide a range of artists as the tag pool allows.
This feature is especially useful for discovery. A chill playlist capped at one track per artist will surface dozens of artists you have never heard rather than cycling through five familiar names. The exclusion list complements this: if you already know you dislike a specific artist, enter their name and they are filtered before the Spotify search step.
The Mindful Mix Preset: Why Ambient + Meditation + Acoustic
The Mindful Mix preset selects ambient, meditation, and acoustic as a single combined tag set. These three tags overlap significantly in practice. Ambient tracks are often instrumental and textural. Meditation tracks tend to be slow, quiet, and harmonically simple. Acoustic tracks bring natural timbre and minimal production. Together, they form a coherent sound world suited to focus work, yoga, or winding down.
The round-robin interleaving across all three keeps the playlist from staying too static (pure ambient can become monotonous) while the acoustic tracks introduce occasional melody and the meditation tracks maintain low energy. The result is a playlist that shifts texture every few tracks without breaking the mood.
The Regenerate Feature: Fresh Results, Same Settings
After generating a playlist, click "Regenerate with Same Settings" to create a new playlist with different tracks. The tool shuffles the Last.fm pool independently for each tag before re-running the interleave, deduplication, and Spotify search steps. This means the same tags produce a different selection every time you regenerate without re-fetching Last.fm data. The Last.fm fetch only happens once per session per tag set.
This is useful for building multiple thematic playlists for different occasions. One chill playlist for work, another for a weekend afternoon. Same mood category, genuinely different track selection.
Privacy and Authentication
This tool uses Spotify's PKCE authorization flow. No credentials pass through any server. Your access token is stored in your browser's sessionStorage and cleared when you close the tab. The tool requests only the playlist-modify-public and playlist-modify-private scopes needed to create playlists. You can revoke access at any time from your Spotify account apps page.
Last.fm API calls are made directly from your browser to Last.fm's public API. No track data or listening history is stored by this site.
Other Playlist Tools
If you want to go further with your generated playlist, use the Playlist Analyzer to see BPM distribution, key breakdown, and top artists across the set. To extend any playlist with similar tracks based on what is already in it, try Spotify Playlist Radio, which uses Last.fm's track similarity engine to find music that matches an existing playlist's sound.