ID3

From Wikipedia, the free encyclopedia
(Redirected from ID3v1)

ID3 is a metadata container most often used in conjunction with the MP3 audio file format. It allows information such as the title, artist, album, track number, and other information about the file to be stored in the file itself.

ID3 is a de facto standard for metadata in MP3 files; no standardization body was involved in its creation nor has such an organization given it a formal approval status.[1] It competes with the APE tag in this arena.

There are two unrelated versions of ID3: ID3v1 and ID3v2. In ID3v1 the metadata is stored in a 128-byte segment at the end of the file. There are variations of ID3v1 extending the specification with new fields such as v1.1's "track number" field at the expense of a slight shortening of the "comment" field.

ID3v2 is structurally very different from ID3v1, consisting of an extensible set of "frames" located at the start of the file. 83 types of frames are declared in the ID3v2.4 specification, and applications can also define their own types. There are standard frames for containing cover art, BPM, copyright and license, lyrics, and arbitrary text and URL data, as well as other things. Three versions of ID3v2 have been documented, each of which has extended the frame definitions.

Lyrics3v1[2] and Lyrics3v2[3] were tag standards implemented before ID3v2, for adding lyrics to mp3 files. The difference with ID3v2 is that Lyrics3 is always at the end of an MP3 file, before the ID3v1 tag.

ID3v1[edit]

ID3v1 Genres
Standard list
Number Genre
00 Blues
01 Classic rock
02 Country
03 Dance
04 Disco
05 Funk
06 Grunge
07 Hip-Hop
08 Jazz
09 Metal
10 New Age
11 Oldies
12 Other
13 Pop
14 Rhythm and Blues
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 Alternative Rock
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 US
65 Cabaret
66 New Wave
67 Psychedelic
68 Rave
69 Show tunes
70 Trailer
71 Lo-Fi
72 Tribal
73 Acid Punk
74 Acid Jazz
75 Polka
76 Retro
77 Musical
78 Rock 'n' Roll
79 Hard rock
Winamp Extended List
Number Genre
80 Folk
81 Folk-Rock
82 National Folk
83 Swing
84 Fast Fusion
85 Bebop
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 cappella
124 Euro-House
125 Dancehall
126 Goa
127 Drum & Bass
128 Club-House
129 Hardcore Techno
130 Terror
131 Indie
132 BritPop
133 Negerpunk
134 Polsk Punk
135 Beat
136 Christian Gangsta Rap
137 Heavy Metal
138 Black Metal
139 Crossover
140 Contemporary Christian
141 Christian rock
142 Merengue[note 1]
143 Salsa[note 1]
144 Thrash Metal[note 1]
145 Anime[note 1]
146 Jpop[note 1]
147 Synthpop[note 1]
148 Abstract[note 2]
149 Art Rock[note 2]
150 Baroque[note 2]
151 Bhangra[note 2]
152 Big beat[note 2]
153 Breakbeat[note 2]
154 Chillout[note 2]
155 Downtempo[note 2]
156 Dub[note 2]
157 EBM[note 2]
158 Eclectic[note 2]
159 Electro[note 2]
160 Electroclash[note 2]
161 Emo[note 2]
162 Experimental[note 2]
163 Garage[note 2]
164 Global[note 2]
165 IDM[note 2]
166 Illbient[note 2]
167 Industro-Goth[note 2]
168 Jam Band[note 2]
169 Krautrock[note 2]
170 Leftfield[note 2]
171 Lounge[note 2]
172 Math Rock[note 2]
173 New Romantic[note 2]
174 Nu-Breakz[note 2]
175 Post-Punk[note 2]
176 Post-Rock[note 2]
177 Psytrance[note 2]
178 Shoegaze[note 2]
179 Space Rock[note 2]
180 Trop Rock[note 2]
181 World Music[note 2]
182 Neoclassical[note 2]
183 Audiobook[note 2]
184 Audio theatre[note 2]
185 Neue Deutsche Welle[note 2]
186 Podcast[note 2]
187 Indie-Rock[note 2]
188 G-Funk[note 2]
189 Dubstep[note 2]
190 Garage Rock[note 2]
191 Psybient[note 2]

The MP3 standard did not include a method for storing file metadata. In 1996 Eric Kemp had the idea to add a small chunk of data to the audio file, thus solving the problem. The method, now known as ID3v1, quickly became the de facto standard for storing metadata in MP3s.[4]

The ID3v1 tag occupies 128 bytes, beginning with the string TAG 128 bytes from the end of the file. The tag was placed at the end of the file to maintain compatibility with older media players. If a player does not recognize the tag it would play a small burst of static instead of ignoring it. This tag allows 30 bytes each for the title, artist, album, and a "comment", four bytes for the year, and a byte to identify the genre of the song from a predefined list of 80 values (Winamp later extended this list to 148 values).[citation needed]

One improvement to ID3v1 was made by Michael Mutschler in 1997. Since the comment field was too small to write anything useful, he decided to trim it by two bytes and use those two bytes to store the track number. Such tags are referred to as ID3v1.1.[4]

ID3v1 and ID3v1.1[5][edit]

Strings are either space- or zero-padded. Unset string entries are filled using an empty string. ID3v1 is 128 bytes long.[note 3]

Field Length Description
header 3 "TAG"
title 30 30 characters of the title
artist 30 30 characters of the artist name
album 30 30 characters of the album name
year 4 A four-digit year
comment 28[note 4] or 30 The comment.
zero-byte[note 4] 1 If a track number is stored, this byte contains a binary 0.
track[note 4] 1 The number of the track on the album, or 0. Invalid, if previous byte is not a binary 0.
genre 1 Index in a list of genres, or 255

ID3v1 pre-defines a set of genres denoted by numerical codes. Winamp extended the list by adding more genres in its own music player, which were later adopted by others.[note 5] However, support for the extended Winamp list is not universal. In some cases, only the genres up to 125 are supported.[6][7]

Enhanced TAG[8][edit]

The Enhanced tag is an extra data block before an ID3v1 tag, which extends the title, artist and album fields to 60 bytes each, offers a freetext genre, a one-byte (values 0–5) speed and the start and stop time of the music in the MP3 file, e.g., for fading in. If none of the fields are used, it will be automatically omitted.

Some programs supporting ID3v1 tags can read the extended tag, but writing may leave stale values in the extended block. The extended block is not an official standard and had low adoption. The Enhanced tag is sometimes referred to as the "extended" tag.

The Enhanced tag is 227 bytes long, and placed before the ID3v1 tag.

Field Length Description
header 4 "TAG+"
title 60 60 characters of the title
artist 60 60 characters of the artist name
album 60 60 characters of the album name
speed 1 0: unset
1: slow
2: medium
3: fast
4: hardcore
genre 30 A free-text field for the genre
start-time 6 the start of the music as mmm:ss
end-time 6 the end of the music as mmm:ss

ID3v1.2[9][edit]

ID3v1.2 made small improvements to ID3v1.1 without breaking compatibility with it.[9]

ID3v2[edit]

Id3v2 logo.png

In 1998, a new specification called ID3v2 was created by multiple contributors.[10] Although it bears the name ID3, its structure is very different from ID3v1.

ID3v2 tags are of variable size, and usually occur at the start of the file, which aids streaming media as the metadata is essentially available as soon as the file starts streaming instead of requiring the entire file to be read first as is the case with ID3v1. ID3v2 tags consist of a number of frames, each of which contains a piece of metadata. For example, the TIT2 frame contains the title, and the WOAR frame contains the URL of the artist's website. Frames can be up to 16 MB in length, while total tag size is limited to 256MB. The internationalization problem was solved by allowing the encoding of strings not only in ISO-8859-1, but also in Unicode. Textual frames are marked with an encoding byte.[11]

There are 83 types of frames declared in the ID3v2.4 specification,[12] and applications can also define their own types. There are standard frames for containing cover art, BPM, copyright and license, lyrics, and arbitrary text and URL data, as well as other things.

There are three versions of ID3v2:

ID3v2.2 was the first public version of ID3v2. It used three character frame identifiers rather than four (TT2 for the title instead of TIT2). Most of the common v2.3 and v2.4 frames have direct analogues in v2.2. It is now considered obsolete.[13]

ID3v2.3 expanded the frame identifier to four characters, and added a number of frames. This is the most widely used version of ID3v2 tags, and is widely supported by Windows Explorer and Windows Media Player.[14]

ID3v2.4 was published on November 1, 2000. It allows text frames to contain multiple values, separated with a null byte. Textual data to be encoded in UTF-8 rather than UTF-16. Another new feature allows the addition of a tag to the end of the file before other tags (like ID3v1).[15]

ID3v2 chapters[edit]

The ID3v2 Chapter Addendum was published in December 2005. It allows users to jump easily to specific locations or chapters within an audio file and can provide a synchronized slide show of images and titles during playback. Typical use-cases include Enhanced podcasts and it can be used in ID3v2.3 or ID3v2.4 tags.[16]

ID3v2 embedded image extension[edit]

The metadata can contain an "Attached Picture" ID3 frame ('PIC' or 'APIC') containing an image. A field in this frame can indicate the picture type.[17]

Editing ID3 tags[edit]

ID3 tags may be edited in a variety of ways. On some platforms the file's properties may be edited by viewing extended information in the file manager. Additionally most audio players allow editing single or groups of files. Editing groups of files is often referred to as "batch tagging". There are also specialized applications, called taggers, which concentrate specifically on editing the tags and related tasks.

Non-MP3-implementation and alternatives[edit]

ID3 tags were designed with MP3 in mind, so they would work without problems with MP3 and MP3Pro files. However, the tagsets are an independent part of the MP3 file and can be used elsewhere. In practice, the only other formats that widely use ID3v2 tags are AIFF and WAV. In AIFF, the tag is stored inside an IFF chunk named "ID3". Windows media ASF files (WMA, WMV) have their own tagging formats but also support ID3 Tags embedded as attributes.[18]

MP4 also allows the embedding of an ID3 tag.[19]

See also[edit]

Notes[edit]

  1. ^ a b c d e f Genres 142–147 were added in the 1 June 1998 release of Winamp 1.91
  2. ^ a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar Genres 148–191 were added in Winamp 5.6 (30 November 2010)
  3. ^ For an implementation of ID3v1 in Python, see Dive Into Python, Chapter 5. Objects and Object-Orientation Archived 2013-08-31 at the Wayback Machine
  4. ^ a b c The track number is stored in the last two bytes of the comment field. If the comment is 29 or 30 characters long, no track number can be stored.
  5. ^ Some are of dubious value: e.g. "Primus" is one specific band, not a genre, and "Negerpunk" appears to be a racist joke in Swedish

References[edit]

  1. ^ "History – ID3.org". Archived from the original on 2010-12-24. Retrieved 2011-01-22.
  2. ^ "Lyrics3 – ID3.org". id3.org. Retrieved 2018-04-13.
  3. ^ "Lyrics3v2 – ID3.org". id3.org. Retrieved 2018-04-13.
  4. ^ a b Practical Common Lisp, p. 335.
  5. ^ "ID3v1 – ID3.org". id3.org. Retrieved 2018-04-12.
  6. ^ "ID3 Tag Genre ID List". Archived from the original on 15 March 2015.
  7. ^ "ID3 Genre List".
  8. ^ "MP3 TAG & Enhanced TAG description (english)". 2012-03-10. Archived from the original on 2012-03-10. Retrieved 2018-04-12.
  9. ^ a b "ID3v1.2".
  10. ^ "Contributors – ID3.org". Archived from the original on 2016-12-03. Retrieved 2012-04-22.
  11. ^ "id3v2-00 – ID3.org".
  12. ^ "ID3v2.4.0 Native Frames". Retrieved 2012-12-27.
  13. ^ Nilsson, Martin. "ID3 Developer Information". ID3.org. Retrieved 9 April 2011.
  14. ^ "ID3 tag version 2.3.0".
  15. ^ "ID3 tag version 2.4.0 – Native Frames".
  16. ^ Newell, C. (2 December 2005). "ID3v2 Chapter Frame Addendum". ID3.org. Retrieved 2008-02-06.{{cite web}}: CS1 maint: url-status (link)
  17. ^ "id3v2.3.0 – ID3.org".
  18. ^ "Windows Media Developer Center: ID3 Tag Support". Microsoft Developer Network. Microsoft. Retrieved 2010-03-24.
  19. ^ "The 'MP4' Registration Authority". Archived from the original on 2018-03-09. Retrieved 2007-10-18.

External links[edit]