Изменить теги ID3 Python 2.7

Привет, я пытался сделать что-то, что массово меняет теги ID3, и Мутаген показался мне подходящим способом, но я не могу понять, почему теги остаются на месте. Я не получаю ошибок, он просто не сохраняет детали, когда я открываю свойства в файле MP3.

def changetags(path, albumart, album, title, artist):
    mp3file = mp3.MP3(path)

    tagged = mp3file.add_tags()

    tagged.add(id3.TIT2(encoding=3, text=title))
    tagged.add(id3.TALB(encoding=3, text=album))
    tagged.add(id3.TPE1(encoding=3, text=artist))
    if albumart != None:
        tagged.add(id3.APIC(encoding=3, mime='image/png', type=3, desc=u'Cover', data=urllib.urlopen(albumart)))
    tagged.save()

С уважением, Ауди.


person littleblacka    schedule 09.02.2016    source источник
comment
Если под свойствами вы подразумеваете диалоговое окно «Свойства проводника Windows», то это связано с тем, что Windows читает только теги ID3v2.3, а Mutagen записывает теги ID3v2.4. См. stackoverflow.com/questions/ 40972762/   -  person Michael Urman    schedule 01.09.2017


Ответы (1)


Когда я это делаю, я получаю сообщение об ошибке, потому что tagged равно None. И это то, что я ожидал, потому что метод add_tags() ничего не возвращает. Я думаю, вы хотите что-то большее, например:

mp3file.add_tags()
mp3file.add(id3.TIT2(encoding=3, text=title))
...
mp3file.save()

Это файловый объект (или фактически егоtags объект), который вы хотите изменить и сохранить.

В качестве альтернативы вы можете просто создать пустой объект ID3, а затем сохранить его по указанному пути.

С другой стороны, вам может показаться, что класс EasyID3 проще в использовании, особенно если вы думаете о просмотре тегов в файлах любого другого типа, кроме MP3.

person strubbly    schedule 21.02.2016