AI / Rhys

A personal atlas of listening

Songs
for Self

7,582 available songs arranged across musical time, geography, and a zoomable map of musical neighborhoods. The archive preserves 151 unavailable playlist positions separately.

Analyze your playlist

What does your music look like?

Paste any public Spotify playlist for a quick preview—or copy every track from Spotify Desktop for the complete atlas. CSV and account-data imports work without an account connection.

A public link gives an immediate preview. For the complete playlist today, copy its tracks from Spotify Desktop and paste them here.

Why can Spotify show a public playlist when this app cannot?

Spotify's own player uses first-party services. Its official third-party API now limits playlist-item access to playlists the signed-in person owns or collaborates on, and development apps only work for the owner and allowlisted testers. The public page exposes only a short preview, not a reliable complete export.

Spotify's playlist-items rules

CSV and Spotify account-data files stay in this browser and are never uploaded. The finished lightweight analysis is saved locally so a reload can resume it; Clear playlist removes it.

CSV template

CSV supports common Track, Artist, Release Date, Genre, Spotify ID, Country, Latitude, and Longitude columns. You can also choose the playlist JSON from Spotify's official account-data download.

Request or download Spotify account data

Your playlist atlas will appear here.

Paste a playlist link, copy its tracks from Spotify Desktop, or choose a file.

Real enriched playlist data

A listening life, in musical time.

Every available track is placed in time. Classical works sit near the composer's active period instead of the modern recording date.

Loading the musical timeline…

Genre stays pinnedSwipe through time →

Genre family
1200140016001800190020002026

Classical

469 classified

Experimental

112 classified

Country

308 classified

Electronic

917 classified

Modern Folk

543 classified

Hip-hop

810 classified

Jazz

420 classified

Pop

846 classified

R&B, Soul & Blues

593 classified

Rock

1,805 classified

World

592 classified

Traditional Folk

167 classified

Other

0 classified

Documentation

Sources, methods & privacy

The atlas stays simple up top. The evidence, assumptions, and limits live here for anyone who wants to inspect what is behind a point.

Sources & licenses

Playlist identity comes from the public Songs for Self playlist. Dates, work identities, artist genres, and origins use source-addressable records from MusicBrainz and Wikidata. Album thumbnails come from the Cover Art Archive.

Genre-space coordinates are extracted from a commit-pinned public mirror of the December 2023 Every Noise at Once public map. This project republishes factual labels and coordinates—not source HTML or audio previews. Current artist memberships are a separately labeled bridge and never replace the pinned geometry.

Methods & limitations

All 7,582 available tracks receive explicit genre, musical-year, and artist-origin placements. Exact catalog evidence is preferred; album, artist, or editorial propagation is labeled with method and confidence. Classical pieces use composition-era estimates where a modern recording date would hide the work's historical moment.

A top-level genre is a useful editorial summary, not an objective fact. Artist birthplace or formation place is not the same thing as where a recording was made. Family-centroid genre-space fallbacks are named estimates, not measured audio similarity. Downloadable CSV fields preserve those distinctions.

Visitor privacy

CSV analysis runs in your browser. The selected file is read locally, matched against static lookup files, and is not uploaded to a Songs for Self server. The enriched download is generated as a local browser file.

Spotify import uses explicit authorization through browser-based PKCE and only the two playlist-read scopes. The access token stays in memory while owned or collaborative playlist pages are read, then is discarded. Imported rows use the same local enrichment path; we require separate consent before any server-side storage or public sharing.

Machine-readable provenance is in the V3 dataset; model and migration details are versioned with each release.