lyrics lyrics lyrics

a small open workflow for organizing your favorite lyrics and songs.

the habit this comes from

I find a piece of lyric that is beautiful, I share it using the Share Spotify Lyrics feature. To enhance this whole experience and have an organized collection of all the lyrics I love, this is a workflow that comes handy!

All you need is a Spotify Developer Key, and a WhatsApp group where you will be sharing your lyric card. Whenever the time is for exporting, click on the 3 dots-more-export chat-include media.

what a lyric card looks like a lyric screenshot paired with its Spotify link
image + Spotify link, sent as one message

how it flows

  1. read the export

    WhatsApp's chat export (.txt) gets parsed line by line, stitching multi-line messages back together so an image and the link sent right after it are recognised as one entry.

    scan stepread the export
  2. pick a date range

    A start date, an end date, or just "up to today". Anything sent outside the window can be cleared out once you're happy with what's been kept.

    date range steppick a date range
  3. ask spotify what it is

    Each track link is looked up through Spotify's API for its title, artist, album and genre. Genre actually lives on the artist, not the track, so that's fetched separately and can be corrected by hand before anything gets filed.

    metadata review stepask spotify what it is
  4. sort into a vault

    Each song becomes its own note inside a genre folder, with the lyric screenshot embedded alongside it. Artist, album and genre all get their own notes too, so nothing sits alone.

    organize stepsort into a vault
  5. The same structure is written out as plain JSON, one file per genre, artist and album, in case a browser-based version of this ever gets built.

    json mirror step

what comes out the other end

Because each note links to its artist, album and genre by name, opening the result as an Obsidian vault turns it into a small constellation, songs by the same artist or from the same album drift toward each other on their own.

the graph view, once a few songs are in Obsidian's graph view showing song notes clustered by shared artist and album
songs, artists and albums, drifting into their own clusters
LyricsVault/ Genres/ Indie Folk.md Indie Folk/ Motion Sickness - Phoebe Bridgers.md attachments/IMG-20260831-WA0008.jpg Artists/ Phoebe Bridgers.md Albums/ Stranger in the Alps.md LyricsVaultData/ songs.json artists/Phoebe Bridgers.json albums/Stranger in the Alps.json

The same relationships are written into songs.json too, so anything built on top later doesn't have to re-figure out which songs belong together.

it's yours if you want it

Runs entirely on your own machine, keys and paths stay in a local .env file, nothing about your chat leaves it except the track lookups to Spotify.

get the code