ID3

ID3是一种metadata容器，多应用于MP3格式的音频文件中。它可以将相关的曲名、演唱者、专辑、音轨数等信息存储在MP3文件中，又称作「ID3Tags」。
ID3也被苹果公司指定为HTTP Live Streaming中的时间后设资料，在主要的传输流或单独的音频传输流中作为packet Identifier乘载。
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档案储存后设资料的事实标准。一个开发控制台游戏系统的地下组织「伤害控制论」（Damaged Cybernetics）宣布了格式。因为所有已开发的控制台ROM都没有任何的辨识资讯，所以他们创造了一个标签系统来让其更容易查找。埃里克和合作伙伴们将其带进MP3档案中。这种格式被应用在许多当时格式不明的档案当中。
ID3v1标签总共占据128个位元组，接在档案的末尾以维持档案在旧版的媒体播放器中的兼容性。有些播放器会在读取到这些标签时误认为音讯档而产生一些杂音，不过大部分的播放器和几乎全部的现代播放器都会正确地跳过标签。标签有30位元组用来储存标题、演唱者、专辑以及「评论」，4个位元组储存年分，以及一个位元组储存歌曲的艺术类型。预设有80种艺术类型，Winamp后来将其扩展到总共148种。
在1997年，迈克尔·迈克塞勒对ID3v1做了一些改进。因为评论栏位实在是小到不可能写出一些有用的东西，所以他干脆拿掉两个位元组来储存「曲目」。这种标签被称作ID3v1.1。

**格式**
字串由空格或零填充。未设置的选项会填入空字串。ID3v1总长为128个位元组。
ID3v1预设了一系列的艺术类型，以数字作为索引。Winamp在自家的音乐播放器加入更多选项到该清单中，后来其他播放器也随之跟进；有一部份的值没有标准规范。不过，并非全世界都支援Winamp的扩展清单。有时候，有些播放器只支援到125种艺术类型。

**扩展标签**
扩展标签（extended tag）是位于ID3v1标签前的额外资料区块，其将标题、艺术家与专辑栏位各自扩展到60个位元组长度，提供可自由输入文字的艺术类型栏位、一位元组大小的曲速（值为0到5）以及MP3档案的起始与结束时间。如果以上的区域都没有被使用，那么这个资料区块就会自动被省略。
有些支援ID3v1的程式也可以读到扩展标签，不过写入时可能会在扩展区块中留下过旧的值。扩展区块并非官方标准，而且只有少数程式支援，不包含XMMS或Winamp。扩展标签有时也被称作「补强标签」（enhanced tag）。
扩展标签总长227个位元组，并且位于ID3v1标签之前。

**艺术类型列表**

**ID3v2**
1998年，一个由许多贡献者创造、被称作ID3v2的新规范问世。虽然继承了ID3的名字，但其结构与ID3v1大相迳庭。
ID3v2标签有各种不同的大小，而且经常位于档案开头，以运用于串流媒体中。举例来说，TIT2资料框架包含标题，而WOAR资料框架则包含该艺术家的网站URL连结。资料框架最大可达16MB，不过标签总大小上限为256MB。标签也不再局限于西欧编码，而支援Unicode，解决了国际化的问题。
文字框架会由一个编码位元组标记，以得知其是由哪种编码存入的。
$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种资料框架，而使用者也可以自订属于自己的资料框架。标准的资料框架有量测音乐速度、版权、歌词、任意文字和URL数据等等。ID3v2总共有三种版本：
ID3v2.2
v2.2是ID3v2的第一个公开版本。他使用3个字元作为资料框架识别码，而非4个（举例来说，其使用TT2而非T1T2）。v2.3和v2.4中大多数的资料框架都在v2.2中有着相似的框架。这个标准已经被认为过时。
ID3v2.3
v2.3将资料框架识别码扩展到4个字元，并且加入了一些新的资料框架。一个框架可以包含复数值，由空字符分隔。这是目前最广泛使用的ID3v2标签。
ID3v2.4
v2.4出版于2000年11月1日，至今仍是最新的版本。其允许文字资料以UTF-8写入。另外一项新功能是可以选择是否在档案末端、其他标签前面加入标签，就像ID3v1那样。
没有任何版本的Windows档案总管和Windows Media Player──甚至是最新的Windows 10和Windows Media Player 12──都无法正确的解读ID3v2.4标签，不过依然能解读v2.3或是更早的版本。

**评分标签的争议**
对于歌曲的评分，有一个宽松的事实标准。大多数应用程式会替所有歌曲展示0到5颗星的评分，而星数会以何种形式展示则各有不同。举例来说，当你在iTunes替歌曲评分的时候，评分并不会嵌入那个音乐档案的标签里，而是会储存在iTunes自己的后设资料数据库中。其他的媒体播放器可以嵌入标签，但方法不一定相同，所以在一个媒体播放器评分的音乐不一定会在其他的播放器以相同的形式展示。
不过，在新版的ID3v2中有一个「 Popularimeter」资料框架用来解决这个问题。这个资料框架的识别码是POPM，而Windows档案总管、WMP、Winamp、foobar2000、MediaMonkey以及其他软体都将0-255这范围内的值大致相同地分为0-5星展示。
以Windows档案总管读写POPM资料框架的标准为例：
语法则为：
Windows Media Player 9 Series | 255 | 0
其中0是POPM的计数器部分，不要与PCNT资料框架的播放次数混淆。不过如果有应用程式支援粒度，一颗星的话会写入1，而2到31则会是一颗星之下的粒度点。值得一提的是，Windows所使用的ID字串并非规范所要求的电子邮件地址。而且，直到Windows 7和WMP 12的Windows档案总管和WMP都有一个漏洞是：如果你使用以上软体替音乐评分的话，任何有关回放增益的标签都会损坏date=February 2014。WMP也以上述方式读写相同的值，除了4到5星之间有着些微莫名的不同。WMP使用221和222来区隔4、5星， 理由不明date=20170623145245 。

**ID3v2章节**
ID3v2章节补遗（ID3v2 Chapter Addendum）出版于2005年12月，不过至今尚未被广泛支援。它让使用者们可以简单地跳到音讯档案中特定的地点或乐章，并且可以在播放期间提供同步的图片与文字的-{zh:投影片;zh-hans:幻灯片;zh-hant:投影片;zh-cn:幻灯片;zh-tw:投影片;}-。典型的应用程式包括补强播客，而且其可用于v2.3或v2.4标签中。

**ID3v2嵌入图片**
后设资料可以包含以下类型的图片：
$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资料框架规范**
注意：
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.

**注释**

**参见**
MP3
*APEv2
*Mp3tag

**外部链接**
 ID3官方网站（英文）