Picard plugin 'keep' delete not all unwanted tags

I’m using the Picard plugin ‘keep’.
For a series of classical CDs I used “Exact Audio Copy” to rip the files into mp3. This software writes id3 tags like CTDOC, CTDBDISCCONFIDENCE, CTDBTRACKCONFIDENCE or PERFORMER in my mp3 files.

All this EAC-tags are not in the list of my $keep formula.

How can I force $keep() to only keep the tags I list in

I don’t use ID3, but the plugin does not touch tags where the name begins with musicbrainz_ and _ (which are shown as beginning with ~ in the UI). That’s because at least the latter ones are usually not written to files at all.

I think all custom ID3 tags are stored as ~id3:TXX:somethingsomething or ~id3:somethingsomething, which would explain why the EAC tags are not touched by the plugin. It might make sense to special-case this for ID3.


Thanks @Mineo for this explanation.
Do you know the reason for this two exceptions for musicbrainz_ and a leading _ (or ~)?

I do, because I wrote the plugin :slight_smile: Tags beginning with musicbrainz_ are always kept because they store the MusicBrainz IDs of various things and I don’t see a reason not to write them - Picard is the MusicBrainz tagger, after all. The reason for not removing _ / ~ tags is that I wrote the plugin to get rid of metadata in the files that I have no use for (because the software I use can’t display them or I just don’t need the information) and _ / ~ tags are (usually) not written to files, but are very nice to have for storing intermediate values while loading data from MusicBrainz that you want to use during file naming, but don’t want to have in the files themselves. Therefore I see no reason to remove them.


Just to add a small note onto that, Picard uses the MusicBrainz IDs stored in the musicbrainz_* fields to remember what release/recording the should be used for the file. You can certainly delete them across the board by writing a small script in addition to the plugin, but if you do, you’ll need to use either Scan or Lookup for every file every time you load them into Picard.


[quote=“Mineo, post:4, topic:310775”]Therefore I see no reason to remove them.
[/quote]I see your point. But it would be nice too to have the choice/option to remove ALL other tags or at least the one with a leading _

I know that I could copy your plugin and remove the specific code part. But I think, there are other users out there who would like to have more control about the tags inside the music files.

Remove them in the files or in Picard? Because the _* tags were made an exception since they’re never added to the files in the first place. You can see and use them from within Picard, but they disappear as soon as you click Save. No other program is ever able to see %_totalalbumtracks%, for example, and even Picard needs to ask the MusicBrainz database to resend that value every time it loads a file.

1 Like

[quote=“WovenTales, post:7, topic:310775”]Remove them in the files or in Picard[/quote]Remove them in my files.

$keep() should keep all tags I list in this function and remove all other tags - without exception. If there is an option to keep musicbrainz_ tags because the plugin is for MusicBrainz-Picard, why not. But there are also some MB tags I don’t want in my files.

Actually, I have to use 3rd party tools like Mp3tag to get full control over my tags.

hello, sorry for the dumb question but…
where do i setu the tags i want to keep, i installed the plugin but dont know how to use it

The plugin provides a scripting function, so the configuration is done through a tagger script in Options → Options → Scripting. The one I use, for example, is $keep(artist,album,title,albumartist,date,discsubtitle,tracknumber,totaltracks,discnumber,totaldiscs,releasetype,composer).


That example solved my mistake, i was using “%artist%, %album%” to name the tags
thanks for the help