メタデータなしで mp3file を抽出することは、自分で行うのはかなり簡単です。
ID3v1
メタデータは、ファイルの最後の 128 バイトです。メタデータは、存在する場合、常に 3 バイトの「TAG」で始まります。この最後の 128 バイトは無視してください。
ID3v2
メタデータは、ファイルの先頭または末尾に格納できます。ほとんどの実装は、最初だけをサポートしています。ID3v2 には、サイズが格納されるヘッダーがあります。ヘッダーは常にメタデータの先頭に配置されます。オプションのフッターがあります。これは、メタデータの末尾にあるヘッダーのコピーです。メタデータがファイルの最後にある場合は、フッターが必要です。
ヘッダーには次の形式があります
ID3v2/file identifier "ID3"
ID3v2 version $04 00
ID3v2 flags %abcd0000
ID3v2 size 4 * %0xxxxxxx
フッターには次の形式があります
ID3v2/file identifier "3DI"
ID3v2 version $04 00
ID3v2 flags %abcd0000
ID3v2 size 4 * %0xxxxxxx
d ビットは、フッターが存在するかどうかを示します。サイズはヘッダーとフッターを除いたサイズです。サイズのすべてのバイトには、常に最上位ビットが設定されています。したがって、実際の 32 ビットのうち 28 ビットのみがサイズを表します。
ファイルのどの部分がメタデータではないかを計算し、それをハッシュに使用します。
ID3v1 と ID3v2 の両方がファイルの末尾にある場合、ID3v1 は IDv2 の後ろにあることに注意してください。
仕様はhttp://www.id3.org/id3v2.4.0-structureにあります。