- Q: Where is an ID3v2 tag located in an MP3 file?
It is most likely located at the beginning of the file. Look for the marker
"ID3" in the first 3 bytes of the file.
If it's not there, it could be at the end of the file (if the tag is
ID3v2.4). Look for the marker "3DI" 10 bytes from the end of the file, or
10 bytes before the beginning of an ID3v1 tag.
Finally it is possible to embed ID3v2 tags in the actual MPEG stream, on an MPEG frame
boundry. Almost nobody does this.
- Q: Where is an ID3v1 tag located in an MP3 file?
An ID3v1 tag is in the last 128 bytes of an MP3 file. Look for the marker
"TAG" 128 bytes from the end of the file.
- Q: Why does ID3v2 not make use of XML?
The first reason is that many types of information in ID3v2 are by nature
binary data, a data type that does not mix easily with XML.
The second reason is parsing speed. The structure of ID3v2 makes it
possible to skip over portions of the tag that are not interesting for an
application. An XML-based structure would make that substantially more
difficult.
The third reson is that if ID3v2 should be remade in XML it would be
incompatible with all existing versins of ID3v2. We think that we have had enough
of incompatible changes.
Finally, if one wishes to include XML-based information within in ID3v2
tag, it is perfectly possible. ID3v2 puts no limitations on the data types
that can be embedded within its structure, so a frame that contains XML
information is entirely feasible.
- Q: Could you add the genre X to the genre list?
No. The ID3v1 genre list is obsolete and inconsistent and was no good to
begin with. All genres above 79 has been added by Nullsoft and is not
really part of the "ID3v1 standard", if such thing existed.
- Q: How do I implement support for ID3v2 in C/Java/VB/my-favourite-language?
Take a look at the implementations page and see
if there is any library available that your lanugage can use.