Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Mass copy / sync metadata between versions of files (Read 5071 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Mass copy / sync metadata between versions of files

Hi,

the general attitude in this forum is to store lossless files and derive lossy formats from them.

How do you keep metadata in sync between these files?  I mean, re-ripping everything ten years from now would be very uncomfortable.  However, the real pain would be to re-enter metadata or manually copy it between files.

If there is no solution out there (now and in the future), there is no point of storing formats for future use.

Just my scenario:

I want to rip my collection to Vorbis (because it is the best lossy codec my Squeezebox and Foobar support).  Assume in 10 years, Vorbis is dead, and I purchase new streamers/software that do not support Vorbis anymore.  So I would need to convert my collection to the standard codec available then (assume it is called MP6).

Assume I am smart right now and rip everything to Flac and then to Vorbis.  Then I could batch convert my collection from Flac to MP6 in 10 years, so no ripping and no quality loss.  However, during the 10 years I have added ratings, genres, mood and other metadata to the Vorbis files.  If I cannot mass copy the metadata from the Vorbis files to the Flacs or to the MP6 files, I would be lost.

So far, I have not seen a solution to do that.  The closest is my DAM software (Imatch from Photools).  Foobar, Mp3Tag, and dBpoweramp (the most powerful products I know) does not seem to have a tool for it.

I wonder why this topic is not discussed more often.  I also did not find a sub-forum suitable for my question, so  I chose “General Audio”

Any hints/recommendations?  Thanks in advance!

Martin


Mass copy / sync metadata between versions of files

Reply #2
Thanks for your hint, Marc.

The article you quoted does not give a hint about how Foobar matches the files when copying metadata.  To test it, I created a sample dataset.

0.OGG
1.OGG
2.OGG
1.MP3
2.MP3
3.MP3

The files with the same filename are the same songs, so artist, title and so on are identical.  0.OGG and 3.MP3 have no counterpart.  I then entered rating and mood for the OGGs.

When I used Foobar to copy the metadata from the OGGs to the MP3s, it copied
0->1
1->2
2->3

So this behavior suggests that files are matched just by the current order in the current selection.  Foobar certainly does not match them by filename or by the set of artist, title, album, track.

What that means is: When mass-copying data from 10k Vorbis files to 10k MP3 files, just one missing file means that I will completely screw up metadata.  So unfortunately, using this function in the real world will be impossible or at least extremely time-consuming:

The only viable solution for my problem would be one that matches files by certain criteria.

Has anybody heard of such a solution?

Martin

Mass copy / sync metadata between versions of files

Reply #3
So this behavior suggests that files are matched just by the current order in the current selection.


exactly. how else could it work reliably? i don't think it would be very easy for any program to guess your intentions when it comes to badly tagged/missing files as part of the destination.

it looks like you'll have to wait and see if anyone else has any other suggestions.

Mass copy / sync metadata between versions of files

Reply #4
As you have greater control over your library, considering one set is a lossy copy of another, you could probably make a customized sort column using Mp3Tag (which is fantastic for batch tagging) and sort the tracks in an identical way.

Any sort order is possible, and you can get as granular as you like with the formatting. As a simple example the column could be ordered by %album artist% %album% %track% to sort tracks.

There are a vast number of batch formatting questions over on the Mp3Tag.de board that it's likely the topic has been raised before (and perhaps worth asking there too, as there can sometimes be issues one mightn't think of).

Mass copy / sync metadata between versions of files

Reply #5
A simple solution is transcoding.
You have your library in lossless and convert on the fly to any lossy format to a portable.
If the meta data in the lossless changes, the sync software will notice this and resync the content.
A lot of media players do support this option.
No need to maintain 2 libraries.
TheWellTemperedComputer.com

Mass copy / sync metadata between versions of files

Reply #6
So this behavior suggests that files are matched just by the current order in the current selection.

exactly. how else could it work reliably? i don't think it would be very easy for any program to guess your intentions when it comes to badly tagged/missing files as part of the destination.

Well, like I said, it could match filenames without extension.  One could actually write a script that does the trick: On file system level, search for matching files, then call a tagging program to just copy the tags between the two matching files, then continue in the loop.

you could probably make a customized sort column using Mp3Tag (which is fantastic for batch tagging) and sort the tracks in an identical way.

OK, but that only improves sorting.  Again, if one file is missing, the metadata copying will fail.

If the meta data in the lossless changes, the sync software will notice this and resync the content.

Yeah, but my scenario is that the working data base is the lossy one.  Lossless is the archive.  So how do I transfer the data from the lossy music to the lossless?

Thanks for all suggestions.
Martin

Mass copy / sync metadata between versions of files

Reply #7
Are these full albums? I imagine there could be some way to generate a "local freedb" dump from one set and then apply it to the other set based on the Disc ID. I never tried it, but I assumed mp3tag should be capable of this.

Mass copy / sync metadata between versions of files

Reply #8
A simple solution is transcoding.
You have your library in lossless and convert on the fly to any lossy format to a portable.
If the meta data in the lossless changes, the sync software will notice this and resync the content.
A lot of media players do support this option.
No need to maintain 2 libraries.
That's the way I do it. Make the changes to your lossless library, and use a tool to automatically copy the changes over to the lossy versions.

I don't know of a tool that automatically lets you go both ways (i.e. put metadata changes from the lossy files back into the lossless ones). I understand that's what you're asking for. I don't think fb2k metadata copying is the way to go at all.

Cheers,
David.

Mass copy / sync metadata between versions of files

Reply #9
iTunes + doubleTwist allows for syncing of metadata -- including play counts and ratings -- in both directions. Googling suggests Media Monkey allows for reverse syncing as well but I never tried it.

Mass copy / sync metadata between versions of files

Reply #10
How do you keep metadata in sync between these files?  I mean, re-ripping everything ten years from now would be very uncomfortable.  However, the real pain would be to re-enter metadata or manually copy it between files.

Pretty simple: I re-transcode any time the original (lossless) file changes. If the original file's timestamp or size changes, then I regenerate the lossy file. I don't worry about _why_ the lossless file was changed. It might be a completely new rip, or it might be a single character edited within the metadata. It's extremely rare that I do a mass update of metadata within my library, so typically it's only a handful of files that are edited in any given month. Regenerating the lossy files takes no more a couple of minutes each month.

Mass copy / sync metadata between versions of files

Reply #11
Pretty simple: I re-transcode any time the original (lossless) file changes.

Yeah but as has already been stated, the OP's problem is that his lossy files are the ones that have tag changes. He wants to propagate those changes to the lossless archive.

Mass copy / sync metadata between versions of files

Reply #12
Yeah but as has already been stated, the OP's problem is that his lossy files are the ones that have tag changes. He wants to propagate those changes to the lossless archive.

Ah, yes. I read it the other way. I would question, though, given the platforms of Squeezebox and Foobar, why you'd be using the lossy copy of the library for daily listening.

Mass copy / sync metadata between versions of files

Reply #13
The only viable solution for my problem would be one that matches files by certain criteria.


Not necessarily.

The way I'd approach your problem would be to use a mass-tagging program like MP3Tag or Puddletag.  Armed with the knowledge that a single errant file would wreak havoc with subsequent tags, take measures to ensure that there are no errant files.  You can do this by comparing directory contents prior to mass-copying tags from collection A to collection B.  For example:

1. Open a console and navigate to the root folder of collection A.
2. Recursively list its contents and save the list in a file called CollectionA.txt using 'ls -R > CollectionA.txt' or 'find' command (Linux) or 'dir /s /b > CollectionA.txt' (Windows).
3. Move CollectionA.txt to somewhere you can work with it later.
4. Navigate to root folder of collection B and repeat step 2, this time outputting to a file named 'CollectionB.txt'.
5. Move CollectionB.txt to the location of CollectionA.txt.
6. Do a find & replace action on CollectionA.txt to change all instances of, say, '.ogg' with '.flac' so that file extensions in both lists are consistent.

Since collection A (lossy) is based on the directory structure of collection B (lossless archive), you can now let the computer do the donkey-work by comparing the two lists for differences.  You can do this in a number of ways:

a) Use terminal/console tools (I use the Linux 'diff' tool, I'm not sure about its Windows equivalent) OR
b) if you prefer a GUI use the cross-platform tool meld (http://meldmerge.org/) to compare the two text files OR
c) copy and paste the text file contents into columns of a spreadsheet and use conditional formatting to highlight discrepancies (http://spreadsheetpage.com/index.php/tip/comparing_two_lists_with_conditional_formatting/)

I appreciate there are a few steps required but it ultimately provides verification that both collections are mirrored.  You can then import collection A to the file tagger; copy all metadata; import collection B; paste, and have peace of mind that it won't mess up the tags.

The alternative, of course, would be a script that matches files according to file path and uses command line tagging tools to read and write values from one to the other.  But I think this method is a bit simpler.

Mass copy / sync metadata between versions of files

Reply #14
^ I usually generate two lists using foo_texttools then compare them with Notepad++ with the plugin Compare.

Mass copy / sync metadata between versions of files

Reply #15
Ok, so we basically have two approaches here:

1) Make sure that both collections are identical, then transfer metadata sequence-based (Lothario)

2) file name based matching (script that finds identical files) and then transfer to file with same filename (my approach)

I think this is fine for the time being.  I will follow up if the first player I purchase does not support Vorbis anymore

I am still surprised that there are no tools available to perform that step

Thanks, Martin

Mass copy / sync metadata between versions of files

Reply #16
I still don't understand why, if you're ripping your collection to FLAC, you'd be using a lossy transcode of that collection for your daily listening needs. I can understand creating a Vorbis or Mp3 or whatever lossy format for use on portable players, but not why that library would be the one accumulating tagging changes that would then need to be pushed back to the master files.

Mass copy / sync metadata between versions of files

Reply #17
I still don't understand why, if you're ripping your collection to FLAC, you'd be using a lossy transcode of that collection for your daily listening needs. I can understand creating a Vorbis or Mp3 or whatever lossy format for use on portable players, but not why that library would be the one accumulating tagging changes that would then need to be pushed back to the master files.

I thought that too. I also think Web-Engel is lucky to be using FLAC and Vorbis. They use exactly the same tag format (Vorbis Comments), hence it is possible to go backwards and forwards without tag conversion problems. With FLAC and mp3, some compromises usually have to be made. You can't guarantee that ID3V2.3 tags will be properly edited and/or the changes will be properly reflected in the Vorbis Comments tags that FLAC uses.

I think it would be good if it could be made to work though. I often notice tag errors on my mp3 player, think "I must fix that when I get home", and of course forget.

Then again, in 5-10 years I bet we'll all* be carrying our lossless libraries around with us, so it won't matter.

* = I mean the kind of person who posts on HA and would read this thread, not literally every person on the planet.

Cheers,
David.

Mass copy / sync metadata between versions of files

Reply #18
I still don't understand why, if you're ripping your collection to FLAC, you'd be using a lossy transcode of that collection for your daily listening needs.


I can't speak for the OP, but personally I do the same. My daily listening device is the iPod Classic, either at home in a dock or portable, and it makes no sense to limit my listening capacity using lossless, when I can fit much more music with mp3.

Mass copy / sync metadata between versions of files

Reply #19
I still don't understand why, if you're ripping your collection to FLAC, you'd be using a lossy transcode of that collection for your daily listening needs.


I can't speak for the OP, but personally I do the same. My daily listening device is the iPod Classic, either at home in a dock or portable, and it makes no sense to limit my listening capacity using lossless, when I can fit much more music with mp3.


I'm sure there are many who do this, actually. I think the main thing is why the lossy version would be used to edit the tags, rather than the lossless copy which would provide more flexibility. There might be a decent reason for it but I'd imagine it would get fairly unwieldy.

Mass copy / sync metadata between versions of files

Reply #20
Does anyone even have a comfortable way to edit tags on a portable player though (to render the backwards sync necessary)?

A dedicated device won't have a keyboard, and I wouldn't consider apps on phones to be very straightforward to tag with (not to mention compatibility issues). What remains are rating/favorite that is usually supported (and maybe playcount), which would be nice to merge back to the main library. However the limited space means most likely only favorites will make it to the device in the first place and I can live without the playcount data.

Guess if we are talking laptops(/tablets?) running windows with a sizable storage, the problems arising from two parallel libraries (actively edited on both sides) are much more real.

Mass copy / sync metadata between versions of files

Reply #21
I could see maybe ratings(?) being added on the fly while listening. I don't know, I don't use things like ratings or "mood". Do portable players that let you add such things actually modify the audio files? That's not something I'd be real comfortable with.

I have to admit that I have a difficult time relating to anyone using an iPod or other DAP as the main means of playing music in their home. If your listening platform at home were a laptop, then I would think you'd just play files in FLAC or another lossless format pulled from a network file server.

Mass copy / sync metadata between versions of files

Reply #22
Does anyone even have a comfortable way to edit tags on a portable player though (to render the backwards sync necessary)?

Yes, a laptop running Foobar.

However the limited space means most likely only favorites will make it to the device in the first place

Well, that requires tag-based copying which is also not trivial, or?  I actually don't know any solution for that.  Therefore, I prefer copying everything.

Guess if we are talking laptops(/tablets?) running windows with a sizable storage

Well, anyone who worked with a disc-free laptop will never want magnetic discs again.  Not to mention the power consumption and shock sensitivity of discs.  And 1 TB of SSD is still expensive.  So size does matter!

the problems arising from two parallel libraries (actively edited on both sides) are much more real.

That's a no-brainer.  A 2-line robocopy script will do that job.

Mass copy / sync metadata between versions of files

Reply #23
Yes, a laptop running Foobar.

By 'portable player' I was excluding anything close to a fully fledged desktop client (so candicates are stuff like iPod, MP3 players, phones etc). Guess I wasn't clear enough.

Well, that requires tag-based copying which is also not trivial, or?  I actually don't know any solution for that.  Therefore, I prefer copying everything.

I either handpick or filter based on dynamic rating. I may copy entire albums for first listening, but the numbers are not high enough to force me to take any more effort than 'I'll tag them when I get home'.

That's a no-brainer.  A 2-line robocopy script will do that job.

It might not always be that simple though. Suppose there are two equally used libraries, not the usual 'main library + disposable, lossy selection'. In my case that would mean they get modified fairly frequently (I tag them with an ever increasing number of keywords that describe the tracks, for example: 'female vocal; Japanese; power metal' etc), resulting in them quickly branching their own ways, with no clear winner in the up-to-date race. Add the problems with merging/adding up playback statistics from two different places. You can't just overwrite data from A with B (granted these are not stored in the files themselves).