ID3是一种metadata容器,多应用于MP3格式的音频文件中。它可以将相关的曲名、演唱者、专辑、音轨数等信息存储在MP3文件中,又称作“ID3Tags”。

ID3也被苹果公司指定为HTTP Live Streaming中的时间后设资料,在主要的传输流或单独的音频传输流中作为PID乘载。

ID3一般位于一个mp3文件的开头或末尾的若干字节内,附加了关于该mp3的歌手,标题,专辑名称,年代,风格等信息,该信息就被称为ID3信息。ID3信息分为两个版本,v1和v2版。其中: v1版的ID3在mp3文件的末尾128字节,以TAG三个字符开头,后面跟上歌曲信息。v1.1版将“评论”栏位缩短,增设“曲目”栏位。v2版则和v1版截然不同,其通常将一系列可扩展的资料框架(frames)储存在档案开头,而每一块资料框架都有当作辨识标签的、大小约3到4个位元组的字串,以及其所储存的资料。在最新的ID3v2.4版本中,总共宣告有83种资料框架,而使用者也可以自订属于自己的资料框架。目前总共有三种版本的ID3v2,其中每一版都有对资料框架的定义进行扩展。

ID3是mp3档案后设资料自然而然发展出来的事实标准;其成品并没有包含任何的实质规范,也没有任何组织给予其正式的批准或认证。其与APE tag在音乐档案的后设资料标签领域互相角逐。


ID3v1

MP3并未预设储存档案后设资料的方式。在1996年,埃里克·肯普(Eric Kemp)想要在音讯档案后方加入一小串资料,也因此解决了这个问题。这个方法就是现在的ID3v1,很快就变成了MP3档案储存后设资料的事实标准[1]。一个开发控制台游戏系统的地下组织“伤害控制论”(Damaged Cybernetics)宣布了格式。因为所有已开发的控制台ROM都没有任何的辨识资讯,所以他们创造了一个标签系统来让其更容易查找。埃里克和合作伙伴们将其带进MP3档案中。这种格式被应用在许多当时格式不明的档案当中。

ID3v1标签总共占据128个位元组,接在档案的末尾以维持档案在旧版的媒体播放器中的兼容性。有些播放器会在读取到这些标签时误认为音讯档而产生一些杂音,不过大部分的播放器和几乎全部的现代播放器都会正确地跳过标签。标签有30位元组用来储存标题、演唱者、专辑以及“评论”,4个位元组储存年分,以及一个位元组储存歌曲的艺术类型。预设有80种艺术类型,Winamp后来将其扩展到总共148种。

在1997年,迈克尔·迈克塞勒对ID3v1做了一些改进。因为评论栏位实在是小到不可能写出一些有用的东西,所以他干脆拿掉两个位元组来储存“曲目”。这种标签被称作ID3v1.1[1]

格式

字串由空格或零填充。未设置的选项会填入空字串。ID3v1总长为128个位元组[2]

区域 长度 描述
开头 3 TAG”,标签。
标题 30 歌曲标题,最多30个英文字元。
艺术家 30 作曲或演唱者的名字,最多30个英文字元。
专辑 30 专辑名称,最多30个英文字元。
年分 4 西元年分,四个数字。
评论 28[3]或30 就是评论。
零位元组[3] 1 如果有储存曲目,那么这个位元组会储存一个二进位的0。
曲目[3] 1 这首歌在该专辑中的曲目,或者为0。若前一个位元组非零,则此栏内容无效。
艺术类型 1 一系列艺术类型清单中的编号数,预设为255。

ID3v1预设了一系列的艺术类型,以数字作为索引。Winamp在自家的音乐播放器加入更多选项到该清单中,后来其他播放器也随之跟进;有一部份的值没有标准规范[4]。不过,并非全世界都支援Winamp的扩展清单。有时候,有些播放器只支援到125种艺术类型[5]

扩展标签

扩展标签(extended tag)是位于ID3v1标签前的额外资料区块,其将标题、艺术家与专辑栏位各自扩展到60个位元组长度,提供可自由输入文字的艺术类型栏位、一位元组大小的曲速(值为0到5)以及MP3档案的起始与结束时间。如果以上的区域都没有被使用,那么这个资料区块就会自动被省略。

有些支援ID3v1的程式也可以读到扩展标签,不过写入时可能会在扩展区块中留下过旧的值。扩展区块并非官方标准,而且只有少数程式支援,不包含XMMSWinamp。扩展标签有时也被称作“补强标签”(enhanced tag)。

扩展标签总长227个位元组,并且位于ID3v1标签之前。

区域 长度 描述
开头 4 TAG+”,代表其为扩展标签。
标题 60 歌曲标题,最多60个英文字元。
艺术家 60 作曲或演唱者的名字,最多60个英文字元。
专辑 60 专辑名称,最多60个英文字元。
曲速 1 0:未设置,1:慢板,2:中板,3:快板,4:极快
艺术类型 30 可自由输入文字的艺术类型区块。
开始时间 6 音乐开始的时间:mmm:ss
结束时间 6 音乐结束的时间:mmm:ss

艺术类型列表

编号 英文代码 中文维基百科 Winamp扩展
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 Oldies
12 Other
13 Pop 流行 (音乐类型)
14 R&B 节奏布鲁斯
15 Rap 饶舌
16 Reggae 雷鬼音乐
17 Rock 摇滚乐
18 Techno 铁克诺音乐
19 Industrial Industrial
20 Alternative 另类摇滚
21 Ska 斯卡曲风
22 Death Metal 死亡金属音乐
23 Pranks Pranks
24 Soundtrack 原声音乐
25 Euro-Techno Euro-Techno
26 Ambient 氛围音乐
27 Trip-Hop 神游舞曲
28 Vocal 声乐
29 Jazz+Funk 爵士乐+放克
30 Fusion 融合爵士乐
31 Trance 出神音乐
32 Classical 古典音乐
33 Instrumental 器乐
34 Acid Acid
35 House 浩室音乐
36 Game Game
37 Sound Clip 音效及声音片段
38 Gospel 福音音乐
39 Noise 噪音音乐
40 AlternRock AlternRock
41 Bass 电贝斯
42 Soul 灵魂乐
43 Punk 庞克文化
44 Space Space
45 Meditative 冥想音乐
46 Instrumental Pop Instrumental Pop
47 Instrumental Rock Instrumental Rock
48 Ethnic Ethnic
49 Gothic Gothic
50 Darkwave Darkwave
51 Techno-Industrial Techno-Industrial
52 Electronic 电子音乐
53 Pop-Folk Pop-Folk
54 Eurodance 欧陆舞曲
55 Dream Dream
56 Southern Rock Southern Rock
57 Comedy 喜剧
58 Cult Cult
59 Gangsta Gangsta
60 Top 40 Top 40
61 Christian Rap Christian Rap
62 Pop/Funk 流行 (音乐类型)/放克
63 Jungle 早期丛林舞曲
64 Native American Native American
65 Cabaret 卡巴莱
66 New Wave 新浪潮
67 Psychadelic Psychadelic
68 Rave 锐舞
69 Showtunes Showtunes
70 Trailer Trailer
71 Lo-Fi Lo-Fi
72 Tribal Tribal
73 Acid Punk Acid Punk
74 Acid Jazz 酸爵士
75 Polka 波尔卡
76 Retro Retro
77 Musical Musical
78 Rock & Roll 摇滚
79 Hard Rock 硬式摇滚
80 Folk 民俗音乐
81 Folk-Rock 民谣摇滚
82 National Folk National Folk
83 Swing Swing
84 Fast Fusion Fast Fusion
85 Bebob 咆勃爵士乐
86 Latin 拉丁舞
87 Revival Revival
88 Celtic 凯尔特音乐
89 Bluegrass 蓝草音乐
90 Avantgarde 前卫
91 Gothic Rock 哥德摇滚
92 Progressive Rock 前卫摇滚
93 Psychedelic Rock 迷幻摇滚
94 Symphonic Rock 前卫摇滚
95 Slow Rock Slow Rock
96 Big Band 大乐团
97 Chorus 副歌
98 Easy Listening Easy Listening
99 Acoustic 原音乐
100 Humour 幽默
101 Speech 语音
102 Chanson 香颂
103 Opera 歌剧
104 Chamber Music 室内乐
105 Sonata 奏鸣曲
106 Symphony 交响曲
107 Booty Bass Booty Bass
108 Primus 讽刺
109 Porn Groove Porn Groove
110 Satire Satire
111 Slow Jam Slow Jam
112 Club 电子舞曲
113 Tango 探戈
114 Samba 桑巴
115 Folklore 民俗学
116 Ballad 谣曲
117 Power Ballad Power Ballad
118 Rhythmic Soul Rhythmic Soul
119 Freestyle Freestyle
120 Duet Duet
121 Punk Rock 朋克摇滚
122 Drum Solo Drum Solo
123 A capella 无伴奏合唱
124 Euro-House 浩室音乐
125 Dance Hall Dance Hall

ID3v2

1998年,一个由许多贡献者创造、被称作ID3v2的新规范问世[6]。虽然继承了ID3的名字,但其结构与ID3v1大相迳庭。

ID3v2标签有各种不同的大小,而且经常位于档案开头,以运用于串流媒体中。举例来说,TIT2资料框架包含标题,而WOAR资料框架则包含该艺术家的网站URL连结。资料框架最大可达16MB,不过标签总大小上限为256MB。标签也不再局限于西欧编码,而支援Unicode,解决了国际化的问题。

文字框架会由一个编码位元组标记,以得知其是由哪种编码存入的[7]

$00 – ISO-8859-1 (LATIN-1, Identical to ASCII for values smaller than 0x80).
$01 – UCS-2 (UTF-16 encoded Unicode with BOM), in ID3v2.2 and ID3v2.3.
$02 – UTF-16BE encoded Unicode without BOM, in ID3v2.4.
$03 – UTF-8 encoded Unicode, in ID3v2.4.

不过,在使用地区编码而非统一码的时候,还是很容易出现乱码。特别是有些使用Shift JIS编码的日文编辑者经常造成一些灾难性的后果:因为并非标准支援,所以不管地区设定为何,都无法运用于任何符合标准的软体;因为日本以外的地区几乎不支援Shift JIS,所以也无法在日本以外的地区使用;甚至连日本境内也并非通用,因为其取决于软体与设置。

在最新版ID3v2.4,总共宣告了83种资料框架[8],而使用者也可以自订属于自己的资料框架。标准的资料框架有量测音乐速度、版权、歌词、任意文字和URL数据等等。ID3v2总共有三种版本:

ID3v2.2
v2.2是ID3v2的第一个公开版本。他使用3个字元作为资料框架识别码,而非4个(举例来说,其使用TT2而非T1T2)。v2.3和v2.4中大多数的资料框架都在v2.2中有著相似的框架。这个标准已经被认为过时[9]
ID3v2.3
v2.3将资料框架识别码扩展到4个字元,并且加入了一些新的资料框架。一个框架可以包含复数值,由空字符分隔。这是目前最广泛使用的ID3v2标签[10]
ID3v2.4
v2.4出版于2000年11月1日,至今仍是最新的版本。其允许文字资料以UTF-8写入。另外一项新功能是可以选择是否在档案末端、其他标签前面加入标签,就像ID3v1那样[11]
没有任何版本的Windows档案总管Windows Media Player──甚至是最新的Windows 10WMP 12──都无法正确的解读ID3v2.4标签,不过依然能解读v2.3或是更早的版本[12][13]

评分标签的争议

对于歌曲的评分,有一个宽松的事实标准。大多数应用程式会替所有歌曲展示0到5颗星的评分,而星数会以何种形式展示则各有不同。举例来说,当你在iTunes替歌曲评分的时候,评分并不会嵌入那个音乐档案的标签里,而是会储存在iTunes自己的后设资料数据库中。其他的媒体播放器可以嵌入标签,但方法不一定相同,所以在一个媒体播放器评分的音乐不一定会在其他的播放器以相同的形式展示。

不过,在新版的ID3v2中有一个“Popularimeter”资料框架用来解决这个问题。这个资料框架的识别码是POPM,而Windows档案总管、WMP、Winampfoobar2000MediaMonkey以及其他软体都将0-255这范围内的值大致相同地分为0-5星展示。

以Windows档案总管读写POPM资料框架的标准为例:

星数 读取 写入
5 224-225 255
4 160-223 196
3 96-159 128
2 32-95 64
1 1-31 1
0 0 0

语法则为:

Windows Media Player 9 Series | 255 | 0

其中0是POPM的计数器部分,不要与PCNT资料框架的播放次数混淆。不过如果有应用程式支援粒度,一颗星的话会写入1,而2到31则会是一颗星之下的粒度点。值得一提的是,Windows所使用的ID字串并非规范所要求的电子邮件地址。而且,直到Windows 7和WMP 12的Windows档案总管和WMP都有一个漏洞是:如果你使用以上软体替音乐评分的话,任何有关回放增益的标签都会损坏[来源请求]。WMP也以上述方式读写相同的值,除了4到5星之间有著些微莫名的不同。WMP使用221和222来区隔4、5星,理由不明页面存档备份,存于互联网档案馆)。

ID3v2章节

ID3v2章节补遗(ID3v2 Chapter Addendum)出版于2005年12月,不过至今尚未被广泛支援。它让使用者们可以简单地跳到音讯档案中特定的地点或乐章,并且可以在播放期间提供同步的图片与文字的幻灯片。典型的应用程式包括补强播客,而且其可用于v2.3或v2.4标签中[14]

ID3v2嵌入图片

后设资料可以包含以下类型的图片[15]

$00     其他
$01     32x32 pixels 'file icon' (PNG only)
$02     Other file icon
$03     Cover (front)
$04     Cover (back)
$05     Leaflet page
$06     Media (e.g. label side of CD)
$07     Lead artist/lead performer/soloist
$08     Artist/performer
$09     Conductor
$0A     Band/Orchestra
$0B     Composer
$0C     Lyricist/text writer
$0D     Recording Location
$0E     During recording
$0F     During performance
$10     Movie/video screen capture
$11     A bright coloured fish
$12     Illustration
$13     Band/artist logotype
$14     Publisher/Studio logotype

ID3v2资料框架规范

英文描述 中文描述 资料框架
v2.3 v2.4
Audio encryption 音频加密 AENC
Audio seek point index 音频搜索点索引 不适用 ASPI
Attached picture 附图 APIC
Comments 评论 COMM
Commercial frame 商业用资料框架 COMR
Encryption method registration 加密方式注册 ENCR
Equalization 等化 EQUA EQU2
Event timing codes 事件时间代码 ETCO
General encapsulated object 一般封装物件 GEOB
Group identification registration 组织识别注册 GRID
Involved people list 相关人员列表 IPLS TIPLa
Linked information 连结资讯 LINK
Music CD identifier 音乐光碟识别码 MCDI
MPEG location lookup table MPEG位置查询表 MLLT
Ownership frame 所有权 OWNE
Private frame 隐私权 PRIV
Play counter 播放次数 PCNT
Popularimeter 评等 POPM
Position synchronisation frame 位置同步 POSS
Recommended buffer size 推荐缓冲区大小 RBUF
Relative volume adjustment 相对音量调整 RVAD RVA2
Reverb 混响 RVRB
Seek frame 搜寻用 不适用 SEEK
Signature frame 签名用 不适用 SIGN
Synchronized lyric/text 同步歌词、文字 SYLT
Synchronized tempo codes 同步节拍代码 SYTC
Album/Movie/Show title 专辑/电影/节目标题 TALB
Beats per minute (BPM) 量度音乐速度 TBPM
Composer 作曲者 TCOMc
Content type 内容类型 TCON
Copyright message 版权信息 TCOP
Date 日期 TDAT TDRCb
Encoding time 编码时间 不适用 TDEN
Playlist delay 播放清单中的间隔时间 TDLY
Recording time 音讯纪录时间 不适用 TDRCb
Release time 音讯发行时间 不适用 TDRL
Tagging time 音讯被标记时间 不适用 TDTG
Encoded by 编码者 TENC
Lyricist/Text writer 作词者 TEXTc
File type 档案类型 TFLT
Time 包含记录用的时间 TIME TDRCb
Content group description 群组描述 TIT1
Title/songname/content description 标题 TIT2
Subtitle/Description refinement 字幕 TIT3
Initial key 初始调 TKEY
Language(s) 语言 TLAN
Length 长度 TLEN
Musician credits list 音乐家与乐器对照 不适用 TMCLa
Media type 属性 TMED
Mood 情境 不适用 TMOO
Original album/movie/show title 原始标题 TOAL
Original filename 原始档案名称 TOFN
Original lyricist(s)/text writer(s) 原始作词者 TOLYc
Original artist(s)/performer(s) 原始演唱者 TOPEc
Original release year 年分 TORY TDOR
File owner/licensee 著作权 TOWN
Lead performer(s)/Soloist(s) 指挥 TPE1c
Band/orchestra/accompaniment 乐团/乐队/伴奏 TPE2
Conductor/performer refinement 详细参与演出者 TPE3
Interpreted, remixed, or otherwise modified by 后制 TPE4
Part of a set Part of a set TPOS
Produced notice Produced notice 不适用 TPRO
Publisher 发行者 TPUB
Track number/Position in set 曲目 TRCK
Recording dates 建立日期 TRDA TDRCb
Internet radio station name Internet radio station name TRSN
Internet radio station owner Internet radio station owner TRSO
Size 大小 TSIZ 抛弃
Album sort order 依专辑排序 不适用 TSOA
Performer sort order 依演出者排序 不适用 TSOP
Title sort order 依标题排序 不适用 TSOT
International Standard Recording Code (ISRC) 国际标准音像制品编码 TSRC
Software/Hardware and settings used for encoding 编码环境设置 TSSE
Set subtitle 设置字幕 不适用 TSST
Year 年分 TYER TDRCb
User defined text information frame 自订文字 TXXX
Unique file identifier 档案识别码 UFID
Terms of use 使用条款 USER
Unsynchronized lyric/text transcription 非同步歌词转录 USLT
Commercial information 商业资讯 WCOM
Copyright/Legal information 版权资讯 WCOP
Official audio file webpage 官方音讯档案网站 WOAF
Official artist/performer webpage 作者URL WOAR
Official audio source webpage 官方音源URL WOAS
Official internet radio station homepage Official internet radio station homepage WORS
Payment 付费URL WPAY
Publishers official webpage 发行者官网 WPUB
User defined URL link frame 自定义URL WXXX

注意:

  1. IPLS of ID3v2.3 maps both to TIPL (the "involved people list") and to TMCL (the "musician credits list").
  2. TDRC (recording time) consolidates TDAT (date), TIME (time), TRDA (recording dates), and TYER (year).
  3. TCOM, TEXT, TOLY, TOPE, and TPE1 can contain multiple values separated by a foreslash ("/").[来源请求]


Version 2.4 of the specification prescribes that all text fields (the fields that start with a T, except for TXXX) can contain multiple values separated by a null character. The null character varies by character encoding.

注释

  1. ^ 1.0 1.1 Practical Common Lisp页面存档备份,存于互联网档案馆), p. 335.
  2. ^ 关于ID3v1在Python中的应用,请看Dive Into Python, Chapter 5. Objects and Object-Orientation页面存档备份,存于互联网档案馆
  3. ^ 3.0 3.1 3.2 曲目会储存在评论区的最后两个位元组中。如果评论有29或30个字元那么长,就无法储存曲目。
  4. ^ “Primus”是单一乐团而非艺术类型,而“Negerpunk”似乎是瑞典的种族歧视笑话
  5. ^ Genre List from ID3v1. [2016-11-13]. (原始内容存档于2015-11-21). 
  6. ^ Contributors - ID3.org. [2016-11-13]. (原始内容存档于2016-12-03). 
  7. ^ id3v2-00 - ID3.org. [2016-11-13]. (原始内容存档于2016-11-24). 
  8. ^ ID3v2.4.0 Native Frames. [2012-12-27]. (原始内容存档于2012-12-21). 
  9. ^ Nilsson, Martin. ID3 Developer Information. ID3.org. [9 April 2011]. (原始内容存档于2012-08-26). 
  10. ^ ID3 tag version 2.3.0. [2016-11-13]. (原始内容存档于2016-11-17). 
  11. ^ ID3 tag version 2.4.0 - Native Frames. [2016-11-13]. (原始内容存档于2016-10-28). 
  12. ^ Bright, Peter. Music and Video in Windows 8: a work in progress. arstechnica.com. 28 October 2012 [2012-10-29]. (原始内容存档于2012-10-30). 
  13. ^ Microsoft support community. 11 January 2011 [2016-11-13]. (原始内容存档于2014-07-12). 
  14. ^ Newell, C. ID3v2 Chapter Frame Addendum. ID3.org. 2 December 2005 [2008-02-06]. (原始内容存档于2012-03-15). 
  15. ^ id3v2.3.0 - ID3.org. [2016-11-13]. (原始内容存档于2015-11-21). 

参见

外部链接