[ID3 Dev] Worst cases of "ID3 offenders"?

Mitchell S. Honnert mitch at honnert.com
Tue Nov 8 13:31:30 PST 2005

In testing out my ID3 tag library, I've come across dozens of cases of 
mangled v2.3 tags.  If there's some way that a tag can be screwed up, I've 
probably seen it.  I've done my best to have my lib gracefully handle these 
exceptions, but they're frustrating none-the-less.  It's not so bad when the 
offending file looks like it's just the victim of simple file corruption, 
but when it's obvious that the author of the app/lib/encoder that wrote the 
frame decided to just reformat a standard frame or make up their own frame, 
I really cringe.

What's even more frustrating it to get a bug report from a user of my 
library only to have it turn out that it's one of these renegade frames.  I've 
posted the common offenders I know about to my library's page, but I'm 
curious to see if any of you know of any more.  Here are the bigger ones I 
know about.

 - WinAmp will record apparently gibberish bytes in the Language field of 
the Comments (COMM) frame.  I don't see any pattern to the bytes, so I'm 
guessing that it's just some uninitialized variable that's getting written 
the Language bytes.

 - WinAmp ignores the Description field of the Comments (COMM) frame.  It 
displays whichever COMM frame happens to be read last.  (So your Comments 
frame written in another app may "disappear" in WinAmp.)

 - iTunes adds an extra nullchar to the end of the Comments frame.

 - iTunes uses a non-standard frame (TCMP) to record the "Part of a 
compilation" flag.

- Some app/lib/encoder adds a non-standard NCON frame to the ID3 v2.3 tag. 
I've seen the errant frame hundreds of times, but I've never been able to 
track down its source. (Man, I wish I could find the culprit who is writing 
NCON frames.  Gah!)

So, does anyone know of any other popular applications, libraries, or 
encoders that write non-standard, corrupted ID3 tags?

(Part of me just wanted to vent about applications that break the standard I 
work so hard to adhere to, but I do still think it would help reduce some of 
the support requests I get or at least lessen the perception of people that 
use my lib that it's broken when it's really the tag that's broken.)


Mitchell S. Honnert

UltraID3Lib - http://home.fuse.net/honnert/hundred/?UltraID3Lib

To unsubscribe, e-mail: id3v2-unsubscribe at id3.org
For additional commands, e-mail: id3v2-help at id3.org

More information about the ID3v2 mailing list