-Музыка

 -Подписка по e-mail

 

 -Поиск по дневнику

Поиск сообщений в PaladinOfSky

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 25.02.2008
Записей: 258
Комментариев: 330
Написано: 1008

kaffeine, mp3 и Unicode

Дневник

Воскресенье, 13 Апреля 2008 г. 09:04 + в цитатник
В колонках играет - Breaking Benjamin - So Cold
Настроение сейчас - Ура-утреннее

Дело было так. Запускаю свой любимый медиа-плеер Kaffeine (который, если будет так жрать ресурсы скоро будет заменен на AmaroK), кидаю туда папку с альбомом "Изгой" многоуважаемой "Алисы" а подлый кофейный элемент мне вместо названия альбома/песни - кракозябры. Ну и закручинился я тогда. Конечно, после 2 лет использования Linux я на всякое насмотрелся и с некоторой вероятностью даже могу бегло читать эти самые кракозябры (не могу лишь KOI-8, отображенную как UTF-8), но заниматься этим постоянно, как говорят герои Зощенко, "скушно".
Вылазка в диалог настроек, а потом, что греха таить, и в конфигурационный файл не дала никаких полезных знаний и, тем более, возможностей отучить Kaffeine выражаться. Тогда был взят Великий Админский Бубен, и с ним на перевес владелец оного был отправлен по всем известному адресу - google.ru. После копания в выдаче по запросу "кодировка тегов" были обнаружены и прочитаны сотни комментариев к релизу Amarok за номером 1.4.9, который отчего-то перестал понимать русские теги. А выяснилось все быстро - товарищи разработчики посчитали перекодировку тегов (которая, судя по отзывам и работала-то криво) костылем и решили строго следовать стандарту. А по стандарту IDv3 в тегах должен применяться Unicode и только! Но тут конечно руку приложила M$ и с её нелегкого почина теги стали записываться в кодировке, соответствующей системной. Более того, WinAMP 5, Foobar2k и Windows a Player не умеют правильно отображать теги, записанные в UTF8, т.е. не соответствуют стандартам. Выход вроде бы был найден на тех же форумах - утилита EasyTAG. Я скачал и установил её (из исходников - дружно благодарим mandriva за скудность репозиториев), но эта, с позволения сказать, тварь мне испортила половину тегов моей любимой группы "Ария" неправильно распознав изначальную кодировку. Продолжать общение с EasyTAG я не захотел и вытянул из интернета скромный java-бинарник id3iconv-0.2.1.jar, написанный неким китайцем, у которого возникли аналогичные проблемы. Ну а т.к. Unicode - универсальная кодировка, то я вполне мог прикрутить его и к моей повозке. Синтаксис команды следующий:

java -jar id3iconv-0.2.1.jar -e <изначальная кодировка> <mp3-файлы>

Как вы уже догадались, работает из консоли. Зато быстро. Но тут такая проблемка, хоть и малая - у меня папка Music занимает 10ГБ и является полностью рассортированной по исполнителям и альбомам коллекцией, просто указать список файлов для перекодирования я не могу. Что же я сделал?
Вспомним, что shell в Linux считается практически скриптовым языком и я могу создавать сколь угодно сложные
Как вы
конструкции из команд. Например, я могу задать поиск всех mp3-файлов в нужной папке и перенаправить выдачу программы на вход той же самой id3iconv. Например, так

find /media/sda5/Music/ -name "*.mp3" >java -jar id3iconv-0.2.1.jar -e Cp1251

Но это не срабатывает - что-то там я с синтаксисом перемудрил. В итоге решение просто и элегантно: записываем список в файл и натравливаем на него id3iconv.

find /media/sda6/Music -name "*.mp3" > listmp3.txt

Теперь в файле listmp3.txt, куда мы перенаправили выдачу утилиты find, мы имеем список файлов с полными путями.
Дело за малым:

java -jar id3iconv-0.2.1.jar -e Cp1251 < listmp3.txt

И все. Кидаю любую папку из коллекции в Kaffeine - имею пристойные теги =)

 (682x439, 37Kb)

Метки:  

 Страницы: [1]