karapuz 31.03.2009 07:21

How-to`sAmarok и русские буквы

Многие сталкивались с проблемой отображения кириллических тегов в Amarok. В этой статье я опишу два наиболее подходящих на мой взгляд способа решения этой проблемы.



Корень проблемы



Скажу сразу, Amarok тут не при чем. Дело в том, что большинство музыки, которую вы добываете на торрентах, покупаете на дисках и пр. содержит теги в кодировке cp1251. Это кодировка принята по умолчанию для отображения кириллицы в Windows. Данный подход давно устарел и все Linux дистрибутивы перешли на универсальную кодировку UTF-8.

Если глянуть еще глубже, то можно увидеть, что для чтения и отображения тегов amarok использует библиотеку taglib. Вот она-то и не хочет отображать теги в кодировке cp1251 корректно. Оно и понятно, зачем, если вся система работает с UTF-8?. В итоге вместо русских тегов в amarok мы видим каракули. Но не стоит отчаиваться, решение есть и не одно!



Решение первое, не универсальное, но простое





Суть решения в следующем. Раз Amarok не хочет отображать теги в кодировке cp1251, пусть теги будут в UTF-8. Но как быть, если я хочу поделиться музыкой с Windows пользователем, теперь у него будут каракули? Нет, не будут. Это тоже решаемо.

И так, нам нужно всего лишь перекодировать теги из cp1251 в UTF-8. На мой взгляд лучше всего это сделать при помощи утилиты easytag. Для корректного отображения тегов в Linux и в Windows я использую настройки, показанные на скриншоте.







Решение второе, универсальное, но сложней



Первое решение имеет один недостаток. Как быть если я храню музыку на CD дисках, и она там в кодировке cp1251? Заставить taglib корректно отображать кодировку cp1251. Для этого уже давно существует проект rusxmms коим я успешно пользуюсь.

И так по порядку.



1. Качаем следующие пакеты:

librcd

librcc

taglib-csa6

taglib-1.5



2. Распаковываем



tar -xvf librcd-0.1.11.tar.bz2

tar -xvf librcc-0.2.6.tar.bz2

tar -xvf taglib-csa6.tar.bz2

tar -xvf taglib-1.5.tar.gz




3. Устанавливаем librcc и librcd. Для этого переходим в каталог с распакованным архивом и делаем следующее



./autogen.sh

./configure --prefix=/usr

make && sudo make install




*Тут нужно внимательно смотреть, чем закончилось выполнение команд ./configure --prefix=/usr и make. Если ошибкой, то нужно смотреть в чем ошибка. К сожалению универсального решения я подсказать не могу, но скорей всего не хватает какого-то пакета. Если что-то пойдет не так, пишите в комментариях, будем разбираться. Ах да, убедитесь в наличии пакетов gcc, make и automake. Вроде ни чего не забыл.*



4. Патчим taglib. Для этого заходим в каталог с распакованным taglib-csa6 и находим там файл taglib-1.5-ds-rusxmms.patch или с похожим название, главное чтоб были в названии слова taglib-1.5 и patch. Копируем этот файл в каталог с распакованным taglib-1.5. Далее выполняем следующие команды



patch -p1 < taglib-1.5-ds-rusxmms.patch

aclocal

automake

autoconf

./configure --prefix=/usr

make && sudo make install




5. Если все прошло без ошибок, то запускаем Amarok и наслаждаемся результатом.



Статья подготовлена в рамках акции "Неделя помощи новичкам".



UPD1: Чуть не забыл. После всего сделанного, как способ первый, так и второй, необходимо заново просканировать коллекцию в Amarok.



На сайте rusxmms в разделе Download есть собранные бинарники для тех кто не хочет патчить и собирать taglib ручками. Для пользователей opensuse 11.1 есть репозиторий, который содержит все вышеперечисленные пакеты. Если кто-нибудь располагает информацией о репозиториях для других дистрибутивов, не стесняйтесь, пишите в комментариях, добавлю в статью.



UPD2: Нашел репозиторий rusxmms для Ubuntu.

Для добавления делаем следующее

sudo gedit /etc/apt/sources.list

Добавляем туда строку

deb http://rusxmms.sourceforge.net/ubuntu/rusxmms dapper main

Сохраняем и закрываем. Добавляем gpg-подпись для этого репозитория

sudo wget http://rusxmms.sf.net/ubuntu/rusxmms/key.gpg -O - | sudo apt-key add -

Обновляем списки пакетов и устанавливаем taglib

sudo apt-get update

sudo apt-get install libtag1c2a




UPD3: Для Arch Linux в community лежат откомпилированные пакеты librcd-0.1.11-1, librcc-0.2.6-1 и taglib-rcc-1.5-1. Устанавливаем командой

sudo pacman -S taglib-rcc.

За информацию спасибо stanislav



Тэги: amarok cp1251 easytag rusxmms taglib UTF-8
+ 10 -
Похожие Поделиться

sqrrl 31.03.2009 08:28 #
+1. Сразу столкнулся с этой проблемой в начале моего linux пути. easytag очень удобна.
muhas 31.03.2009 09:30 #
для файла с виндовой кодировкой юзаю mutagen вместо easytag
find `pwd` -iname '*.mp3' -print0 | xargs -0 mid3iconv -eCP1251 --remove-v
а решение второе, универсальное ещё не использовал за ненадобностью
stanislav 31.03.2009 10:04 #
+1
тоже пользуюсь этим однострочником, очень быстро, нежели открывать какой-то gui.
SeaJey 31.03.2009 13:03 #
Через ГУЙ можно заодно к CDDB обратиться и недостающие теги добавить + плюс переименовать треки по маске. По-хорошему, это всё потом в плеере делать придётся - но не во всех есть нужный функционал.
booley 31.03.2009 17:59 #
Им можно просканировать большую библиотеку с русскими названиями(cp1251), а cddb не находит мои треки
stanislav 31.03.2009 10:09 #
в Arch Linux на данный момент в community лежат:

librcd-0.1.11-1
librcc-0.2.6-1
taglib-rcc-1.5-1
karapuz 31.03.2009 10:27 #
Спасибо, добавил.
stanislav 31.03.2009 11:19 #
Можно тогда поправить до такого вида: sudo pacman -S taglib-rcc
А librcd и librcc подтянутся как зависимости.
Username 31.03.2009 11:06 #
отлично
xcr 31.03.2009 12:27 #
Если честно, всегда пользовался первым способом. Как раз таки потому, что второе решения для меня менее универсально, чем первое: я хочу получать нормальные теги сразу же, как запустил новый дистриб линукса.
Minoru 31.03.2009 13:14 #
Прежде всего хочу сказать, первое решение звучит как «снять флажок записи ID3v1.x» — это единственное отличие от дефолтов.
<dummy mode on>
Во-вторых, у меня после снятия этого флажка теги остались прежними. Что делать?
<dummy mode off>

О втором методе не скажу ничего — не юзал и не собираюсь.
Marso 04.05.2010 15:22 #
Пакеты для Mandriva http://download.opensuse.org/repositories/home:/csa7fff:/rusxmms/Mandriva_2010/i586/

http://sourceforge.net/projects/rusxmms/files/Binaries_%20Mandrake%20Binaries/

Для других можно поискать здесь:
http://rusxmms.sourceforge.net/