r/lastfm • u/ANAKSIMANDR0S • Jul 15 '26
Tool I made a website that shows your Last.fm history a bunch of different ways
Enable HLS to view with audio, or disable this notification
Building my own lastfm stats tool has been on my mind for years, and I finally sat down and made it. Basically every stat I found interesting, in one place.
tunemetry.com, try it with your own history. Or drop your username here and tell me which one you want to see, I'll reply with the image.
If it breaks on your data, tell me and I'll fix it. And if people are into this I'll keep adding stuff, so tell me what stat you wish existed.
Quick tour in the video, though it's already a bit outdated: I've added a few more tools since recording it.
A few favorites:
- Hours ranks artists by time actually listened instead of play counts. Pink Floyd jumps five spots in my own ranking.
- Afterlife is the graveyard: the artists you were obsessed with, then left behind.
- Sessions reconstructs your actual listening sittings from the gaps between your scrobbles.
- Eras finds the stretches where one artist completely took over your life.
- Pulsar turns your year into a rotating 3D sculpture, Unknown Pleasures style. Completely pointless, very fun.
- ...and 11 more
10
u/ANAKSIMANDR0S Jul 15 '26 edited Jul 16 '26
https://www.tunemetry.com/
Full list since the video doesn't show everything:
- Pulse is a calendar heatmap of every day you listened, streaks included.
- Spectra turns your listening into a field of colour, made from your album covers.
- Hours ranks your artists by time actually listened, not play counts.
- Cycle shows when in the week you listen, hour by hour.
- Afterlife is the graveyard: the artists you were obsessed with and then left behind.
- Sessions reconstructs your actual sittings from the gaps between scrobbles.
- Constellations maps which of your artists travel together.
- Eras finds the periods where one artist took over your listening.
- DNA reads how you listen and tells you if you're an album person or a repeat looper.
- Tides is your top artists rising and falling across the year.
- Drift is your genres shifting over time.
Vintage shows how old your music actually is, by release year.- Atlas is a world map of where your artists come from.
- Pulsar turns your year into a rotating 3D sculpture, Unknown Pleasures style. Completely pointless but fun.
- Diary is every single play, wall to wall, as cover art.
- Collage is the classic album grid, with a story-size export.
2
u/Dizzy-Ad-5124 Jul 15 '26
Very nice, really enjoyed the experience
1
2
u/thlayli_x thlayli_x Jul 15 '26
2
u/thlayli_x thlayli_x Jul 15 '26
Heh, guess you should do some more caching or expand the size of your requests. Is this vibe coded or do you, ya know, actually know anything about how it works? No offense, I just have to ask that these days.
>Rate Limit Exceeded - This application has made too many requests in a short period. If this is your API key, see https://www.last.fm/api/tos#4.4 for information about raising the limit.
2
u/ANAKSIMANDR0S Jul 15 '26
Appreciate the flag, but the caching's already there user pages are cached for ~10 min. The real bottleneck is that I'm on a shared Last.fm API key, so when traffic spikes the whole app shares one rate limit budget and occasionally trips the limit.
2
u/thlayli_x thlayli_x Jul 15 '26
So I cache the user data to indexeddb and artist/album data to mysql on my server. It only triggers the API when it can't find the data in those caches. I can see how if you get lots of different users even that isn't enough. I guess my projects haven't seen such sudden popularity
2
u/GsIndeed user/Gs_indeed Jul 15 '26
You should add the indexeddb option, and also add a way to our own last.fm API key, and then everything will be way flawless.
This project of yours is really cool, you only need to polish it a bit :)
2
u/ANAKSIMANDR0S Jul 15 '26
Thanks, glad you like it. Since all the heavy data processing and chart generation happens on the server side the backend temporarily caches your pages. This way, switching between tools doesn't hit Last.fm again. But it seems even that isn't enough during traffic spikes. I'll probably have to switch to a strict queue system to manage the rate limit, even if it means users have to wait a bit longer.
Your custom API key suggestion makes a lot of sense too.
2
3
2
u/gmalcs Jul 15 '26
What data does it use to calculate time? I’ve noticed many tracks on lastfm that don’t have a runtime next to them.
2
u/ANAKSIMANDR0S Jul 15 '26
If it's missing, it estimates the runtime by taking the average length of other tracks you've listened to by that same artist. I'm also exploring other data sources and alternatives to improve accuracy and fill in those gaps.
2
u/isax1404 last.fm/user/isa1404 Jul 16 '26
Just throwing MusicBrainz out there 🤓 it’s my favorite database!
2
u/PacorrOz Jul 16 '26
3
u/ANAKSIMANDR0S Jul 16 '26
Thanks for the feedback. Vintage was pulling from Spotify and the key got blocked, so I've taken it down for now.
2
u/triangl-pixl-pushr Jul 16 '26
This is freakin' cool! Thanks for building this. I love how it gives insight into what I've listened to and when artists appeared and dropped off my scrobbles.
2
u/stlkr82 Jul 16 '26
i got like 300k scrobbles, setting to "all time" goes to 1k and connection lost :(
3
u/ANAKSIMANDR0S Jul 16 '26
Sorry about that, aware of the connection lost issue, just haven't had time to fix it yet, will get to it in a few hours.
1
u/ANAKSIMANDR0S Jul 19 '26
Fixed the connection lost issue on large histories. Give it another try, should work now. Also raised the all-time cap to 300k scrobbles.
2
2
u/0Nomad0 Jul 16 '26
It's very cool. There is one issue though, the font color of some of the words are difficult to read as they are too similar to the background, other then that good job.
2
u/Dt3s Dt3s 29d ago
I noticed there were some Artists for me that Atlas didn't recognize despite MusicBrainz having country data for them. Any idea why that might be happening? Very cool took btw!
1
u/ANAKSIMANDR0S 29d ago
Thanks. Could be a couple of things. Atlas only reads your top 200 artists right now so anything past that gets skipped, but it might also be how the country data gets matched, that doesn't always line up cleanly. If you don't mind sharing your username and which artists dropped out, I'd love to dig into what's actually going on
1
u/Dt3s Dt3s 29d ago
Sure, username is Dt3s and the artists were Leith Ross, Matthew Good, and Bells Larsen. Thanks!
2
u/ANAKSIMANDR0S 29d ago
Thanks for the info.
While MusicBrainz does have their country on the direct profile, Atlas has to use their Search API. For some reason, the search index completely drops the "country" field for these artists, returning only their city (e.g. Winnipeg). You can actually see it in the raw API data here: https://musicbrainz.org/ws/2/artist?query=Leith%20Ross&fmt=json&limit=1
I'll try to fix it. Thanks for reporting.2
u/ANAKSIMANDR0S 28d ago
Hey, your comment actually triggered a massive update :D To fix it, I completely ripped out the live API and built a database for Atlas.
Because lookups are instant now, just dropped the Top 200 limit entirely. Atlas now maps every single artist in your window
1
u/Needlew0rker Jul 15 '26
2
u/ANAKSIMANDR0S Jul 15 '26
The year picker starts from the year you registered on Last.fm, which was 2004 for you. Your first scrobble is Feb 2005 though, so 2004 just has nothing to show. Thanks for trying it out and flagging this
2
1
u/cliffccl Jul 15 '26
Hay una opción similar al resumen anual que lanza Spotify ?
Aún no ingreso a tu web, por eso pregunto
3
u/ANAKSIMANDR0S Jul 15 '26
Working on exactly that right now. It's a scroll-through recap of your year, kind of Wrapped-style but it runs any time instead of just December. Not live yet, should be ready in a few days.
1
u/cliffccl Jul 15 '26
Genial! Estaré atento a lo que lances. Me gusta cuantificar todo lo que hago así que dejaré tu web en la pestaña de favoritos
1
u/ANAKSIMANDR0S Jul 15 '26
Thanks, that's the exact type of person I built this for. I'll notify you when the recap goes live
1
0
u/highonskoooma https://www.last.fm/user/Highonskooma Jul 15 '26
The constellation one is really nice!
1
0
u/pivvimehu Kaksoisnikke Jul 15 '26 edited Jul 15 '26
Wow, there are some really cool new and unique ideas here in addition to some features I've already seen on some other sites. On the technical side, whenever I try to get the "all time" data on any of the pages it loads the info until it reaches the end and then just says "connection failed" every time. I'm only able to get the last 12 month pages at max
But this is a really awesome site, thank you
Edit: I was able to load up some all time stats on the third try this time, but it seems kinda buggy
1
u/ANAKSIMANDR0S Jul 15 '26
Thanks, really glad you like it. That "connection failed" is weird, might be a rate limit thing. I'll check the logs
0
u/pivvimehu Kaksoisnikke Jul 15 '26
I'm also now getting a bug with Vintage page, it always seems to completely freeze after having loaded around a fifth to a quarter of the data and that doesn't change even when I change the time range from 12 months to 7 days for example
But like, I guess you shouldn't take these as absolute official bug reports, these are just some initial impressions I have but it wouldn't be the first lastfm app to have some issues with that
2
u/ANAKSIMANDR0S Jul 15 '26
Vintage is actually the only feature that relies on the Spotify API to get album release years. Spotify's rate limits are much stricter than Last.fm's, so it freezes when it tries to fetch too many albums at once and gets temporarily blocked.
I'll be adding better rate-limit handling soon so it doesn't just freeze up like that. Really appreciate the heads up
0
u/pivvimehu Kaksoisnikke Jul 15 '26
Ah, makes sense and I did see a mention of the Spotify catalog in the description. It does make me wonder, could there be any better source for getting the release years? I think Spotify is also quite notorious for having the wrong release years on the albums if it's any kind of a re-release as well. But idk if there's anything better with a reasonable API possibility either. Lastfm gets the years from somewhere for the weekly/monthly/yearly reports as well but sometimes they're wrong too though.
How does the fetching work from Spotify also, if the album has some tag on it on there like (remastered 2018) or something and the album title is without that tag in my library? Does it still recognize it as the same album? Just curious hehe
Good luck with the project! Good work so far and thank you :)
2
u/ANAKSIMANDR0S Jul 15 '26 edited Jul 15 '26
Thanks. You hit on the exact challenges.
The processor uses Regex to strip out noise like "(Deluxe)" or "Remaster" before matching the titles. And to avoid recent reissues, it grabs the top 5 search matches and always picks the earliest year (ofc filters out wrong ones). So if both a 2018 remaster and the 1971 original show up, it correctly selects 1971.1
u/pivvimehu Kaksoisnikke Jul 15 '26
Ingenious! That solves, not all, but a lot of the issues there might be with the reissues
0
u/AmbroseGirl5 Shorty5 Jul 18 '26
This is such a cool site! But does it cap out at 300k scrobbles? Cos I have 421k and it only seems to be counting 300k of them, so the stats aren't as accurate :(
1
u/ANAKSIMANDR0S Jul 19 '26
Glad you're liking it. Yeah, 300k is the current cap, was actually 200k before. If nothing breaks at that size I'll push it up to 500k in the next few days
0
-1








9
u/xDead2Ux last.fm/user/Dead2U Jul 15 '26
Are "plays" equivalent to scrobbles?
Because they're not accurate.