Извлечение mp3-файла без его метаданных довольно легко сделать самостоятельно.
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 говорит, где присутствует нижний колонтитул. Размер измеряется без верхнего и нижнего колонтитула. Каждый байт размера всегда имеет старший бит. Таким образом, только 28 из 32 битов соответствуют размеру.
Просто вычислите, какая часть файла не является метаданными, и используйте его для хеширования.
Помните, что если ID3v1 и ID3v2 находятся в конце файла, ID3v1 находится за IDv2
Спецификация может быть найдена в http://www.id3.org/id3v2.4.0-structure.