ID3
|
ID3 is a tagging format for MP3s. It allows metadata such as the title, artist, album, track number, etc., to be added to the MP3 file.
Contents |
Versions
ID3 comes in several versions:
ID3v1
ID3v1 was invented by Eric Kemp in 1996 and was the original de facto standard. It consists of 128 bytes added to the end of the file, beginning with the string "TAG" so that a tag could be easily spotted by media players. Early MP3 players would occasionally react badly to data injected into the MPEG stream, either stopping play at that point, emitting a burst of noise, or (in the case of tags at the file's start) refusing to even open the file. To solve these problems, the tag was placed at the end of the file instead of at the beginning.
offset | length | description |
---|---|---|
0 | 3 | "TAG" identifier string. |
3 | 30 | Song title string. |
33 | 30 | Artist string. |
63 | 30 | Album string. |
93 | 4 | Year string. |
97 | 30 | Comment string. |
127 | 1 | Genre byte. |
ID3v1.1
ID3v1.1, an extension invented by Michael Mutschler in 1997, added a new track number field to ID3v1 while maintaining the original size of 128 bytes. This new field occupies the second to last byte of the comment.
offset | length | description |
---|---|---|
0 | 3 | "TAG" identifier string. |
3 | 30 | Song title string. |
33 | 30 | Artist string. |
63 | 30 | Album string. |
93 | 4 | Year string. |
97 | 28 | Comment string. |
125 | 1 | Zero byte separator. |
126 | 1 | Track byte. |
127 | 1 | Genre byte. |
The specification insists that all of the strings listed here are encoded with ISO 8859-1. However in order to support languages outside Western Europe, many programs will use the system's default encoding instead. This can lead to difficulties in decoding the strings on another machine.
Genres
ID3v1 defines genres numbered 0 through 79 and Winamp extends the list from 80 to 147.
ID3v2
ID3v2 greatly expanded ID3, adding many more fields and allowing those fields to be much longer. ID3v2 also defined a more extensible data structure with named tag fields and allowed information such as lyrics and images to be encoded in the file. The ID3v2 information is encoded as a large data block at the beginning of the file (or optionally at the end of the file as of ID3v2 2.4). An MP3 file with ID3v2 tag can be played safely on players that weren't designed for ID3v2 - because the tags lack a syncsignal, the decoder can determine that the tags don't contain audio information. The benefit of having a tag at the beginning of the file is that the software can obtain tag information even before reaching the end of the file, which is advantageous if the file is streamed. A disadvantage to having the tag at the beginning is when the tags are modified in length, the entire file needs to be re-written. ID3v2 supports Unicode so that internationalized tags can be used.
See also
External links
General
- Official site for ID3v2 (http://www.id3.org)
- The short history of tagging (http://www.id3.org/history.html) - history of the ID3 tag
- Early ID3v2 specification, including details on ID3v1 (http://www.id3.org/id3v2-00.txt)
- List of genres (http://www.linuxselfhelp.com/HOWTO/MP3-HOWTO-13.html)
ID3 related software
- moreTunes (http://www.moretunes.net) Automatic ID3 tag and filename manipulation software
- mp3 tagging library (software) (http://mplib.sourceforge.net/)
- ID3 tag + filename manipulation software (http://www.id3-tagit.de)