Как остановить автоматическое обновление мутаген версии ID3?

Когда я попытался встроить обложку альбома в MP3, mutagen обновил тег ID3 до версии 2.4, чего я не хочу, потому что в ID3v2.4 мой мобильный телефон (который работает под управлением Windows Phone 8) и мой компьютер не могут распознать теги.

Видимо, просто меняя mutagen.id3.version атрибут не работает: реальная версия не меняется.

3 ответа

Решение

К сожалению, вы не можете. Из документов:

Мутаген может писать только теги ID3v2.4...

Смотрите также:

В функции сохранения тегов есть опция "v2_version", показанная ниже.

import mutagen
audio=mutagen.File('1.mp3')
#audio.tags.update_to_v23()
audio.tags.save(v2_version=3)

Это также задокументировано в справке ()

help(audio.tags.save)

как показано ниже:

сохранить (самостоятельно, имя файла = нет, v1=1, v2_version=4, v23_sep='/')

Похоже, что написание тегов ID3v2.3 теперь поддерживается. Я вижу это в журнале изменений:

1.22 - 2013.09.08
 ...
 * ID3:
   * id3v2.3 writing support (#85)
   * Add iTunes podcast frames (TGID, TDES, WFED) (#141)
   * Updated id3v1 genre list
 ...

И это в документации:

update_to_v23()
    Convert older (and newer) tags into an ID3v2.3 tag.    
    This updates incompatible ID3v2 frames to ID3v2.3 ones. If you intend to save tags as ID3v2.3, you must call this function at some point.
    If you want to to go off spec and include some v2.4 frames in v2.3, remove them before calling this and add them back afterwards.

Мне пришлось заставить мою систему загрузить версию 1.22 с pip install 'mutagen>=1.22'; в противном случае мне досталась версия 1.21. Теперь мне кажется, что следующий код работает:

>>> audio = mutagen.File("path_to_your.mp3")
>>> type(audio)
<class 'mutagen.mp3.MP3'>
>>> audio.tags.update_to_v23()
Другие вопросы по тегам