Using Last.fm’s API Django Ditto can store records of your listening and produce the usual charts of your top artists, tracks and albums, along with a page per artist, track and album. As with Flickr, Pinboard and Twitter, it can do this for multiple accounts. And, as with the other services, you can see everything from a single day (for example).
I initially thought I might pull in more data, given Last.fm often supplies MusicBrainz IDs, but this was a bit unreliable, especially when it comes to artists sharing the same name. This isn’t Last.fm’s fault, given their data comes solely from the names of tracks played, but I ended up walking away from that idea and doing nothing more than link to MusicBrainz if an ID is present.
Using Django Ditto don’t have to use the templates (which use Bootstrap v4), or the Django views. You could use the app to store copies of your listening (or Tweets, or photos, or bookmarks) and use them however you like on your own Django website. There are some template tags to make it easier to output common things in your own templates.
Thankfully, the Last.fm data was simpler than dealing with Tweets or Flickr photos, the last parts I added, as this has been taking, inevitably, longer than I planned. I hope to add Foursquare/Swarm check-ins next but I might write some different code first, to have a change.
As ever, if you or your organisation need some web stuff making, particularly this kind of thing — APIs, wrangling data, archiving, etc — do email me.