Want to rename and retag just a few MP3s across multiple copies


At the moment I have almost 2000 MP3s, three copies each, across a hard drive, MP3 player and USB stick, all (hopefully) identical to each other, paths and all.

The thing is, when I've wanted to rename and retag MP3 files in the past, I've had to create an MS-DOS batch file, full of renaming statements, then run it on each device, and then run MP3Tag's "Filename > Tag" afterwards on those files to change the tags accordingly, even if I tend to use it on ALL the MP3s on the device, changed or not.

Is there a way of having a script I can run (across these devices without change of path) so it will alter the filename AND use the Filename > Tag option automatically on ONLY those files I wish to change?

Instead of updating all three in Mp3tag, you might want to designate a master copy of your music library, then use file syncing software to update the other two copies. Easiest is usually to have the master copy as the most readily accessible and editable in Mp3tag - the one on the computer hard drive. Then you manage just the one set of files and sync the folder to the other two locations.

As long as the overall folder tree structure on all three can be the same (no special requirements from a device) then running the syncing software is all you should have to do after doing a tag edit, rename, move or delete.

I use the syncing tool Robocopy (from Microsoft) from a batch file run from the command-line to do this. Another program you can use is SyncToy (also fromMicrosoft), which has a graphical interface. There are many others.

As an example, assuming your file locations are something like:

D:\Music (hard drive)
G:\Music (USB stick)
H:\media\library (Mp3 player)

you can run something similar to the following from a batch file:

robocopy "D:\Music" "G:\Music" /mir
robocopy "D:\Music" "H:\media\library" /mir

Well, I've tried Robocopy out and it seems promising - surprising I even had it all this time and I didn't know!

Even so, I'm going to have to uncheck the "Preserve file date/time" box as Robocopy only detects changes in timestamp or file size, and the former seems more likely.

But I wrote a little batch file with parameter options (for the various drive letters, they're not always the same) and renamed/retagged one file and it detected and copied it successfully, removing the old one.

This should make things easier. Thank you!

Ah, yes. I'd forgotten that it's necessary to have a changed timestamp, since the file size usually doesn't change.

I also use Mp3tag's 'Preserve file modification time' when retagging old files. So that when viewing 'New' files or sorting the library by the modification date, the order of when they were added is preserved. What I do is use another command-line utility, 'touch.exe' to bump the file mod time by a couple of seconds. Touch is a common Unix util that has been translated many times for Windows (do a search, you'll find several) that adjusts just file properties such as timestamps. I wrote a little VBScript wrapper for it and installed it an Mp3tag Tool (see Options > Tools). When I update files in Mp3tag, I preserve the mod time, then run the tool to bump the time.

If you like, I can send you the script and the exe that I'm using.

No, it's OK.

If anything, I'm trying to keep all my MP3s to the same time/date stamp, just so they're more consistent. I'm using something called Attribute Changer for that task.

The thing is, you see, my MP3s have long since lost their original creation date and timestamps because I was using various tagging software before MP3Tag, and it turned out they always modified the date, but by the time I realised that dates could be preserved, it was far too late. So I'm trying to make them all the same time and date, but I have to continuously set it every time a file is changed, or a copy of a file.

Frankly, as long as the Date Created and Date Modified are the same date, 30/09/2012 at 0000 hrs, I'm fine. And using the latest date and time when I retag files lets me know which files to redate.