3 ms·
Wow. This brings back memories. At uni in the early 2000's I hacked up a geeky "last.fm" inspired music stat service. The idea was to be able to reliably track
by corford 9y ago
Wow. This brings back memories. At uni in the early 2000's I hacked up a geeky "last.fm" inspired music stat service. The idea was to be able to reliably track music being played without needing a plugin for winamp/foobar2000/other media player and without needing the mp3 file to have meta data.
I lightly modified a version of the Filemon driver from Sysinternals and wrote a little C program that used the driver to monitor for mp3s being played and then grab the perceptual audio hash of the file using trm.exe from Musicbrainz. It then sent the resulting fingerprint off to my website (written in glorious PHP3 no less!) and you could login with an account to see stats on the music you'd been listening to (done with meta data pulled from Musicbrainz).
Surprisingly, it worked reasonably well ...though very sure if I looked at the code now I'd run away screaming.
Really cool to see they're still going strong after all these years!
- Freso 9y agoFWIW, you may be interested in ListenBrainz[1], an open alternative to Last.FM. We're just about to launch the beta which should be the milestone for when we'll promise to keep submitted listens around Forever™. :) [1]: https://listenbrainz.org/ https://listenbrainz.org/
- mafro 9y agoGreat work! Could you comment on the difference between your offering with ListenBrainz and LibreFM?
- Freso 9y agoLibre.FM sets out to be a ~1:1 (open) "clone" of Last.FM (or least the AudioScrobbler part of Last.FM), while ListenBrainz aims to improve on Last.FM/AudioScrobbler. E.g., the AudioScrobbler protocol only allows for a given subset of metadata items to be submitted, while ListenBrainz's native API allows you to submit basically all the data you have on the file. Compare http://www.last.fm/api/show/track.scrobble http://www.last.fm/api/show/track.scrobble 's 7 item specific metadata fields (artist, track, album, trackNumber, mbid, albumArtist, duration) to https://listenbrainz.readthedocs.io/en/latest/dev/json.html#submission-json https://listenbrainz.readthedocs.io/en/latest/dev/json.html#... - as ListenBrainz is part of the MetaBrainz "umbrella", one of our own main highlights is that we can now actually submit all MBIDs associated with a file, not just the Recording MBID (ie., Artist MBID(s), Release MBID, Release Group MBID, Track MBID, Work MBID(s), possibly Label MBID(s), etc., etc.), but also stuff like language, performers, AcoustIDs, ... Also, ListenBrainz is linked up with MessyBrainz[1], which should work as a buffer to have even listens submitted without MusicBrainz identifiers be able to eventually get linked up to the MusicBrainz database. [1] https://messybrainz.org/ https://messybrainz.org/
- distances 9y agoHah, I did my own stat service too, inspired in early 2000's by AudioScrobbler and Last.fm before they joined forces. I was disappointed by the completeness and variety of statistics they offered, so the only option was to create my own. My solution was to fill in full metadata for all my tracks, though, a pretty big task in itself that I also had to half-automate to achieve. I did consider how to release the stats service for others, too, but realized the number of people with impeccable metadata would be way too low. My system is actually still running in the background, listening for MPRIS D-Bus track change events and writing them to a simple text file, occasionally flushing the changes from the file to a database for the stats display service -- written also with PHP like most web interfaces of the time.