Русские теги mp3-файлов в Linux
Почти на всех современных дистрибутивах Linux кодировкой по-умолчанию является utf-8, а стандартной русской кодировкой ОС Windows — cp1251. Именно поэтому существует проблема отображения русских mp3-тегов.
На подавляющем числе блогах и сайтах рассматривается, на мой взгляд, довольно грубый метод исправления этой проблемы. Предлагается конвертировать всю музыкальную библиотеку в кодировку utf-8, что полностью не может решить проблему.
По-моему мнению, вся проблема заключается не в том, что для заполнения тегов mp3-файлов используется кодировка cp1251, а в том, что ОС Linux не поддерживает эту кодировку. Корректнее и правильнее будет научить систему Linux правильно отображать русские теги сделанные в кодировке cp1251 (к примеру, для отображения русского языка в тегах интернет-радиостанций) и переконвертировать всю имеющуюся музыкальную библиотеку в utf-8, как этого требует стандарт.
Зачем это нужно?
Как написано выше, для решение сложившейся проблемы корректнее научить систему Linux правильно отображать русские теги сделанные в кодировке cp1251 и сделать конвертацию всей имеющейся музыкальной библиотеки в utf-8. Вся красота системы Linux — это ее гибкость. Плохо не воспользоваться этим.
Для «обучения» системы Linux кириллическим тегам существует проект RUSXMMS, который позволяет добавить в ОС Линукс поддержку кодировки cp1251. Русские теги будут отображаться только в аудиоплеерах работающих с taglib: XMMS, Amarok и т. д. Для конвертирования мультимедийной базы будем использовать скрипт mid3iconv, который поставляется в комплекте пакета python-mutagen.
Результатом данного комплексного подхода будет:
- музыкальная библиотека, хранящаяся на CD/DVD-дисках, будет корректно отображаться в системе OC Linux;
- правильное отображение русского языка интернет-радиостанций;
- новые музыкальные файлы, добавленные к коллекции, будут правильно отображаться в аудиоплеере;
- скопированные музыкальные файлы, имеющие русские теги, на mp3-плеер или автомагнитолу будут правильно отображаться, так как кодировка тегов будет utf-8;
- вся постоянная музыкальная библиотека, хранящаяся на жестком диске, будет иметь теги в правильной кодировке utf-8.
Добавление кодировки cp1251 с помощью пакета RUSXMMS.
Официальный сайт проекта RUSXMMS http://rusxmms.sourceforge.net. Этот проект долгое время не обновлялся, но в последнее время ситуация изменилась и проект ожил. На странице загрузки можно вручную закачать версии пакетов для любых дистрибутивов Linux. Некоторые ссылки к сожалению уже не работают. К примеру, ссылки на репозиторий для ОС Ubuntu уже не существует. Отдельно пакеты RUSXMMS для ОС *buntu можно закачать из репозитория Debian.
Чтобы добавить поддержку cp-1251 в ОС Linux нужно скачать и установить следующие пакеты: libtag1-rusxmms, librcd0, librcc0. Ниже приведена таблица, в которой сведена информация о всех доступных источниках загрузки для разных операционных систем:
Операционная система | libtag1-rusxmms | librcd0 | librcc0 |
---|---|---|---|
Debian, Ubuntu, Kubintu и т. д.* | Ссылка | Ссылка | Ссылка |
Mandriva (в последних версиях дистрибутива включен в комплект) | http://sourceforge.net | ||
RedHat, CentOS | http://sourceforge.net | ||
SuSe | http://sourceforge.net | ||
Slackware, Исходный код | http://sourceforge.net |
* Для загрузки пакета необходимо нажать на ссылку в таблице ниже с требуемой архитектурой.
Конвертирование музыкальной библиотеки в кодировку utf-8.
Для полного конвертирования всей музыкальной библиотеки будем использовать скрипт mid3iconv, который поставляется в комплекте пакета python-mutagen. Для правильной работы пакет python-mutagen должен быть версией не ниже 1.1.
- Устанавливаем пакет python-mutagen:
Debian, Ubuntu, Kubuntu..:
sudo apt-get install python-mutagen - Переходим в директорию с Вашей музыкальной библиотекой:
cd /home/ВАШ_ЛОГИН/Музыка
Возможно директория с музыкальной библиотекой у Вас будет другой. - Конвертируем библиотеку:
find -iname „*.mp3“ -print0 | xargs -0 mid3iconv -eCP1251 —remove-v1
В результате всех вышеизложенных действий ОС Linux и MP3-плеер будут нормально воспринимать кириллические теги MP3-файлов. При прослушивании интернет радиостанций названия русских песен будут правильно выводится.
Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.
Вдохновлен
ой какая нудная статья…
а картинка классная
>а картинка классная
Спасибо! Изготавливал долго)))
Mutant, случаем не знаешь, как это проделать с KDE 4.3 в Kubuntu 9.04?!
Что-то не пашет(
А до дист-апгрейда работало…
Точно не знаю.
Должно работать
Должно, или нет, но не работает)
При использовании команды выдаёт разный бред…
Можешь привести часть этого бреда? Я так понимаю он выводит это после пункта 3?
Тут не должно зависеть от дистрибутива
cool,it works!
спасибо. очень помогло. прям не знал что делать с этой кодировкой!
Так, вот Тотем в убунте 9.10 стал видеть русские тэги. А вот Clementine не хочет :( в чем может быть проблема?
всё, разобрался. не было проблем. тыкнул не туда :)
Установил пакеты для добавления кодировки СР1251 через Synaptic, не подействовало.
Конвертация прошла нормально, но в Amarok по-прежнему кракозябры. В чем может юыть проблема?
Вы переимпортируйте коллекцию mp3. Amаrok, при добавлении, создает свою базу описаний, только в момент добавления и потом пользуется ей. Нужно просто добавить по-новой.
На Windows переходи
Ну что ж Вы так сразу, человек учиться. Все такие были ))
у меня проблема другого рода, выдает при установке пакета rusxmms что он конфликтует c libtag1-vanilla. :( как их помирить?
Не знаю не сталкивался
а может надо просто научит писать теги почеловечески? чтоб сочетались и utf8 и cp1251. а именно по общепринятым правилам.
Удалить libtag1-vanilla, вместо него установить libtag1-rusxmms. Во всяком случае на ubuntu 10.04.
Это значит писать теги в UTF-8 Проблемы уйдут сами собой
У меня некоторые теги и в windows и в linux отображаются нормально, а некоторые нет. Почему? А еще, если перекодировать библиотеку указанным выше способом, то в windows начинаются проблемы с тегами. Они вообще не отображаются. Как сделать, чтобы теги правильно отображались и в Linux и Windows. Ведь некоторые же отображаются правильно и там и там.
Насколько мне известно Windows понимает UTF-8 хорошо, поэтому перекодировка должна помочь в этом. Это ИМХО
Спасибо, в ubuntu 10.04 работает
помогло , спасибо!!!!
кому не помог данный способ, есть такие: http://interio-tech.com/2010/07/id3-tegi-v-banshee-ili-rhythmbox-pod-linux/
вообще с этой cp1251 геморрой сплошной
Если у человека 120 Гб музыки на болванках, перекодирование тегов советовать как-то боязно. :))
ставим плеер qmmp из репов Убунты, затем Настройки -> Модули -> Модуль Mpeg -> Настройки
Ставим кодировку windows-1251 для обоих типов тегов
Лучше установить QMMP не из офиц. репов, а из сторонних, как описано тут.
Спасибо огромное, помогло! Теперь все работает, только перед конвертированием права на папку настроил. Я ее с другого компа перекинул по сети, у root’a права были только на чтение.
я сначала прогнал через easytag, а потом мутагеном дошлифовал. Все классно =) спс.
Нет уж, как раз нужно не систему учить дебильной кодировке, а конвертировать всю музыку. Так как систему можно научить, а как быть с другой техникой? dvd-плееры, мп3-плееры, телефоны?!
Так что автор не прав. Нужно изначально кодировать в UTF-8, он будет нормально читаться как в самой винде, так и на остальных системах и устройствах!
Это все понятно, но мы тут говорим о Linux. Разработчики приложений для Linux не делают этого из-за того, что это только проблема касается русскоговорящие страны, а наши понимающие разработчики делают приложения с поддержкой всех кодировок.
А то, что нужно конвертировать всю библиотеку – Вы правы. Это более правильное решение.
Вы подменяете техническую проблему религиозной. Да, UTF-8 решает многие проблемы, но и он не идеален. Поговорите с китайцами, они Вам много интересного про юникод расскажут.
Изначально кодировать в UTF-8, конечно, хорошо. А всё, что извне, перекодировать, как попка? Вместо того, чтобы ОДИН раз добавить в плеер функцию поддержки разных кодировок? Автор QMMP, например, именно так и сделал, за что ему большое спасибо. А что сделать с музыкой, которая, допустим, пришла с трекера? Делать две копии, одну для раздачи, другую перекодировать для прослушивания? Не жирновато будет?
Но что касается, мобильников, автомобильных проигрывателей и др. – тут да, надо перекодировать, другого выхода нет.
Автору спасибо за статью. Я накатил libtag1-rusxmms на свой Debian Wheezy, причём из умолчального репозитария – и после этого даже Clementine заработал как надо. Остаётся открытым вопрос с openSUSE…
Большое спасибо за статью! Наконец-то нашлось решение для кодировок)
Вообще-то в тегах по стандарту должна использоваться кодировка utf8, а не cp1251. Поэтому проблема не в том, что нет поддержки других кодировок, а в том, что некоторые не соблюдают стандарты.
Спасибо автору за статью, ковырял Убунту 12,04+qmmp – все заработало – просто плейлист по новой нужно закачать и все Ок будет. Еще раз спасибо. )
Спасибо большое, метод помог))
Использую теперь Amarok на Ubuntu без проблем!
# find -iname ‘*.mp3’
нигде не могу найти параметр -iname
подскажите, чем отличается от -name
Спасибо, все работает) только изначальная кодировка была koir-8)
Спасибо товарищ Мутант! За скрипт. По делу. Смерть кракозябрикам! Так их! Ура товарищи!
Благо дарю!!