Newbie First day, first question

Hello,
I have noticed that some tags are not saved to the fuile metadata (specially for mp4 files) , for example Tone (or BPM in mp4).
Is there a way to intercept this output from picard and store it to an empty tag in the file?.
Thanks

1 Like

What version of Picard are you using?

bpm gets written to MP4, but there was a bug which made Picard report this tag as unsupported for MP4. This was fixed in version 2.1.

“Tone” is not a tag known to Picard. Before Picard 2.3 custom tags are not written to MP4 files. After version 2.3 custom tags will be stored with the ----:com.apple.iTunes: prefix.

Update: If you want to see details how tags are written to the various tagging formats supported by Picard, have a look at Picard’s tag mapping

1 Like

Thanks for your reply.
I’m using version 2.4.2.
I used BPM just to put an example. A specific case is MusicBrainzArtistID. It is not saved to mp4 files (I tried four files and no information was saved).
I’ll follow your suggestion about Picard’s tag mapping page to get some light on this.

Thanks again.

The MB artist ID is definitely written, in MP4 it ends up in ----:com.apple.iTunes:MusicBrainz Artist Id.

Picard will automatically set this for you if you tag against a MB release. Are you manually setting those tags? If you do so you need to use the proper name for it, in this case musicbrainz_artistid.

1 Like

Im trying to get access to metadata programmatically via C#. When I get to the “tag object”, musicbrainz_artistid is empty in the case of the mp4 files I tried; however, the information is shown un the picard panes. I´m setting the tags via digital fingerprint (I ignore the name for that function in English. My version of Picard ins in Spanish).

As I mentioned earlier, Im a newbie to all the tagas subject. I ignore completely what ----:com.apple.iTunes:MusicBrainz means. Can you suggest a site to start learning about this topic?. Thanks

I don’t know what library you are using to access the MP4 tags or how its API works. For MP4 there are some well defined fields for common metadata, such as ©nam for the track title or tmpo for BPM.

For arbitrary free text values it has become common to prefix the name of this metadata field with ----:com.apple.iTunes:, because Apple started using some additional data for iTunes and people followed, with tagger treating tags with this prefix as arbitrary freeform data. The MB artist ID is expected in ----:com.apple.iTunes:MusicBrainz Artist Id.

Maybe it is as simple as looking for a “tag object” with the name ----:com.apple.iTunes:MusicBrainz Artist Id. But if you can tell what tagging library you use we can probably figure out how it works.

1 Like

THanks again.
I’m testing several APIs, but the one that is being more useful (and at the same time showing the problems is taglib sharp).

This chunk of code returns an empty string:
var file = TagLib.File.Create(mp4File_Path_and_Name);
Console.Write ("MusicBrainzArtistId: " + file.Tag.MusicBrainzArtistId);

however, when applied on an mp3 file it returns the right value.

Ok, Taglib Sharp should properly handle this (https://github.com/mono/taglib-sharp/blob/b27beabc2557989bc9dda973ff7ebcb625dc495e/src/TaglibSharp/Mpeg4/AppleTag.cs#L1294)

Are you sure your file is saved properly? Do you have “Save tags” enabled and save the file in Picard? What happens if you load the file again into Picard, does Picard show the tags properly filled?

1 Like

Are you sure your file is saved properly?
R: I believe so. I tried several files.
Do you have “Save tags” enabled and save the file in Picard?
R: Yes
What happens if you load the file again into Picard, does Picard show the tags properly filled?
R: Yes. It does.

Strange thing indeed, if Picard can read the data back it should be saved as specified.

From what I can see taking a superficial look the taglib-sharp library references the data correctly. But I would still suggest you open an issue on https://github.com/mono/taglib-sharp/issues . There is some special handling for loading the “----” based tags in their code and probably there is an issue with this.

1 Like

I will.
However i’m going to try a few more videos to make sure i’m not skipping sonme step.
Your reply made mr consider that possibility.

Thanks again for your time and your help.

1 Like