AcousticBrainz Mood-Genre Plugin

I understand this is an experimental plug-in. Is there any way of keeping the Genre tag untouched, while allowing the plugin to add in the Mood tag?

I would imagine that the plugin could be modified to allow a configuration of which tag you’d like to write (like the one), otherwise though, is there a script or a setting that would retain the Genre from the MB DB?

Note: I have many tags to clean up, so I don’t necessarily want to preserve the tag. I just don’t want the plugin to overwrite it.

Also related to Genres and confusing me while trying to figure the above plugin out.
When I compare this release:

Picard shows the Genre as Pop (for all tracks), but looking at the album data there there is a variety of latin, rock, blues, etc… for the various tracks. I am wondering why this may be? Any Genre plugins are disabled, and Picard defaults are left in place (e.g. no folksonomy tags selected)

Apologies if this is covered elsewhere, I have searched as far as I can.


Currently not, this would require the plugin to provide some options for it, yes. But sounds like a good idea to have.

By default Picard does not set any genre tag. You have to enable “Use folksonomy tags as genre”, then it should work.

Thank you for your response.

I tried selecting the ‘Use folksonomy tags as genre’ (under Options - Metadata), with no change.
I also selected ‘Fall back on album’s artists tags if no tags…’ (under submenu of Metadata), again no change.
Other options also tried was the ‘Join multiple tags with - ;’ set and ‘Minimal tag usage at 1%’, again no change.

Regarding the plugin I copied the original zip ( and renamed it, then edited the python script ( to remove the references to genre & genres - clearly this isn’t ideal and presumably will get zapped on next update;

**if k.startswith("genre_") and not v["value"].startswith("not_"):**

** genres.append(v[“value”])**


**metadata["genre"] = genres**


log.debug("%s: Track %s (%s) Parsed response (**genres: %s,** moods: %s)", PLUGIN_NAME, metadata["musicbrainz_recordingid"], metadata["title"], **str(genres),** str(moods))

Why not just split the plug in into 2 parts? One for Genre and one for Mood?

1 Like

I’m looking to merge both and AB Genre tags, but the plugin seems to erase tags from Is there a way to have both?

All the current genre plugins are overwriting the genre data exclusively, so you currently can effectively only have one of the plugins active.

But thinking about it we likely could change all plugins to append the genres. If only a single plug-in or only the Picard internal MusicBrainz tag function is active it would not make a difference, but activating multiple would result in merged tags, what is probably what would be expected.

Only caveat is that the settings to e.g. limit the number of genres would be a bit confusing, because they are separate for Picard MB and each plugin. So if you say you want a maximum of 5 genres for built-in MB genres and 5 with you would potentially get a maximum of 10 genres.

Maybe it would be a good idea to have a single set of options for filtering genres and remove those options from plugins. Then first let Picard run it’s built in genre support, then the plugins and finally apply the filtering on the final list. But this would require some refactoring.


Maybe it could be similar to how cover art is handled? A single set of overarching settings with a list of providers (each should be able to have additional settings though).


The wilidata plugin will merge the list of genre from the metadata and add to this the genre it finds.
It should be possible to merge the results.

1 Like

I like the idea of this plugin, and have been using it.

My only issue is due to the genre it appears to be returning, things like “dan” & “jaz” for example.

These are not really user friendly. Is this how AcousticBrainz identifies these genres? Is there a way (possibly via update to this plugin?) to “translate” these to more suitable, human readable equivalent genres?

(similar question as asked here)