ID3マジック ナンバー | ID3 (ID3v2の場合) |
---|
開発者 | Eric Kemp(ID3v1.0)、Michael Mutschler(ID3v1.1)、Martin Nilsson 他(ID3v2 系) |
---|
ウェブサイト | https://id3.org/ |
---|
ID3タグ(アイディースリータグ、ID3 tag)は、MP3ファイルの中に、アーティスト・作成年・曲名等の情報を書き込むための規格である。
ID3タグはMP3ファイルに元々組み込まれていた仕様ではなく、1996年に公開された「Studio3」というソフトウェアに組み込まれたのが始まりである。以後、様々なバージョンの規格が作られた。
ID3を追加したり、書き換えたりするソフトウェアはいくつか存在する。代表的な物はWinamp、SuperTagEditorシリーズ、mp3infp、Mp3tag等。
ID3はいくつかのバージョンが存在する。このうち、ID3v1はファイルの末尾に、ID3v2はファイルの先頭に書かれるため、同時に1つのファイルに含めることができる。
もっとも広く対応されている形式。サイズは128バイト固定で制限が厳しいため、多くの情報は記録できない。
文字列には日本語を使用することができるが、文字コードに関する定義がないため、プラットフォームをまたぐ際に互換性の面で問題が生じることがある。
ID3v1 形式
開始位置 |
長さ |
説明
|
0 |
3 |
“TAG” の識別子3文字
|
3 |
30 |
曲名文字列
|
33 |
30 |
アーティスト文字列
|
63 |
30 |
アルバム文字列
|
93 |
4 |
年文字列
|
97 |
30 |
コメント文字列
|
127 |
1 |
ジャンル番号
|
v1 のコメントを 2 バイト短縮し、トラック番号を記録できるようにした形式。
短縮した 2 バイトのうち、先の 1 バイトには必ず 0 (NULL) を格納し[1]、残りの 1 バイトにトラック番号を記録する。
仕様上、v1 形式で 29 バイト以上のコメントが入力されたファイルとの互換は完全には保てず、
トラック番号を記録して v1.1 形式に移行した時点でコメントの 29 、30 バイト目のデータが消失する。
ID3v1.1 形式
開始位置 |
長さ |
説明
|
0 |
3 |
“TAG” の識別子3文字
|
3 |
30 |
曲名文字列
|
33 |
30 |
アーティスト文字列
|
63 |
30 |
アルバム文字列
|
93 |
4 |
年文字列
|
97 |
28 |
コメント文字列
|
125 |
1 |
0 (NULL) が格納される[1]
|
126 |
1 |
トラック番号
|
127 |
1 |
ジャンル番号
|
80番以降はWinampで定義されたもの
ID3v1.1を拡張、改良した形式。ID3v1のネックだった字数制限がほぼ無くなり、Unicodeのサポートなど非常に便利になっている。しかし、タグを記録するときに増えるファイルサイズがID3v1より大きかったり、古いプレイヤーでは表示に対応していないものがある。
- 項目別のサイズ制限は16MB、全体のタグサイズ制限は256MBになった
- 記入できる項目の増加
- Unicodeのサポート
- 画像が含められる
現在、ID3v2には「ID3v2.2」「ID3v2.3」「ID3v2.4」の3つがある。仕様書[2]によれば、例えば「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」は、一部の改訂箇所に不同意があったり、ソフト・ハードウェア市場がなかなか対応を行おうとしないため、いまだ普及に至っていない、と説明されている[3]。
ID3v2タグはファイルの先頭に配置され、大まかに分けて、ID3v2ヘッダ、拡張ヘッダ、フレーム(複数)、パディング領域の4領域から構成され、この順に並んでいる。以下に各領域ごとの詳細を示す。v2.2はフレームIDが3桁であるなど一部異なる
計10バイト。サイズは各バイトの最上位ビットが無効であり、有効な値は28ビットとなる。
v2.2では圧縮方式が指定されていない為、圧縮されている場合データを読み取れない可能性がある。また、拡張ヘッダは存在しない。
オフセット |
長さ |
説明
|
0 |
3 |
“ID3” のマジックナンバー3文字
|
3 |
2 |
バージョン
|
5 |
1 |
フラグ
|
6 |
4 |
サイズ
|
ID3v2ヘッダのフラグ
オフセット |
下位からのビット位置 |
説明
|
0 |
7 |
非同期処理がされているか
|
6 |
タグが圧縮されているか(v2.2) 拡張ヘッダが存在するか(v2.3以降)
|
5 |
タグが試験的なものか(v2.3以降)
|
4 |
フッタが存在するか(v2.4)
|
3~0 |
未使用
|
拡張ヘッダ(v2.3)
オフセット |
長さ |
説明
|
0 |
4 |
この拡張ヘッダのサイズ
|
4 |
2 |
フラグ
|
6 |
4 |
パディング領域のサイズ
|
10 |
可変長 |
拡張ヘッダのデータ
|
拡張ヘッダのフラグ(v2.3)
オフセット |
下位からのビット位置 |
説明
|
0 |
7 |
CRCデータ有り
|
6~0 |
未使用
|
1 |
7~0 |
未使用
|
拡張ヘッダ(v2.4)
オフセット |
長さ |
説明
|
0 |
4 |
この拡張ヘッダのサイズ
|
4 |
1 |
フラグ長(常に1)
|
5 |
1 |
フラグ
|
6 |
可変長 |
拡張ヘッダのデータ
|
拡張ヘッダのフラグ(v2.4)
オフセット |
下位からのビット位置 |
説明
|
0 |
7 |
未使用
|
6 |
以前のタグを更新したものか
|
5 |
CRCデータ有り
|
4 |
タグデータに制限を加えるか
|
3~0 |
未使用
|
各フレーム(v2.2)
オフセット |
長さ |
記述
|
0 |
3 |
フレームID
|
3 |
3 |
フレームサイズ
|
6 |
可変長 |
フレームデータ
|
各フレーム(v2.3以降)
オフセット |
長さ |
記述
|
0 |
4 |
フレームID(種別1バイト+ネーム3バイト)
|
4 |
4 |
フレームサイズ
|
8 |
2 |
フラグ
|
10 |
可変長 |
フレームデータ
|
フレームのフラグ(v2.3)
オフセット |
下位からのビット位置 |
説明
|
0 |
7 |
タグを書き替えたときにフレームを保持するか
|
6 |
タグ以外の部分が書き替えられたときにフレームを保持するか
|
5 |
フレームが読み取り専用か
|
4~0 |
未使用
|
1 |
7 |
zlibで圧縮されているか
|
6 |
グループIDがあるか
|
5 |
暗号化されているか
|
4~0 |
未使用
|
フレームのフラグ(v2.4)
オフセット |
下位からのビット位置 |
説明
|
0 |
7 |
未使用
|
6 |
タグを書き替えたときにフレームを保持するか
|
5 |
タグ以外の部分が書き替えられたときにフレームを保持するか
|
4 |
フレームが読み取り専用か
|
3~0 |
未使用
|
1 |
7 |
未使用
|
6 |
グループIDがあるか
|
5~4 |
未使用
|
3 |
zlibで圧縮されているか
|
2 |
暗号化されているか
|
1 |
非同期処理されているか
|
0 |
データ長インジケーターがあるか
|
フレームID
ID
|
Description
|
Notes
|
AENC
|
CRA
|
Audio encryption
|
APIC
|
PIC
|
Attached picture
|
ASPI
|
|
Audio seek point index
|
v2.4で追加
|
COMM
|
COM
|
Comments
|
COMR
|
|
Commercial frame
|
|
CRM
|
Encrypted meta frame
|
ENCR
|
|
Encryption method registration
|
EQU2
|
|
Equalization
|
v2.4で追加
|
EQUA
|
EQU
|
Equalization
|
v2.4でEQU2に変更
|
ETCO
|
ETC
|
Event timing codes
|
GEOB
|
GEO
|
General encapsulated object
|
GRID
|
|
Group identification registration
|
IPLS
|
IPL
|
Involved people list
|
v2.4でTMCLとTIPLに変更
|
LINK
|
LNK
|
Linked information
|
MCDI
|
MCI
|
Music CD identifier
|
MLLT
|
MLL
|
MPEG location lookup table
|
OWNE
|
|
Ownership frame
|
PRIV
|
|
Private frame
|
PCNT
|
CNT
|
Play counter
|
POPM
|
POP
|
Popularimeter
|
POSS
|
|
Position synchronisation frame
|
RBUF
|
BUF
|
Recommended buffer size
|
RVA2
|
|
Relative volume adjustment
|
v2.4で追加
|
RVAD
|
RVA
|
Relative volume adjustment
|
v2.4でRVA2に変更
|
RVRB
|
REV
|
Reverb
|
SEEK
|
|
Seek frame
|
v2.4で追加
|
SIGN
|
|
Signature frame
|
v2.4で追加
|
SYLT
|
SLT
|
Synchronized lyric/text
|
SYTC
|
STC
|
Synchronized tempo codes
|
TALB
|
TAL
|
Album/Movie/Show title
|
TBPM
|
TBM
|
Beats per minute (BPM)
|
TCOM
|
TCM
|
Composer
|
TCON
|
TCO
|
Content type
|
TCOP
|
TCR
|
Copyright message
|
TDAT
|
TDA
|
Date
|
v2.4でTDRCに変更
|
TDEN
|
|
Encoding time
|
v2.4で追加
|
TDLY
|
TDY
|
Playlist delay
|
TDOR
|
|
Original release time
|
v2.4で追加
|
TDRC
|
|
Recording time
|
v2.4で追加
|
TDRL
|
|
Release time
|
v2.4で追加
|
TDTG
|
|
Tagging time
|
v2.4で追加
|
TENC
|
TEN
|
Encoded by
|
TEXT
|
TXT
|
Lyricist/Text writer
|
TFLT
|
TFT
|
File type
|
TIME
|
TIM
|
Time
|
v2.4でTDRCに変更
|
TIPL
|
|
Involved people list
|
v2.4で追加
|
TIT1
|
TT1
|
Content group description
|
TIT2
|
TT2
|
Title/songname/content description
|
TIT3
|
TT3
|
Subtitle/Description refinement
|
TKEY
|
TKE
|
Initial key
|
TLAN
|
TLA
|
Language(s)
|
TLEN
|
TLE
|
Length
|
TMCL
|
|
Musician credits list
|
v2.4で追加
|
TMED
|
TMT
|
Media type
|
TMOO
|
|
Mood
|
v2.4で追加
|
TOAL
|
TOT
|
Original album/movie/show title
|
TOFN
|
TOF
|
Original filename
|
TOLY
|
TOL
|
Original lyricist(s)/text writer(s)
|
TOPE
|
TOA
|
Original artist(s)/performer(s)
|
TORY
|
TOR
|
Original release year
|
v2.4でTDORに変更
|
TOWN
|
|
File owner/licensee
|
TPE1
|
TP1
|
Lead artist(s)/Lead performer(s)/Soloist(s)/Performing group
|
TPE2
|
TP2
|
Band/orchestra/accompaniment
|
TPE3
|
TP3
|
Conductor/performer refinement
|
TPE4
|
TP4
|
Interpreted, remixed, or otherwise modified by
|
TPOS
|
TPA
|
Part of a set
|
TPRO
|
|
Produced notice
|
v2.4で追加
|
TPUB
|
TPB
|
Publisher
|
TRCK
|
TRK
|
Track number/Position in set
|
TRDA
|
TRD
|
Recording dates
|
v2.4でTDRCに変更
|
TRSN
|
|
Internet radio station name
|
TRSO
|
|
Internet radio station owner
|
TSIZ
|
TSI
|
Size
|
v2.4で削除
|
TSOA
|
|
Album sort order
|
v2.4で追加
|
TSOP
|
|
Performer sort order
|
v2.4で追加
|
TSOT
|
|
Title sort order
|
v2.4で追加
|
TSRC
|
TRC
|
International Standard Recording Code (ISRC)
|
TSSE
|
TSS
|
Software/Hardware and settings used for encoding
|
TSST
|
|
Set subtitle
|
v2.4で追加
|
TYER
|
TYE
|
Year
|
v2.4でTDRCに変更
|
TXXX
|
TXX
|
User defined text information frame
|
UFID
|
UFI
|
Unique file identifier
|
USER
|
|
Terms of use
|
USLT
|
ULT
|
Unsynchronized lyric/text transcription
|
WCOM
|
WCM
|
Commercial information
|
WCOP
|
WCP
|
Copyright/Legal information
|
WOAF
|
WAF
|
Official audio file webpage
|
WOAR
|
WAR
|
Official artist/performer webpage
|
WOAS
|
WAS
|
Official audio source webpage
|
WORS
|
|
Official internet radio station homepage
|
WPAY
|
|
Payment
|
WPUB
|
WPB
|
Publishers official webpage
|
WXXX
|
WXX
|
User defined URL link frame
|
v2.4で追加された。フレーム領域の後ろ(パディング領域がある場合はその後ろ)に置かれる。マジックナンバー以外はヘッダと同じ。
オフセット |
長さ |
説明
|
0 |
3 |
“3DI” (マジックナンバー)
|
3 |
2 |
バージョン
|
5 |
1 |
フラグ
|
6 |
4 |
サイズ
|
- ^ a b v1 でコメントが最大文字数に満たない場合、
残りが 0 (NULL) になることを利用し、v1 にしか対応しないソフトウェアにそこでコメントが終わったと判断させ、
トラック番号の部分をコメントと認識しないようにするためのものである。
- ^ セクション3.1. ID3v2 header
- ^ ID3.orgのWelcomeの節