ID3
- This article is about the metadata format for MP3 files. For information about the machine learning algorithm which produces decision trees, see Inductive Dichotomiser 3 (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.
Versions
ID3 comes in several versions:
ID3v1
ID3v1 was the original de facto-standard. It was invented by Eric Kemp in 1996. and consisted of 128 bytes that were added at the end of the file, beginning with the string "TAG" so that a tag could be easily spotted by media players. Legacy players would occasionally react badly to such data injected into the MPEG stream, since it 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. |
Genres
The following genres are defined in ID3v1:
0.Blues 1.Classic Rock 2.Country 3.Dance 4.Disco 5.Funk 6.Grunge 7.Hip-Hop 8.Jazz 9.Metal 10.New Age 11.Oldies 12.Other 13.Pop 14.R&B 15.Rap 16.Reggae 17.Rock 18.Techno 19.Industrial 20.Alternative 21.Ska 22.Death Metal 23.Pranks 24.Soundtrack 25.Euro-Techno 26.Ambient 27.Trip-Hop 28.Vocal 29.Jazz+Funk 30.Fusion 31.Trance 32.Classical 33.Instrumental 34.Acid 35.House 36.Game 37.Sound Clip 38.Gospel 39.Noise 40.AlternRock 41.Bass 42.Soul 43.Punk 44.Space 45.Meditative 46.Instrumental Pop 47.Instrumental Rock 48.Ethnic 49.Gothic 50.Darkwave 51.Techno-Industrial 52.Electronic 53.Pop-Folk 54.Eurodance 55.Dream 56.Southern Rock 57.Comedy 58.Cult 59.Gangsta 60.Top 40 61.Christian Rap 62.Pop/Funk 63.Jungle 64.Native American 65.Cabaret 66.New Wave 67.Psychadelic 68.Rave 69.Showtunes 70.Trailer 71.Lo-Fi 72.Tribal 73.Acid Punk 74.Acid Jazz 75.Polka 76.Retro 77.Musical 78.Rock & Roll 79.Hard Rock
The following genres are Winamp extensions
80.Folk 81.Folk-Rock 82.National Folk 83.Swing 84.Fast Fusion 85.Bebob 86.Latin 87.Revival 88.Celtic 89.Bluegrass 90.Avantgarde 91.Gothic Rock 92.Progressive Rock 93.Psychedelic Rock 94.Symphonic Rock 95.Slow Rock 96.Big Band 97.Chorus 98.Easy Listening 99.Acoustic 100.Humour 101.Speech 102.Chanson 103.Opera 104.Chamber Music 105.Sonata 106.Symphony 107.Booty Bass 108.Primus 109.Porn Groove 110.Satire 111.Slow Jam 112.Club 113.Tango 114.Samba 115.Folklore 116.Ballad 117.Power Ballad 118.Rhythmic Soul 119.Freestyle 120.Duet 121.Punk Rock 122.Drum Solo 123.A capella 124.Euro-House 125.Dance Hall
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 "sync" header, 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.