提取沒有它的元數據的mp3文件是相當容易完成的。
ID3v1
元數據是文件的最後128個字節。元數據始終以3個字節「TAG」開頭(如果存在)。只要忽略這最後的128字節。
ID3v2
元數據可以存儲在文件的開頭或結尾。大多數實現只支持開始。 ID3v2有一個存儲大小的標題。頭文件始終在元數據的開始處處理。有一個可選的頁腳,它是元數據結尾的標題副本。如果元數據位於文件末尾,則需要使用頁腳。
頭具有folloing形式
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位表示,wheter頁腳是存在的。尺寸的測量不包含頁眉和頁腳。大小的每個字節始終設置爲最高位。所以,只有28位的32位代表了這個大小。
只計算文件的哪部分不是元數據,並將其用於散列。
要知道,如果的ID3v1和ID3v2兩者都位於文件的末尾,ID3v1的位於後面IDV2
該規範可以在http://www.id3.org/id3v2.4.0-structure找到。