Как удалить тег Lyrics3 v2 из id3?

Я использую библиотеку taglib sharp, чтобы удалить все теги из моих песен с помощью команды

Track = TagLib.File.Create("C:\test\Super Trouper.mp3")
Track.RemoveTags(TagLib.TagTypes.AllTags)
Track.Save()
Track.Dispose()

К сожалению, .RemoveTags не удаляет тег Lyrics3 v2.0
(указано здесь: http://id3.org/Lyrics3v2).

Такой тег можно обнаружить с помощью такого инструмента, как "Mp3 Diags" ( http://mp3diags.sourceforge.net/)

Как я могу полностью удалить ВСЕ теги и ВСЕ кадры из моей песни?

Или как я могу удалить этот конкретный тег Lyrics3 v2?

1 ответ

Решение

К сожалению, TagLib# не поддерживает теги Lyrics3. В файле MP3 TagLib # обнаружит и сможет удалить только теги APE, Id3v1 и Id3v2.

После сохранения файла с тегами, удаленными TagLib#, вы можете сделать что-то вроде следующего с вашим собственным кодом:

  1. Откройте поток файлов.
  2. Найдите длину - 9, прочитайте 9 байтов и посмотрите, равны ли они LYRICS200 или же LYRICSEND, Если нет, закройте файл.
  3. Ищу обратно 11 байт.
  4. Чтение 11 байтов и проверка соответствия LYRICSBEGIN, Если это так, обрежьте файл в этой точке.
  5. Если нет, продолжайте искать обратно 1 байт и повторять шаг 4. Вероятно, сдаться после 10 КБ или около того.

Это не самая эффективная стратегия, но я предполагаю, что число файлов с этими тегами довольно мало, поэтому большинство должно остановиться после шага 2.

Другие вопросы по тегам