Way To Display Tag Differences Between Same Filenames in 2 Folders?

Is there a way for Mp3Tag (or anything else) to display tag differences between duplicate filenames in two folders? Basically a "Tag" compare to show tag changes?
Due to Apple's efforts to discourage 3rd party access to the iTunes database, we iPod users are more and more forced to capitulate to the almighty totalitarian fruit and use iTunes to do music sync. With iTunes being tag-ignorant of many settings, and its refusal to write Rating to the %rating% tag, folks who want Rating to go wherever the file goes, and don't want to lose all their ratings and playstats when the iTunes database gets corrupted or deleted need a way to get this info written to the file tag. The other issue at hand is a mistrust of iTunes that it may write additional, unwanted metadata to the file, since Apple is infamous for doing things behind our backs "in our best interest".
So on one hand I have my original, pristine mp3's & flacs, meticulously tagged with Mp3Tag that I DON'T want to get polluted by iTunes's meddling, but at the same time I want to let iTunes update its Media Folder version of my original music folder with things used in Smart Playlists like the iTunes Grouping (CONTENTGROUP [TIT1] tag in the file), where I am manually storing moods, situations, etc., and stuffing the iTunes Rating (set on the iPod and sync'd back to iTunes) into the BPM tag, and be able to check it with a compare before overlaying the master file copy.
What I am looking for is a tag compare facility that could be run from the "work" folder (iTunes Music folder) against the "master" folder (the one iTunes can't mess with), and for each duplicate filename found, verify that ONLY the expected tags (CONTENTGROUP, BPM, timestamps, etc) changed before overlaying the "master" file with the iTunes file.
Then once the master is updated, scripts can be run to update the master's %rating% tag to the latest Rating sitting in BPM.

No, MP3tag does not compare data between different files only within the current file.
You would have to run an export of data and find a program that can deal with the export and group the data according to your requirements.

Of course, there is always the sorting function in MP3tag and the possibility to load two (and more) folders from different locations and treat the data of those files.

Yes, Mp3tag allows visual comparing of tag-field content over one or more files and folders.
And because Mp3tag can work with tag-field content within one file, there might be a way to do so.

  1. Given are two folders with the same number of files and same musical content and so forth (identical album), in order to compare each file's set of tag-field content with each other complementary file.
  2. Load Folder1 into Mp3tag, export all tag-field names and tag-field values into CSV text file, for example using Dano's tool "Mp3tagCompleteTags" or write your own export script for smaller output.
  3. Edit the CSV text file and rename all tag-field names, for example by prepending a short prefix "NEW_".
  4. Load Folder2 into Mp3tag, import all data from the CSV text file into the files from Folder2.
  5. In case you use an adapted column setup, you can do visual comparing the content of the tag-fields side by side in Mp3tag list view.
  6. Additionally the Mp3tag scripting toolbox and actions are available to do automatic comparing.
  7. After all comparing and updating is done, the helper tag-fields can be removed from the files.

Beside this proposal there is always the way to use an application like WinMerge to compare two text files, for example, compare the complete tag-info from files of Folder 1 with Folder2.


That just might work, DetlevD. I tried a couple of tests and it looks like you are right, once Mp3TagCompleteTags has dumped all the tags to CSV I am able to view the differences in WinMerge without using Mp3Tag to view them. Visually it will be a little more difficult, but I won't have to modify any tags to do the comparison like I would have to in Mp3Tag. Thanks!!

You might try Beyond Compare for MP3 comparison.

I'm doing this with a few different tools, haven't formalized a standard workflow yet but am working on it.

First of all the add-on Mp3tagCompleteTags tool is most excellent for exporting all your tags to a CSV file without having to explicitly enumerate all the possibilities in a hand-coded export/report.

Note that this process uses the MP3Tag internal names (mostly FLAC/Vorbis strings).

This is usually a good thing, so they are the same if you're looking at mixed formats, say both FLAC and MP3.

If you want to see the actual ID3 tag names a guy named Dale Preston coded these handy tools, suggestions welcome if anyone knows of more updated/elegant alternatives:
ID3 Raw Tag Viewer

Now if your files are anything like mine, normal diffing tools are pretty useless in doing an A/B comparison of CSVs with such long lines.

One easy way is to bring them into your favorite spreadsheet program (I use LibreOffice) and visually scan for differences.

As I've got OCD tendencies, I'm currently looking at a variety of tools specifically designed to diff pairs of CSV files, and have currently gotten sucked into what looks like a very interesting toolset:


Beyond the diffing capabilities, this will let you treat your full-export CSV files as a structured database, regexp-based search and replace, converting to and from SQL, XML and other formats.

Looks like an excellent complement to MP3Tag's scripting capabilities.

Totally off-topic tangent:

I really like the idea of having a central toolkit that lets me make use of the various music catalog tools strengths (MediaMonkey, iTunes), while still keep my file metadata safe separate from the actual tags stored in my files, which data store turns out to be fairly fragile given the wild-west nature of this application space.

Ultimately I'd like to set up my own customized version of DataCrow as the "hub" container for all the meta data, but in the meantime looks like MP3Tag's full export in text files will do the job.

Well, I think this is differentiation becomes a little academic.
Seen from the result, yes, MP3tag can be part of a workflow that in the end allows you to identify duplicates.
But out of the box there is no report nor filter nor action nor assistant that shows duplicates. You alsways have a break in tools and cannot accomplish the task only with mp3tag.
So, taken the initial question "is there a tag-compare between files?" the answer is still no, there is only a tag compare within files.
In the end it is up to the user to find a way and you have shown one.

Rather than climbing the (very interesting but for me intimidatingly steep) learning curve that is CSVfix to massage the row-per-file output of the MP3Tag export/report output to make it diffable, I looked at some other tag-value dumping tools.

EXIFTOOLS looks very promising, but AFAICT (it's also not easy to get started with) only works with a pre-defined list of the more often-used tag values, and I can't seem to suppress the tech/codec kruft from being included.

A very interesting tool called MP3-Diags outputs XML! as well as TXT, but mangles the POPM output so bad I took that as a sign it's not in the same league as MP3Tag for accuracy.

Finally I found Mutagen's "mid3v2" command-line tool, very easy to set up in via scripting/batch files if you've done any Python work, can output in both fully "raw" and a nicer but still detailed human-readable format.

Most importantly it does this "row-wise" rather than putting all the values on one line per file, so the output is very easy to pipe into your favorite diffing tool (for fellow windoze uses "WinMerge" is a rare example of a best-of-breed app, IMO superior to most competitors in the Linux/Mac platforms.

Bottom line - mid3v2 is highly recommended for analysing exactly what those misbehaving apps are doing when they mangle your precisely maintained database-as-tags file collection.

The "export all" plugin here though seems like the best tool for actually backing up your data outside your audio files, I've become amazed at just how fragile that medium is as a data store, given the wild-west approach of the leading software in this space.

Some more notes on "raw tag dumping" tools for future googlers. . .

metamp3 hasn't been kept up to date with the de-facto iTunes tags.

I also came across this but haven't bothered checking it out since it also hasn't been updated for a long time.

mid3v2 while IMO perfect for ID3, isn't for FLAC.

Ex Falso, part of the Quodlibet/Mutagen family, is, but for some bizarre reason with MP3 "shield you" from all TXXX tags that aren't prefixed as having been written by QL.

IMHO it would be ideal if MP3Tag had an option to output export/reports (and or config the UI) to display the format-specific fieldnames rather than the "after mapping" internal ones. However it seems such a feature isn't in line with the dev's vision of the project. . .

Just in case someone with coding skills has a similar itch one day, here's a preliminary wishlist spec, perhaps do-able as a modification of the global export plugin, or (less usefully to Mp3Tag integration) perhaps as a Python script based on the Mutagen tools:

Enable export/report output with a configurable delimiter character just before the user data (i.e replacing the rightmost "=" in ID3), and to select between diffing-friendly row-wise output (with a configurable end-record delimiter) on the one hand, and compliant CSV one track-per-row output on the other, with smart quoting and escaping. Finally, an option to output field names as one of:

  • Single-format-native (e.g. all files output with FLAC-name headers - not mapped but as written to flac)
  • Separate lists per format with native headers (e.g. all FLACs in one file, all MP3s in another, keeping the per-folder option currently available in the global export)
  • MP3Tag internal (after-mapping) names
  • Export column-visible only with column-headings as fieldnames.