Python - добавить теги ID3 в mp3-файл без тегов.

Я получаю много подкастов, в которых нет тегов ID3. Я пробовал ряд инструментов, которые можно использовать для циклического просмотра каталогов и добавления информации о названии и исполнителе в теги ID3, но они не работают. Я пробовал ID3, eyed3 и мутаген. В большинстве случаев, если файл не имеет тега ID3, эти модули не работают.

Может ли кто-нибудь порекомендовать хорошую библиотеку редактора тегов ID3, которая будет работать через циклы? Что еще мне нужно знать о редактировании / добавлении тегов ID3, когда они на 100% пусты? Становится неприятно пытаться использовать библиотеку за библиотекой только для того, чтобы обнаружить, что проблема остается.

Спасибо.


person Tensigh    schedule 21.08.2013    source источник


Ответы (1)


Мутаген прекрасно справляется с этим:

>>> import mutagen
>>> from mutagen.easyid3 import EasyID3
>>> filePath = "8049.mp3"

>>> try:
>>>    meta = EasyID3(filePath)
>>> except mutagen.id3.ID3NoHeaderError:
>>>    meta = mutagen.File(filePath, easy=True)
>>>    meta.add_tags()
>>> meta
{}
>>> type(meta)
<class 'mutagen.easyid3.EasyID3'>
>>> meta['title'] = "This is a title"
>>> meta['artist'] = "Artist Name"
>>> meta['genre'] = "Space Funk"
>>> meta.save(filePath, v1=2)
>>> changed = EasyID3("8049.mp3")
>>> changed
{'genre': [u'Space Funk'], 'title': [u'This is a title'], 'artist': [u'Artist Name']}
person bgporter    schedule 22.08.2013
comment
Я попробую это; когда я сложил их в петлю, с первого раза не получилось. - person Tensigh; 22.08.2013
comment
Извините, я нажимаю return, и он публикует комментарии. Когда я сделал первую строку, meta = EasyID3 (файл), она говорит: mutagen.id3.ID3NoHeaderError: 'musicfile.mp3' не начинается с тега ID3 - person Tensigh; 22.08.2013
comment
Да, мне нужно было прочитать FAQ. Имейте в виду, что я работал над этим проектом около 3 дней подряд, так что уровень чтения снижается по мере роста разочарования. Хорошо, теперь я могу читать / создавать теги ID3 с помощью мутагена. Теперь есть только одна проблема; теги ID3 невидимы в проводнике Windows. Я видел, что могу использовать v1 = 2 или что-то еще при сохранении, но они все еще невидимы. Какие-нибудь подсказки? - person Tensigh; 22.08.2013
comment
Код выше не работает. Когда я вставляю оператор try / exception, я получаю следующее: Traceback (последний вызов последний): File ‹stdin›, строка 3, в ‹module› NameError: имя 'mutagen' не определено И да, я ДЕЙСТВИТЕЛЬНО сделал импортная линия. - person Tensigh; 22.08.2013
comment
Извините, я только что переделал, используя импорт мутагена * - person Tensigh; 22.08.2013
comment
Большое спасибо. Я просто заставил все работать. Я изменил meta.save () на meta.save (путь к файлу, v1 = 2) и получил нужный мне результат. Большое спасибо. Документация Mutagen не так хороша, поэтому ваша помощь здесь очень ценится. Если бы вы были в Токио, я бы купил вам пива! - person Tensigh; 22.08.2013
comment
Мне нужно было добавить мутаген импорта, чтобы исключение работало. - person SabreWolfy; 22.10.2014