Possible to transfer tag by tag from one MP3 to another?

I have been on a personal project to upgrade some of my older MP3 music files to higher quality and/or from CBR to VBR.

What I would love to do is to highlight two files with exactly the same song and transfer all the tag values from file1 to file2. (Assuming I could do this, I could come up with other scripts that only transfer a subset of specific tags from file1 and file2.) I have programming experience but I can't figure out whether there are sufficient primitives in the scripting functions to do what I want.

  • Is there anything in scripting to recognize when multiple files are selected and to enumerate and refer to each?
  • Can I "batch up" functions to step through each tag I want to copy from in file1 and to fill in file2?

Any ideas would be really helpful. I've been doing a lot of repetitive manual effort.

You can copy all the tags from one set of files to another set of files in one go.
Precondition: the source files and the target files are equal in number and order.

You select the set of source files and use the copy tag function from the context menu of the file list.
Then you select the set of target files and use the paste tag function from the context menu of the file list.
Tags will be tranferred to the target files. All, I think, even the covers.

There is no real equivalent in scripting. Otherwise you have to export the tag data first and then import it.

Thanks for that!

This will work whenever there is a perfect matchup of tracks. I will start doing that. But sometimes I need to retain some tag values in the "receiving" set of files. Example: some of the new files may have acoustid tags from running Picard. But I didn't insert acoustid tags in the "original" files.

It would be wonderful if I could select subsets of tags for copying. Wouldn't it be nice if there was a spreadsheet-like mode where one could select columns with Ctrl+Click?

If you want to transfer only parts of the data or overwrite only some of the fields, you have to use the export function and import data from text file function.

It could well be that for your particular problem and your special workflow a different design would be better adapted.

Your original question was: "Possible to transfer tag by tag from one MP3 to another". The plain answer is: yes.

Besides the solution Ohrenkino told you (Export) there is a possible Workaround.
You can first copy the tags from the new file (like Acoustic ID) to the old file and then copy the tags from the old file to the new again.
For this you only have to clear the new files from all tags that don't want to preserve,
You can delete the tags you don't want to preserve manually with te extendeted tag-view (ALT-t) or you can create an action of the type "Remove fields except".

Even doing it manually ist not a great effort if you mark all the files and call the extended Tag-view to delete the unwanted tags in one go.

Die angef├╝hrte Vorgehensweise ist falsch - siehe nachfolgende Beitr├Ąge.

I am a little uneasy with the term "tag" in this context.
For me a "tag" is the whole of the metadata attached to a file.
The tag itself can contain various "fields" (or sometimes atoms).

With MP3tag, it is not possible to copy a set of fields but you can only either copy the whole tag (with all its fields) or a single field contents.
So I am not quite sure if your description really leads to success. If I see that correctly, you would have to copy the contents of individual fields to the old file (and not whole tags) and then copy that extended tag to the new file. Otherwise, the source tag would overwrite the target tag in toto.

But perhaps this was all clear and I am only mansplaining.

You are right.
For some incomprehensible reason I had in mind that a not existent tagfield in the source would not delete the existent tag-field in the destination with C&P.

@Goattee
So forget my proposal.

What you can do instead is using the tag-panel (which you can expand with additional tag-fields), mark 2 file-pendants, select the wanted content with the down-arrow at the right of the fields and save.

Thanks to both of you for your suggested steps. These are the things I have already been doing for months. And they certainly have been working. I just wished I could program some solutions for the 3 or 4 most commonly occurring transfer types to reduce the manual effort.

Also I appreciate the clarification of terminology. I am more much more comfortable referring to the term "fields" when describing the individual attributes within a given file's tag.