Оригинал сообщенияДело было так. Запускаю свой любимый медиа-плеер 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]
[показать]LIci WP - WordPress crossposting plugin