How do I run a Plug-in script in Picard?

Simple question. Perhaps I’m stupid, but I fail to understand how to activate/run a plug-in script that has been downloaded into Picard. This is as far as I get, but then what…?

Just tick the box, but you may have to reload a release for the plugin to do anything with it.

2 Likes

It really depends on the plugin, but most do something automatically. E.g. the one you selected above would automatically remove “feat.” info from track title tags (which shouldn’t be there abymore anyway)

Some plugins add scripting functions, cover art providers or integrate into the context menu. Have a look at the plugins description.

If there is a specific plugin you don’t know how to use or whether it does what you want just ask here.

2 Likes

Well, as can be seen from the above picture, I ticked the plugin, but nothing happened. All files with “feat” remains unaffected. How do I tell the plugin which files to process?

As I said above, that particular plugin works automatically. I think it probably just doesn’t do what you expect.

It processes the data loaded from MusicBrainz and removes “feat. SOMETHING” from track titles after the data has been loaded from MusicBrainz (that means it changes the metadata on the right pane). That plugin is mostly obsolete, as according to the guidelines “feat.” shouldn’t be part of the track title anymore.

So the question for you: What did you actually want to achieve? Maybe there is some other plugin, setting or scripting which will do what you want.

[quote=“outsidecontext, post:5, topic:11137, full:true”]
As I said above, that particular plugin works automatically. I think it probably just doesn’t do what you expect.[/quote]
I have a feeling you’re right about that… I expected it to also go through the files I dumped on the left panel and cleaned them as well :blush:
I’m glad to hear that ‘feat’ guidelines has been changed, but are providers (such as myself) aware of that? What prevents me from contributing with albums full of feat or ft or with or & or whatever… ?
And (here comes the important bit), if I use the above script, will I then lose the info about contributing artists altogether, or is the script intelligent enough to move those names into place (meaning; The Artist field, separated by semicolon or forward slash) ?

No, sorry. Picard is clearly for tagging your files with data from MB and not for just mass updating your local files with local changes. There are other tools for that job.

The same mechanisms that should prevent bad data in general: The guidelines, the voting system, other editors…

That plugin indeed does just remove the “feat. …” from the title and does not move that info elsewhere. If MB would still keep the feat. info in the titles that would actually be a really nice improvement to the plugin. But since we have artist credits now and don’t keep feat. in the titles anymore I doubt anybody will spent time on this :smiley:

I made a slight edit to the plugin your referencing too which moves the (featuring…) to the artists tag. However i admit i haven’t made it versatile enough to detect different variations of the word featuring.

PLUGIN_NAME = ‘Feat. Artists in Artists’
PLUGIN_AUTHOR = ‘voiceinsideyou, Lukas Lalinsky - edit by jwr’
PLUGIN_DESCRIPTION = ‘Moves feat. artists from track and release titles into artists.’
PLUGIN_VERSION = “0.1”
PLUGIN_API_VERSIONS = [“0.9.0”, “0.10”, “0.15”]

from picard.metadata import register_album_metadata_processor, register_track_metadata_processor
import re

def move_album_featartists(tagger, metadata, release):
match = re.match(r"([\s\S]+) (feat.([\s\S]+) Remix)“, metadata[“album”])
if match:
metadata[“album”] = match.group(1)
metadata[“albumartist”] += " feat.%s” % match.group(2)
metadata[“albumartistsort”] += " feat.%s" % match.group(2)

def move_track_featartists(tagger, metadata, release, track):
match = re.match(r"([\s\S]+) (feat.([\s\S]+))“, metadata[“title”])
if match:
metadata[“title”] = match.group(1)
metadata[“artist”] += " feat.%s” % match.group(2)
metadata[“artistsort”] += " feat.%s" % match.group(2)

register_album_metadata_processor(move_album_featartists)
register_track_metadata_processor(move_track_featartists)

But I’ve actually instead wrote a plugin (should covert to script really) that overwrites the Artist tag with information from the Artists tag, which MB updates with all the artists of the track, delimited by ; which is really useful.