What is best strategy to deal with situations where you never have MusicBrainz ids

Hello all,

I am quite new to both MusicBrainz and ListenBrainz, so please bear with me…

As reported in a different post, I am working on a program that supports tracking Listens on ListenBrainz.

It retrieves its data from certain hardware players, of which none, as far as i know, do provide MusicBrainz ids. I believe that’s the reason why the links on my ListenBrainz user profile page are not clickable.

It would be easy to let the program use MusicBrainz’ REST server to try to locate them, but I assume MusicBrainz server will hate me for all the unneeded traffic (many requests for the same artist/albums over and over again). I want my program to run on Raspberry pi devices, so persisting MusicBrainz ids on the filesystem will not be feasible (it will destroy the pi’s SD card on the long run). Perhaps installing the MB server locally would be a solution, but that seems to be a bit overkill to me.

The solution I’m thinking of is to create a separate web-service for those users that are as obsessed about registering listens as I am :smile: and have access to a database server (for example on a (cloud) server), or users that don’t care about damaging their SD cards. It will store the searched artist/albums and the corresponding MusicBrainz ids in a database and provide a simple web UI to manually fix ambiguity (artists that have the same name, etc.).

Any thought on this? Or did I miss a much simpler solution? :slight_smile:

1 Like

MessyBrainz is a project dedicated to this problem. We accept listens from users without MBIDs and use Algorithms in MessyBrainz to associate MBIDs to the listens. Actually we plan to get this work done this GSoC. You can read on how we plan to achieve it here. And some of the problems we face are written here.


As I understand @kartikeyaSh you shouldn’t actually do this on your side. Whatever you do to query the web service to automatically get the recording ID might be error prone and you will try to solve the same issues ListenBrainz already tries to solve with MessyBrainz.

But you could start by providing as much info as possible to ListenBrainz. I could imagine that submitting the AcoudtId in additional_metadata could be highly useful to determine the recording. But that’s probably not possible for you to calculate, since you likely only have the metadata not the audio, right?


Unfortunately, that is indeed the case. Most consumer audiostreamers do, at least the ones that I have tried, do AFAIK not provide access to the actually played data.

I was not aware of the MessyBrainz (love the name :smile: ) project, I’ll follow it with a lot of interest and not start work on my own hacky solution.

1 Like

You are about to reinvent Beets web plugin / Beets Web UI. :sunglasses: