Plugin updates for Picard 2.0

Tags: #<Tag:0x00007fd5e2bf9338> #<Tag:0x00007fd5e2bf8fc8>


A couple of plugins have received important updates for Picard 2.0. Picard 2.0 introduced fundamental changes, which meant all plugins needed to be updated to being compatible for Picard 2.0. Most plugins were, but unfortunately some plugins just got under the wheels. So a few days ago I went looking over all plugins and fix the most pressing issues. Here is a some summary of what changed: cover art 1.4
This one had a stupid bug in the Picard 2 version that caused it to not submit proper API credentials to, thus never returning any data. My fault, sorry. 0.7
Yes, the plugin is back from the dead! This plugin already stopped working for Picard 1 when introduced breaking changes to their API. There was some attempt to update the plugin, but then Picard 2 happened and this got stalled. Anyway, it is back again for Picard 2. It even got a new feature and now optionally allows regular expressions for excluding tags. was removed
Unfortunately this plugin is gone for now and was removed from the plugin list. It also needs updates for Picard 2 and API 2.0, but unless somebody is willing to do these updates and to maintain this plugin (I won’t) it is now officially dead. IMHO this plugins UI and code are too cluttered and overloaded. I’d rather add important functionality from this plugin to the standard plugin. And if for you the standard plugin doesn’t have enough features I’d recommend using the Plugin.

No release
The no release plugin, which allows you to remove any release specific information from a release, needed updates for Picard 2.0. This is now done.

Going forward I want to tackle a few more issues with existing plugins to improve the overall plugin quality. Currently on my list is the “Musixmatch Lyrics”, which blocks the UI while it is loading data, and reviewing the AcousticBrainz and Wikidata plugins, since those where reported to cause crashes and loading issues. For Wikidata there is already work in progress. Also I would like to get the Classical Extras plugin by @MetaTunes into the official plugin page.


I just updated Picard to 2.0.4 and updated most of the plugins, too. However, I can’t install the plugin at all. Nothing happens when I hit the install button. I’ll see if I can get it done manually.

Edit: No luck with manual install from the included .zip file. Even tried switching out the files for the latest online.

Edit again: I had a bunch of stuff left on my computer from the switch between Program Files (x86) and Program Files. So I saved the settings, removed everything, and reinstalled. Then it installed ok. The only one not working now is BPM.

I made a report here:


The BPM plugin does not support Windows. Please see and related issues.


Gotcha, thanks. I’ll vote for those.


Trying to make this work, no luck so far. Installed the plugin, it shows up in plugin tab properly, even the sub-menu is there. However, it doesn’t add the Genre tag to any tested popular releases. When I ticked “Use artists tag” option, I get a following error:
E: 21:49:30,695 C:\Users\furma\AppData\Local\MusicBrainz\Picard\plugins\\lastfm_init_._tags_downloaded:123: Problem processing download tags

Traceback (most recent call last):

File "C:\Users\furma\AppData\Local\MusicBrainz\Picard\plugins\\", line 109, in _tags_downloaded

if not matches_ignored(ignore, name):

File "C:\Users\furma\AppData\Local\MusicBrainz\Picard\plugins\\", line 63, in matches_ignored

if isinstance(pattern, re.Pattern):

AttributeError: module ‘re’ has no attribute ‘Pattern’

Anyone else getting this? I am on Picard 2.0.4. windows version. Plugins: featartistsintitles, lastfm, no_release, release_type, standardise_feat


Sorry for that, I just realized the code is incompatible with anything below Python 3.7, and the Picard Windows version currently ships with Python 3.6. I will provide a fixed version.


Thank you for your work on these. I have been struggling with the genre tag since 2.0 was released, so I am glad that these plugins are being looked into.


The fix was deployed, lastfm plugin version 0.8


@outsidecontext I know you are busy with the plugins you listed and your other work on Picard (which is greatly appreciated, btw!) but I was wondering, could find some time to port the plugin “Smart Title Case” to api v2? It’s pretty much the only important plugin that I use that hasn’t been ported yet. Thanks a lot!


@culinko, please have a look at and see if it works for you. It’s a quick hack, but if it works I’ll clean it up and submit it formally. Thanks.


Great job! The plugin works without any errors and I haven’t been able to find any issues so far.


Thanks for letting me know. I hate to admit it, but I didn’t test it thoroughly here before turning you loose on it. I’ll have to wait until tomorrow to clean it up and submit it. I just got back from an eye examination and I can barely see because of the drops in my eyes.


@rdswift Hi, I just found a bug in the Smart Title Case plugin. I’m not sure if it was already present before you ported it to the v2 api, though. Could you look at it if you get some time, please? Below is the bug description and reproduction steps:

The following tags are affected: artists, ~albumartists
The following are some examples of affected artists: Armin van Buuren, Sharon den Adel, Hayley Williams of Paramore, blink-182

These artists are being changed into stuff such as “<map object at 0x0000000005837E80>”

Here is an example release where such behavior occurs when your load it into Picard:

Here is a screenshot of said release loaded into Picard:

I used the following script to show the albumartists tag: $setmulti(albumartists,%_albumartists%)

Thank you so much for looking at this issue, much appreciated!


Please download the updated file from my repository on GitHub and let me know if this corrects the problem. If so, I’ll submit a pull request to update the master files used by Picard. Thanks.


The issue is now fixed, I re-tested all of the affected tracks that gave me the error before. You are amazing, thank you so much!


Once I had a chance to look at it, the fix was pretty simple (adding 6 characters to a single line of existing code). Nothing amazing in that. :wink: