How Does the Auto-mapping work?


So I’ve been listening to some music via Spotify today and the listens go into LB automatically; and many of the tracks are being automatically mapped.

I’ve been listening to the Alkaline Trio “acoustic” album Damnesia which features acoustic verisons of previously released tracks. As you can see Spotify doesn’t append the titles with (Damnesia version) or (acoustic) or anything like that and LB is mapping these to the original album versions - not the Damnesia versions.

I know exactly how to re-map, but i’m wondering how LB is storing this data.

Is it simply trying to automatically map via [artist] - [track title] or is it using something like the unique Spotify ID?

I just wanna check as when i re-link these listens to the correct version it doesn’t then change the original studio versions to point at the damnesia version instead.



When a listen comes in, LB attempts to work out which track in our mapping it is by using artist and track title, which is the only thing that is absolutely required for a submitted listen. It turns out that this lookup into our MBID mapping is rather quite powerful and does the right thing in most cases.

What we do store with your listen is what we call an MSID – a MessyBrainz ID that represents an artist name, track name pair that was submitted to us (loads of details omitted here). But if the submitted core data is off by one character, it gets another MSID.

When the mapper maps a track for the first time, it notes the MSID on your given track and the matched MBID and writes a row to another table that isn’t our Listens. Your Listen is not modified at all. Should a listen come in that we’ve seen before (it has a known MSID and its matched MBID) we take no action – the required row is already present and we go on with life.

Other IDs (e.g. Spotify) don’t really help us all that much – not everyone listens to Spotify – there are many other sources of music that people listen to that flows into LB. We need to work with the lowest common denominator to make our stuff work. And that is artist name and recording name.


Is there a way users can train the MBID mapper?Like if I manually link a listen, then the change will be delivered to all users, I hope that makes sense. Kind of like a learning model.

1 Like

It two users make the same link, then we make the link available to all other users. :slight_smile:


Thank-you for the clear explanation :smiley: