Jampal mp3 Library
Tag Backup

Summary of Features
Detailed Features
What's New?
Installation & Getting Started
License & acknowledgements
Project Info

User's Guide
Library Window
Playlist Window
Track Editor Window
Advanced Topics
Regular Expressions
Trouble Shooting
ID3 Frame Descriptions

mp3 Management Scripts
Tag Backup
Tag Update
Text to Speech
Speech XML Format
Speech Phonemes

Peter Bennett

My Other Projects
Peter's Backup
Proxy and debug tool

Get Jampal mp3 library at SourceForge.net. Fast, secure and Free Open Source software downloads
Back Up Your ID3V1 and ID3V2 Tags

If you have a lot of information in your mp3 tags, you want to protect it against accidental deletion. You could back up your mp3 files every time you update the tags but that will take a lot of disks. Using the Tag Backup program you can back up just the tags from your mp3 files and restore them into the files at any time.

Tag Backup can restore tags to your mp3 files even if the mp3 files have been renamed or moved to different directories.

Tag Backup is a command line program, it comes in versions for Windows and Cygwin. For Linux or other systems you should be able to build it from the source using the included make file. The windows and cygwin versions are installed with Jampal into the directory selected for Jampal.

To back up your tags, create a separate directory where your tag backup will be stored on your hard drive. Running the tag backup program will copy all of the tags from your mp3 files into files in that directory.

You can run tag backup again and use the same backup directory to update your backup with files whose tags have changed. Do this on a regular basis to make sure you have backed up the most current data.

Include your tag backup directory in the list of directories backed up with your regular backup process. I recommend Peter's Backup for that. When doing incremental backups with Peter's Backup only tags that have been modified since the last full backup will be backed up.

Tag Backup also includes an option to copy tags from one mp3 to another or to copy them to empty mp3 files of the same name in another directory. You can also strip the tags off a file (use the -cm option, see below).

Files created

When creating a backup, the program creates files with names like tag_486c9c23c09d87c8_000.mp3. The long string of hexadecimal digits identifies a checksum of the actual mp3 sound data. This tag file is a real mp3 file containing a few milliseconds of silence, you can examine it with a tag editing program (e.g. load it into the jampal library). In Windows XP you can display the song titles, artists, etc. in the backup files by selecting options on the title bar.

In the same directory is the file "tagbkup.log". This contains a list of the backup file names and the original files they came from.

Warning: If you have two or more copies of the same song file (not just the same title, but copies of the same mp3 file), tag backup will recognize them as the same. If you are backing up both in the same run, it will name the second one with an _001 in the file name, the third with _002 and so on. If these have different tag data you will not be able to correctly restore them, they would all be restored from the backup file with _000 in the file name. Therefor it is a good idea to look through your backup directories for any files called tag_xxx_001.mp3 and eliminate the duplicates from your library.

If you have two copies of the same song file and you back them up in separate tagbkup runs, the second will overwrite the first, unless you use the "-n" option (see below).

The -c1, -c2, -cm options can be used to combine two mp3 files together, as long as they have the same characteristics, for example:

tagbkup -c2 "song_2.mp3" "combined.mp3" 
tagbkup -cm "song_1.mp3" "combined.mp3" 
tagbkup -cm -c1 "song_2.mp3" "combined.mp3" 
This assumes the combined file gets the tags from song 2. Remember that the ID3V2 tag must be at the front of the file, then the music data, then the ID3V1 tag.

Usage Typing the tagbkup command with no parameters will list out the available options.

Usage: tagbkup [options] filename ... backupdir

Option Explanation
-b Backup tags from mp3 files to the directory that is mentioned in the last parameter. Any tags that are already up to date in that directory are not copied.
-r Restore tags from the directory that is mentioned in the last parameter to the mp3 files listed before it. Any mp3 file whose tag was not backed up to that directory will not be restored.
-c Copy tags from mp3 files to like named mp3 files in backupdir or copy tags from an mp3 file to another mp3 file, where the output mp3 file name is supplied instead of backupdir.
-c1 Append ID3V1 tag from mp3 file to output file.
-c2 Copy ID3V2 tag from mp3 file to output file, overwriting existing file.
-cm Append mp3 data without tags from mp3 file to output file. If the output file does not exist it is created. This can be used to strip tags off a file.
-d dir Copy restored mp3 files to this directory. Since restoring tags always involves copying the whole mp3 file you can save time here. If you have your mp3 files on a cd and want to restore them to the hard drive and restore their tags you can do this at the same time. In this case the file listing of mp3 files would be the contents of the CD and the desired hard drive place would be in the '-d' parameter.
-t Test - no copying of data. This is useful to get a preview of what will be done in a backup or restore
-v Verbose. This lists every input file and whether it was backed up, restored, etc.
-u Report updates done. This lists only the files that were backed up. In cases where the latest data was already in the output directory they are not listed.
-n No overwriting of backup files, append log file. If this option is selected and the tag data is already backed up in the output directory an additional copy of it is created. This is useful if you are creating a first backup with several runs of tagbkup. If you are creating a second backup of updated tags it will start creating files with _001, _002 and these files are never restored when running a restore.
-f fn Input filename list is in file fn. If you have a large number of mp3 files, create a file with the names in it first and use this option. For example dir /b/s *.mp3 > listfile (under windows), or find . -name '*.mp3' > listfile under unix or cygwin
-y Continue if there are errors, skipping failed files. If you are doing a restore and you know that a lot of your tags were not backed up, this saves time.
-s File signature based on front part of file instead of end. The program creates a backup file name for the tag based on the contents of the music near the end of the file. Using this option changes it to base the backup file name on the music near the start of the file. If this option is used for backup it must also be used for restore. Use this option if you have faulty tag updating software that corrupts the end of the file. My experience is that faulty tag editing software is more likely to corrupt the start of the file. Note that these corruptions of the file do not normally affect the listening experiencing because they only delete a couple of thousandths of a second from the start or end of the file. I recommend using Jampal as your tag editor because it does not corrupt the beginning or end of the file.
-x Tags in 256 subdirectories. The tag backup files will be placed in subdirectories named 00,01, ... up to ff, (256 in all). This has the following advantages: (1) It overcomes a limitation in the FAT32 file system of 16384 files per directory, so if you have more than that number of mp3 files and you are using FAT32 you will have to use the -x option. (2) It makes it easier for Windows Explorer - If you click on a directory with 16000 files in it, Windows explorer can hang for a minute or so while it retrieves the information. If you use the -x option when creating a backup, you must use it when restoring tags and also when updating the backup. I recommend using the -x option even if you are using a file system that handles such large directories, beacuse the smaller directories are more manageable.