Started with an audio scrobbling endpoint, ended up creating a database of all of my music.
Ran everything through MusicBrainz Picard. Then used Mp3tag to clean up the results and create a CSV file (which I had to manually clean up, still, before I could import it into MySQL/MariaDB).
The interesting bit is that while mpdscribble submissions contain a MusicBrainz track ID—if there is one, hence my decision to use Picard—alongside artist and album information, it’s not actually that easy to retrieve _consistent_ release (“album”) information—there’s often different versions, with different (bonus) tracks or cover art, etc.—from MusicBrainz’s API.
Having my own database, with only the versions I own, should make these lookups a whole lot easier, although it does mean it’ll occasionally need updated.