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

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

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


person prehawk    schedule 15.08.2013    source источник


Ответы (3)


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

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

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

person Zero Piraeus    schedule 15.08.2013
comment
ой! Это жалко мутагена или моего мобильника? Я должен был проверить документы более тщательно. В любом случае, спасибо за ответ. - person prehawk; 16.08.2013

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

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

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

help(audio.tags.save)

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

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

person cdarlint    schedule 20.09.2014
comment
Это спасло жизнь, позволив моим тегам правильно обновляться в Windows 7. Это должен быть принятый ответ. Спасибо! - person Mark Ransom; 04.08.2016

Похоже, запись тегов 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()
person kuzzooroo    schedule 08.03.2014