понедельник, 11 мая 2009 г.

Перекодирование id3 тегов из cp1251

Ниже привожу способ решения проблемы с кодировкой тэгов. Взято ЗДЕСЬ. Там же в комментариях есть несколько иных вариантов решения проблемы.

Проблема знакома всем, в старых mp3 файлах (созданых еще во времена винды и winamp), id3 теги (название, исполнитель, ...) хранятся в кодировке cp1251, и ни где кроме windows нормально не отображаются.

Проблема как обычно не в плеерах, с ними все в порядке, а в самих mp3 файлах. Старый winamp (который был очень популярен раньше), не понимал id3v2 тегов, только id3v1. Но id3v1 по стандарту могут содержать только кодировку latin-1, а это только английские буквы. Ну и наши софтописатели не долго думая, пихали туда русские теги в кодировке cp1251, и "правильные" плееры их не отображали. Но уже 10 лет как существую id3v2, а в них информация хранится в юникоде, с русскими буквами проблем нет.
Для начала нам понадобится программа mid3iconv, в ubuntu просто поставим ее
Код:
sudo apt-get install python-mutagen

Теперь с помощью этой программы удалим id3v1 теги, и создадим id3v2, перекодируя по пути cp1251-utf8.
Код:
mid3iconv -e CP1251 -d bad.mp3

А теперь запустим ее на всю коллекцию mp3 музыки:
Код:
find /media/Music/ -iname "*.mp3" -print0 | xargs -0 mid3iconv -e CP1251 -d

где /media/Music/ - путь к папке с музыкой.
Не бойтесь, с правильными файлами или английскими тегами ничего не произойдет.


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

Комментариев нет: