использование edeD3 для изменения кодировки mp3-тегов - PullRequest
1 голос
/ 06 мая 2011

Я нашел этот вопрос , который является моей точной отправной точкой: китайские метаданные в mp3-файлах.Я хочу перекодировать все мои метаданные как utf-8, чтобы Банши мог их прочитать.

Я не могу понять, как заставить eyeD3 сделать это.Я могу декодировать отдельные теги согласно предыдущей ссылке, но не могу заставить eyeD3 изменить фактическую кодировку текста самого mp3-файла, поэтому эти теги можно переписать в правильной кодировке.Я попытался прочитать все данные в переменные (ниже, 't' - правильно закодированный заголовок), затем вызвал:

tag.clear()
tag.update(eyeD3.ID3_V2_4)
tag.setTitle(t)

Это говорит мне: ValueError: ID3 vNone.None is not supported. Не то, что я ожидал.

Я пытался tag.setTextEncoding('utf-8'), но это говорит мне eyeD3.tag.TagException: Invalid encoding.Все остальные кодировки, которые я пытаюсь выдать, выдают то же сообщение об ошибке.

eyeD3.TAGS2_2_TO_TAGS_2_3_AND_4 выглядит многообещающе, но это словарь загадочных буквенных кодов, которые ничего не значат для меня.

Может кто-нибудь сказать мне, какизменить версию тегов на что-то, поддерживающее utf-8, затем изменить кодировку файла на utf-8 и записать метаданные обратно в?

Ответы [ 2 ]

0 голосов
/ 23 июля 2012

Эрик Абрахамсен понял, что настройка кодировки текста должна выглядеть как
tag.setTextEncoding(eyeD3.UTF_8_ENCODING) вместо
tag.setTextEncoding('utf-8').

0 голосов
/ 17 ноября 2011

Похоже, кто-то уже создал что-то, что делает это:

http://code.google.com/p/id3-to-unicode/

Это довольно просто в использовании.Просто скачайте последнюю версию скрипта с веб-сайта, убедитесь, что у вас установлены модули python eyeD3 и chardet (быстрый sudo apt-get install python-eyed3 python-chardet помог мне в ubuntu), и запустите скрипт с флагом -h, чтобы увидеть, какчтобы использовать его.

Моя единственная жалоба заключается в том, что сценарий предполагает, что ваша музыка организована как трек исполнителя / альбома / 01 name.mp3, и использует информацию о пути / файле для заполнения отсутствующих тегов.Я отключил это в последней версии (http://id3 -to-unicode.googlecode.com / files / id3_to_unicode_1.1.py ), комментируя строки 126-138.

...