stardance has been extended another month! the new deadline is october 31 :)

You are browsing as a guest. Sign up (or log in) to start making projects!

Vrael

  • 1 Devlogs
  • 2 Total hours

“Without music, life would be a mistake”

Open comments for this post

1h 33m 55s logged

Hey guys, how it’s going? I’m working on this super cool project, in my opinion, called Vrael.

The idea comes from a need of mine: knowing which songs I listened to every year. I know, you could just take f. e. your spotify data, download it, extract every single record, and there you are.

But what I want to achieve is far more interesting. I want to create something that does it live: every time a song plays for at least 75% of its length (maybe I’m gonna fix this value, I still don’t have a fixed percentage), Vrael adds it to that year’s playlist, automatically. No exports, no waiting days for Spotify to send you a zip. At the end of the year you already have “Lifetime 2026” sitting in your library, with every song that actually mattered to you, not the ones you skipped after 10 seconds.

Sounds easy, right? Not really. Spotify’s API has no “this song was 75% played” event. So Vrael has to poll what you’re listening to every few seconds and do the math itself. And just checking progress / duration isn’t enough: if you skip ahead to the end of a song, you’d “listen” to it in two polls. So Vrael only counts the progress that could really have happened in the time that passed. If you skip ahead, pause, or restart the song, it doesn’t count.

Then there are the limits: a Spotify playlist holds at most 10,000 songs, so I’m doing one playlist per year from the start (and if a year fills one up, it splits into 2026-1, 2026-2…). You’ll also be able to import your old Extended Streaming History, so past years aren’t lost. On top of that I’ll build a small web app (installable as a PWA) with stats like last.fm: top artists, charts, history, a listening heatmap. I must say that last.fm was something that really inspired me, so I have to give some credit also to them.

What I did so far: the stack is Python + FastAPI + SQLite. I set up the project, the .env.example and the config module, which fails right away if your Spotify credentials are missing instead of breaking later. Next up: the database layer, where every play and every qualifying song gets saved.

See you in the next devlog!

0
0
10

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…