ID3タグ

ID3タグ（アイディースリータグ、"ID3 tag"）は、MP3ファイルの中に、アーティスト・作成年・曲名等の情報を書き込むための規格である。
概要.
ID3タグはMP3ファイルに元々組み込まれていた仕様ではなく、1996年に公開された「Studio3」というソフトウェアに組み込まれたのが始まりである。以後、様々なバージョンの規格が作られた。
ID3を追加したり、書き換えたりするソフトウェアはいくつか存在する。代表的な物はWinamp、SuperTagEditorシリーズ、mp3infp、Mp3tag等。
バージョン.
ID3はいくつかのバージョンが存在する。このうち、ID3v1はファイルの末尾に、ID3v2はファイルの先頭に書かれるため、同時に1つのファイルに含めることができる。
ID3v1.
もっとも広く対応されている形式。サイズは128バイト固定で制限が厳しいため、多くの情報は記録できない。
文字列には日本語を使用することができるが、文字コードに関する定義がないため、プラットフォームをまたぐ際に互換性の面で問題が生じることがある。
ID3v1.1.
v1 のコメントを 2 バイト短縮し、トラック番号を記録できるようにした形式。
短縮した 2 バイトのうち、先の 1 バイトには必ず 0 (NULL) を格納し、残りの 1 バイトにトラック番号を記録する。
仕様上、v1 形式で 29 バイト以上のコメントが入力されたファイルとの互換は完全には保てず、
トラック番号を記録して v1.1 形式に移行した時点でコメントの 29 、30 バイト目のデータが消失する。
ジャンル番号一覧.
80番以降はWinampで定義されたもの
ID3v2.
ID3v1.1を拡張、改良した形式。ID3v1のネックだった字数制限がほぼ無くなり、Unicodeのサポートなど非常に便利になっている。しかし、タグを記録するときに増えるファイルサイズがID3v1より大きかったり、古いプレイヤーでは表示に対応していないものがある。
バージョン番号.
現在、ID3v2には「ID3v2.2」「ID3v2.3」「ID3v2.4」の3つがある。仕様書によれば、例えば「ID3v2.3」というバージョン表記は、「ID3v2」という規格の「メジャーバージョン3」となる。決して「ID3」の「バージョン2.3」ではない。
前記仕様書によれば、メジャーバージョン間の前方互換性は保証されていない。そのため、例えば「ID3v2.3」をサポートするソフトウェアは「ID3v2.4」のタグ情報は読み込めない。この場合、サポートするメジャーバージョンより大きなバージョンのタグを読み込もうとする場合は、単純にタグ全体を読み飛ばすべきと記述されている。
各バージョン間の違いは、「ID3v2.2」から「ID3v2.3」に変更されたとき、フレームIDが3桁から4桁に増えた。このため、メジャーバージョン2と3ではフレームIDに互換性がなくなった。「ID3v2.3」から「ID3v2.4」に変更されたとき、メジャーバージョン4からは文字コードとしてUTF-8のサポートが追加された（これ以前のユニコード対応はUTF-16のみ）。
ID3タグを制定している組織「ID3.org」によれば、現在最も普及しているバージョンは「ID3v2.3」である。最新バージョンとなる「ID3v2.4」は、一部の改訂箇所に不同意があったり、ソフト・ハードウェア市場がなかなか対応を行おうとしないため、いまだ普及に至っていない、と説明されている。
仕様.
ID3v2タグはファイルの先頭に配置され、大まかに分けて、ID3v2ヘッダ、拡張ヘッダ、フレーム(複数)、パディング領域の4領域から構成され、この順に並んでいる。以下に各領域ごとの詳細を示す。v2.2はフレームIDが3桁であるなど一部異なる
ID3v2ヘッダ.
計10バイト。サイズは各バイトの最上位ビットが無効であり、有効な値は28ビットとなる。
v2.2では圧縮方式が指定されていない為、圧縮されている場合データを読み取れない可能性がある。また、拡張ヘッダは存在しない。
フッタ.
v2.4で追加された。フレーム領域の後ろ（パディング領域がある場合はその後ろ）に置かれる。マジックナンバー以外はヘッダと同じ。