How do I change the 2nd "( )" bracket in a title to a "[ ]" bracket?

Suppose the TITLE is Praise the Lord (Da Shine) (feat. Skepta). How do I change it to Praise the Lord (Da Shine) [feat. Skepta]. Also, I need this to happen only if there is a second bracket. Thanks in advance.

see here:

bruh how do you always manage to save the day? thanks a lot

I have searched and every thread I find that asks about changing the second set of parenthesis to brackets you point to this thread but I cannot get either of the first two methods to work and the last one is way too confusing.

I have no understanding of script or script language etc. so this is very Greek to me and all I am capable of doing is copying and pasting things and when I do this the first one results in Daytime Dilemma (Dangers Of Love)(Demo) becoming:

Daytime Dilemma (Dangers Of Love) (Demo [m]

And the second suggestion does absolutely nothing, the title stays the same.

DetlevD's regular expression** works fine here:
$regexp(%TITLE%,'^([^(]+?)\s\(([^(]+?)\)\s\(([^(]+?)\)$','$1 ($2) [$3]')

Please take care that this regular expression expects a space between the first and the second pair of brackets. Your example ...Love)(Demo) would not work.

** I have reformatted his original regular expression to make it easier to see all the necessary characters.

Thank you sir, there is a difference in what you posted here and what is in the other thread. Yours has the spaces between the brackets and that made the difference. I understood what was going on once I read the bottom of your post and I immediately noticed that your expressions was different in that it had spaces.

Like I said, I do not understand scripts or the language but sometimes I can figure out when there is a syntax error even though I don’t understand the whole of what is going on.

I appreciate your help so quick it now works as it should.

Now that this works I have another question, is there a way that I can make this action change the filename at the same time. I tried to see if there was a way to create a second action and make it a group but there is no option for filename.

Currently I filter all titles with “(“ in them and then pick the ones I need to run this action on, run the action and then change the filenames. Is this the only way to do this?

Try %_Filename%.
... but why don't you simply create a new filename with Convert>Tag-Filename or with Format Value for _FILENAME?

The action to replace the brackets only works on files that match the pattern. So there would not really be the need to filter. It is safer, though.
Renaming the files should not hurt.

That did the trick, you’re the champ as usual. Thanks.

Well, if currently the filename matches the one with parentheses then I don’t have to worry about it, and if it doesn’t I am either going to notice it or it will get changed when I convert the tag to filename which I usually do once I have corrected all the TITLE fields.

This is one of the greatest uses of Mp3Tag for me. I load up all the alums/tracks from a given artist in all formats all at once so at a glance I can make sure certain fields like ALBUMARTIST and GENRE are consistent but then I sort by time, then by title so I can quickly see discrepencies. I scan down the TITLE field and up the FILENAME field looking for discrepencies and often make multiple passes until I am satisfied everything is reconciled.

Because I’m not a coder and I have to rely on other to know how to do this in the app, I can give you another solution that can help sometime

An example, I have a full album where every track are like :slight_smile:

01 - Artist - Track (2012 Remaster Album Version).mp3
02 - Artist - Other track (2012 Remaster Album Version).mp3
03 - Artist feat Artist - And it’s also a track (2012 Remaster Album Version).mp3

For this I will use Ant Renamer (I’m not affiliated with it, it’s just a nice tool to mass rename files or folders imho)

I put the file in it, I go to “replace string”, and I will replace “ (2012 Remaster Album Version)” by ““ (by nothing, so basically erase all “ (2012 Remaster Album Version)” occurrence.

After that I will have :

01 - Artist - Track.mp3
02 - Artist - Other track.mp3
03 - Artist feat Artist - And it’s also a track.mp3

And then I will use mp3tag to : file name > tag (track - artist - title)

Not saying it’s better, just that it can help maybe

Could be left out if you use

but modify it to
Format string : %track% - %artist% - %title% (%dummy%)

Oh yes, I just discover the meaning of %dummy% today, it' isn’t written in my logic yet but yes, perfect solution

I will create an action to keep it

Thank you

Oh and in case we have more than one “()” how can we indicate which one to be the one

Like : “Artist - Track (Album version) (feat. other artist) (Remaster).mp3”

To be “Artist - Track (feat. other artist).mp3”