v18 Are id3 tags case sensitive?
#1
The wiki lists all the id3 tags read by Kodi, but for .flac files it says to use REPLAYGAIN_TRACK_GAIN while for .asf files it say to use replaygain_track_gain. (And so on.)

Question: are these tags all case sensitive, or can I use replaygain_track_gain for .flac and/or REPLAYGAIN_TRACK_GAIN and expect Kodi to handle them properly?

// FvW
Reply
#2
"id3 tag" may refer to name or value. I think your question refers to id3 tag names. Values are case sensitive, obviously. Tag names are as well but thou shalt not add tags manually. Try not to reinvent the wheel and use a good tagging software which will save you headaches later on.
Reply
#3
OK, so tag names ARE case sensitive. That 's all I needed to know. (It maybe obvious but not to me. <grin>)

Thank you!

// FvW
Reply
#4
(2022-03-26, 15:48)HeresJohnny Wrote: "id3 tag" may refer to name or value. I think your question refers to id3 tag names. Values are case sensitive, obviously. Tag names are as well but thou shalt not add tags manually. Try not to reinvent the wheel and use a good tagging software which will save you headaches later on.

Sorry to resurrect a 1 year old thread but I see where we are saying ID3 are case sensitive, which to me means they can be upper, lower or mixed case.  Is that what we are saying or are we saying one method is preferred (i.e. lower case) and the others ignored ?   I ask because I am seeing files with a set of upper case musicbrainz tags and another set of identical lower case ID3 tags.  Which tags should win ? 


Thanks,

Jeff
Running with the Mezzmo Kodi addon.  The easier way to share your media with multiple Kodi clients.
Service.autostop , CBC Sports, Kodi Selective Cleaner and Mezzmo Kodi addon author.
Reply
#5
Personally I think that tags should be evaluated as case insensitive even if the tag convention is strict. It just adds additional levels of possible errors if strict semantics were required.
For example, Musicbrainz Picard always wants to tag the album type as "official" (lower case) and overwrites existing values of "Official" or "OFFICIAL". When @BlackEagle introduced discsets he wisely chose to make that value case insensitive as well.
foobar2000 always puts manually added tag names in upper case, btw.
Reply
#6
Looking at the code here: TagLoaderTagLib it appears for id3v2, the "Standard" tags (frames) must be upper case (as required in spec). For the extended TXXX tags, I believe id3v2 spec suggests they should be uppercase, but regardless Kodi will take any case and convert to upper case prior to processing. The frame values are unchanged in any case; that includes TIPL and TMCL pairs.

asf tags must use spec tag case, e.g., WM/Genre or MusicBrainz/Album Id.

Vorbis comment/xiph/flac tags per spec must be uppercase. AFAIK Apev2 follows xiph spec.

m4a/apple tags have an unusual format, but are case sensitive.

scott s.
.
Reply
#7
(2023-03-31, 22:23)scott967 Wrote: Looking at the code here: TagLoaderTagLib it appears for id3v2, the "Standard" tags (frames) must be upper case (as required in spec). For the extended TXXX tags, I believe id3v2 spec suggests they should be uppercase, but regardless Kodi will take any case and convert to upper case prior to processing. The frame values are unchanged in any case; that includes TIPL and TMCL pairs.

asf tags must use spec tag case, e.g., WM/Genre or MusicBrainz/Album Id.

Vorbis comment/xiph/flac tags per spec must be uppercase. AFAIK Apev2 follows xiph spec.

m4a/apple tags have an unusual format, but are case sensitive.

Thanks for the info.  In the case I was referencing I have a file with the following musicbrainz tags:

Musicbrainz_albumid=197d0891-d130-4024-84e4-e0a4a2504a1c
MusicBrainz Album Id=197d0891-d130-4024-84e4-e0a4a2504a1c
Musicbrainz_artistid=63e2f887-48e0-49a3-992e-fd11344de020
MusicBrainz Artist Id=63e2f887-48e0-49a3-992e-fd11344de020
Musicbrainz_albumartistid=63e2f887-48e0-49a3-992e-fd11344de020
MusicBrainz Album Artist Id=63e2f887-48e0-49a3-992e-fd11344de020


and another with:

MUSICBRAINZ ALBUM ARTIST ID=24d9e513-c215-4901-87ee-b66aa769ab9d\; 24d9e513-c215-4901-87ee-b66aa769ab9d
MUSICBRAINZ_ALBUMARTISTID=24d9e513-c215-4901-87ee-b66aa769ab9d\;24d9e513-c215-4901-87ee-b66aa769ab9d

I am trying to figure out which are the proper tags.  Looking at your CPP file it looks like starting on line 356 you convert everything to uppercase and compare to the musicbrainz tags with spaces.  Then beginning on line 581 you compare to the musizbrainz tags with underscores.  It looks like you are handling these based upon the tag type.


Thanks,

Jeff
Running with the Mezzmo Kodi addon.  The easier way to share your media with multiple Kodi clients.
Service.autostop , CBC Sports, Kodi Selective Cleaner and Mezzmo Kodi addon author.
Reply
#8
Tags with spaces will be id3v2 tags, tags with underscores either VORBIS or APEv2. The reason you find both of them (in my file) is that I have switched Kodi to evaluate VORBIS tags for mp3 via advanced settings to work around some differences to foobar2000.

Your second example contains a "/" which shouldn't be there, but the existence of different sets of tags in that case is due to me mass editing tags for a single artist across different file types.
Reply
#9
(2023-04-01, 10:31)HeresJohnny Wrote: Tags with spaces will be id3v2 tags, tags with underscores either VORBIS or APEv2. The reason you find both of them (in my file) is that I have switched Kodi to evaluate VORBIS tags for mp3 via advanced settings to work around some differences to foobar2000.

Your second example contains a "/" which shouldn't be there, but the existence of different sets of tags in that case is due to me mass editing tags for a single artist across different file types.

Thanks for the explanation on tag types and how we got there.  So it looks like you are telling Kodi which tags to read vs. an algorithm decision on which take precedence.  I am leaning towards the algorithm approach which might say convert all found tags to uppercase and insert underscores when spaces are found spaces, then compare / read the tags and accept first match.  That should work as long as there isn't a scenario where multiple tags of different formats have different tag information.  In that scenario you either have to indicate which tag takes precedent (i.e. telling Kodi which tags to read) or retag the files which have mismatched tag information.

This is helpful dialog.


Thanks,

Jeff
Running with the Mezzmo Kodi addon.  The easier way to share your media with multiple Kodi clients.
Service.autostop , CBC Sports, Kodi Selective Cleaner and Mezzmo Kodi addon author.
Reply
#10
Some of the deltas may be due to limitations in id3v2.3, mostly corrected if v2.4 tags are provided, but some players don't handle v2.4 so users may keep v2.3 tags.  In that case (keeping v2.3 tags) using advancedsettings allows preferential use of (in my case) APE tags.  So I use APE for the mbid values (eg. "MUSICBRAINZ_ARTISTID") rather than id3 TXXX string field extensions.

scott s.
.
Reply
#11
(2023-04-03, 23:36)scott967 Wrote: Some of the deltas may be due to limitations in id3v2.3, mostly corrected if v2.4 tags are provided, but some players don't handle v2.4 so users may keep v2.3 tags.  In that case (keeping v2.3 tags) using advancedsettings allows preferential use of (in my case) APE tags.  So I use APE for the mbid values (eg. "MUSICBRAINZ_ARTISTID") rather than id3 TXXX string field extensions.

scott s.
.

Thanks again.  This gives me an approach to move forward.


Jeff
Running with the Mezzmo Kodi addon.  The easier way to share your media with multiple Kodi clients.
Service.autostop , CBC Sports, Kodi Selective Cleaner and Mezzmo Kodi addon author.
Reply

Logout Mark Read Team Forum Stats Members Help
Are id3 tags case sensitive?0