How to backup all tags, and then restore?

My song library is too big to backup to an external drive (yes, even if they're cheap), so I'm looking for a way to backup just the tags in case it goes down one day. I'm looking for a method that can export and import these tags to files by matching a string - something like:

  1. export: retrieve tags from "A:\Audio\New Order\Substance\24. 1963.mp3"
  2. import: find a file matching "A:\Audio\New Order\Substance\24. 1963.mp3" and overwrite the tags.

I'm talking about 100,000+ songs, so I really gotta nail it (otherwise something's may gonna go wrong and screw all the tags up).

See the function File>Export.
Use an existing example export and adapt it to your needs.

Take care that you include the absolute filename as a field for a record. This will enable you to import the exact data again.
One record is one (long) line of text in a plain text file, terminated by a "carriage return and a line feed" character, vulgo "enter".
So take care that none of your fields already contains such a character.
Also select a unique field separator or take care that if the field separator may also be part of the field data that it is masked properly, e.g. with ".

The import can be triggered with either the function Convert>Textfile - tag
or an action of the type "Import text file" (Import Text File – Mp3tag Documentation)

First of all, thank you very much for taking the time to respond so soon.

I've got it working, mostly. My exporting .mte is this:

But one thing I haven't figured out is how to choose the separator. ; is not suitable because I've got fields that have this as part of the data, so I'm wondering if I can use something terribly obscure like the character "␟" which was created to separate data, and if so where is the menu to change that separator.

Also, how is it matching the tags with the files? After exporting, I removed all the tags on the files, switched the order, and then imported, and it worked great! So I'm assuming it's picking them up by the filename? And does the folder name need to be the same too?

You can use any character as long as it is unique or you have enclosed the field data in " during export.
E.g. you could use $char(9), the tab character to separate the fields.

There is no internal function that can be set by a menu function to determine the separator, you enter (and choose) it yourself.

If you deal with a complete library then it is probably advisable to get the fully qualified filename. Otherwise you run into trouble if you have tracks on a compilation and on the original album...
To get the correct data, it must have a unique identifier - that is the rule.

You mean the character is defined like this:

It keeps exporting a corrupted file with Asian characters. I've tried so many edits, checked all quotes and all, but I can't get it to work. Not sure where my mistake lies in...

If you have given an accurate copy of the export script then I would say that the start is invalid:
instead of
;filename(csv,utf-16)
it should read:
$filename(csv,utf-16)

and the last line
;loopend()
should be
$loopend()

The statement
;loop"(%_filename_ext%)
is also invalid and should read
$loop(%_filename_ext%)
the following
%title%"
then has no opening ".

I do not know what the ; does in front of $loopend() ...

Instead of the \\ you might also want to try the _ (underscore)

Thanks for the fixes, they helped get it right now.

However, and this is interesting, it actually doesn't work by placing just any character I'd like to use as a separator. For example, I tried "_", "x", and some others, and in all these cases, the export file came out trashed and unusable... but, if I leave it as ";", it works, and it actually doesn't pick up information on the data at all, even if it has ";" inside. I tried

With the band "Kairon; IRSE!", and song titles with ";" inside of them, and they were all placed correctly on their respective rows. Importing it back worked great too.

I can only hope this will work as fine with the entire collection, and I'm confident it will. Thank you very much for the help provided!!!

edit: oh, one last thing - is there any way to automate the exporting with a script, perhaps through cmd?

Hey guys it's me again. I just wanted to ask again if there is any way this could be done through CMD. I would really love for the export to be done automatically through a batch script along with my general backup script.

One technique I used to use when TB hard drives were beyond my budget, was to use dbPowerAmp converter with the grabber function set to 0 (this can be scripted although I always used the GUI).

This gives you a mirror image of your collection but without the music, just the tags! This also aids in rebuilding your collection. Just use a folder compare program to see what's missing and check that your filenames and folder structure are correct. Then use Mp3tag (or any method of your choice) to transfer the tag data from the backed up tags to the rebuilt collection.

In the script you could rename the previous backup folder for versioning or delete it at the end of the current backup.

1 Like