Русские теги 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-rusxmmslibrcd0librcc0
Debian, Ubuntu, Kubintu и т. д.*СсылкаСсылкаСсылка
Mandriva (в последних версиях дистрибутива включен в комплект)http://sourceforge.net
RedHat, CentOShttp://sourceforge.net
SuSehttp://sourceforge.net
Slackware,
Исходный код
http://sourceforge.net

* Для загрузки пакета необходимо нажать на ссылку в таблице ниже с требуемой архитектурой.

Конвертирование музыкальной библиотеки в кодировку utf-8.

Для полного конвертирования всей музыкальной библиотеки будем использовать скрипт mid3iconv, который поставляется в комплекте пакета python-mutagen. Для правильной работы пакет python-mutagen должен быть версией не ниже 1.1.


  1. Устанавливаем пакет python-mutagen:
    Debian, Ubuntu, Kubuntu..:
    sudo apt-get install python-mutagen

  2. Переходим в директорию с Вашей музыкальной библиотекой:
    cd /home/ВАШ_ЛОГИН/Музыка

    Возможно директория с музыкальной библиотекой у Вас будет другой.

  3. Конвертируем библиотеку:
    find -iname „*.mp3“ -print0 | xargs -0 mid3iconv -eCP1251 —remove-v1

В результате всех вышеизложенных действий ОС Linux и MP3-плеер будут нормально воспринимать кириллические теги MP3-файлов. При прослушивании интернет радиостанций названия русских песен будут правильно выводится.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен

Комментарии (40)

  • #

    ой какая нудная статья…
    а картинка классная

  • #

    >а картинка классная
    Спасибо! Изготавливал долго)))

  • Kubuntu user
    #

    Mutant, случаем не знаешь, как это проделать с KDE 4.3 в Kubuntu 9.04?!
    Что-то не пашет(
    А до дист-апгрейда работало…

  • #

    Точно не знаю.
    Должно работать

  • Kubuntu user
    #

    Должно, или нет, но не работает)
    При использовании команды выдаёт разный бред…

  • #

    Можешь привести часть этого бреда? Я так понимаю он выводит это после пункта 3?
    Тут не должно зависеть от дистрибутива

  • Viglim
    #

    cool,it works!

  • revolt08
    #

    спасибо. очень помогло. прям не знал что делать с этой кодировкой!

  • #

    Так, вот Тотем в убунте 9.10 стал видеть русские тэги. А вот Clementine не хочет :( в чем может быть проблема?

  • #

    всё, разобрался. не было проблем. тыкнул не туда :)

  • Phoenix
    #

    Установил пакеты для добавления кодировки СР1251 через Synaptic, не подействовало.
    Конвертация прошла нормально, но в Amarok по-прежнему кракозябры. В чем может юыть проблема?

  • #

    Phoenix: Установил пакеты для добавления кодировки СР1251 через Synaptic, не подействовало.
    Конвертация прошла нормально, но в Amarok по-прежнему кракозябры. В чем может юыть проблема?

    Вы переимпортируйте коллекцию mp3. Amаrok, при добавлении, создает свою базу описаний, только в момент добавления и потом пользуется ей. Нужно просто добавить по-новой.

  • Просто User
    #

    Phoenix: Установил пакеты для добавления кодировки СР1251 через Synaptic, не подействовало.
    Конвертация прошла нормально, но в Amarok по-прежнему кракозябры. В чем может юыть проблема?

    На Windows переходи

  • #

    Просто User: На Windows переходи

    Ну что ж Вы так сразу, человек учиться. Все такие были ))

  • ninakupenda
    #

    у меня проблема другого рода, выдает при установке пакета rusxmms что он конфликтует c libtag1-vanilla. :( как их помирить?

  • #

    ninakupenda: у меня проблема другого рода, выдает при установке пакета rusxmms что он конфликтует c libtag1-vanilla. :( как их помирить?

    Не знаю не сталкивался

  • linux
    #

    а может надо просто научит писать теги почеловечески? чтоб сочетались и utf8 и cp1251. а именно по общепринятым правилам.

  • orlygreehap
    #

    ninakupenda: у меня проблема другого рода, выдает при установке пакета rusxmms что он конфликтует c libtag1-vanilla. :( как их помирить?

    Удалить libtag1-vanilla, вместо него установить libtag1-rusxmms. Во всяком случае на ubuntu 10.04.

  • Mut@NT
    #

    linux: а может надо просто научит писать теги почеловечески? чтоб сочетались и utf8 и cp1251. а именно по общепринятым правилам.

    Это значит писать теги в UTF-8 Проблемы уйдут сами собой

  • Макс
    #

    У меня некоторые теги и в windows и в linux отображаются нормально, а некоторые нет. Почему? А еще, если перекодировать библиотеку указанным выше способом, то в windows начинаются проблемы с тегами. Они вообще не отображаются. Как сделать, чтобы теги правильно отображались и в Linux и Windows. Ведь некоторые же отображаются правильно и там и там.

  • Mut@NT
    #

    Макс: У меня некоторые теги и в windows и в linux отображаются нормально, а некоторые нет. Почему? А еще, если перекодировать библиотеку указанным выше способом, то в windows начинаются проблемы с тегами. Они вообще не отображаются. Как сделать, чтобы теги правильно отображались и в Linux и Windows. Ведь некоторые же отображаются правильно и там и там.

    Насколько мне известно Windows понимает UTF-8 хорошо, поэтому перекодировка должна помочь в этом. Это ИМХО

  • GanSs
    #

    Спасибо, в ubuntu 10.04 работает

  • #

    помогло , спасибо!!!!

  • #

    кому не помог данный способ, есть такие: http://interio-tech.com/2010/07/id3-tegi-v-banshee-ili-rhythmbox-pod-linux/

    вообще с этой cp1251 геморрой сплошной

  • ludoed
    #

    Если у человека 120 Гб музыки на болванках, перекодирование тегов советовать как-то боязно. :))
    ставим плеер qmmp из репов Убунты, затем Настройки -> Модули -> Модуль Mpeg -> Настройки
    Ставим кодировку windows-1251 для обоих типов тегов

  • Mut@NT
    #

    ludoed: ставим плеер qmmp из репов Убунты, затем Настройки -> Модули -> Модуль Mpeg -> Настройки Ставим кодировку windows-1251 для обоих типов тегов

    Лучше установить QMMP не из офиц. репов, а из сторонних, как описано тут.

  • Roman
    #

    Спасибо огромное, помогло! Теперь все работает, только перед конвертированием права на папку настроил. Я ее с другого компа перекинул по сети, у root’a права были только на чтение.

  • Артем
    #

    я сначала прогнал через easytag, а потом мутагеном дошлифовал. Все классно =) спс.

  • Prot
    #

    Нет уж, как раз нужно не систему учить дебильной кодировке, а конвертировать всю музыку. Так как систему можно научить, а как быть с другой техникой? dvd-плееры, мп3-плееры, телефоны?!
    Так что автор не прав. Нужно изначально кодировать в UTF-8, он будет нормально читаться как в самой винде, так и на остальных системах и устройствах!

  • Mut@NT
    #

    Prot: Нет уж, как раз нужно не систему учить дебильной кодировке, а конвертировать всю музыку. Так как систему можно научить, а как быть с другой техникой? dvd-плееры, мп3-плееры, телефоны?! Так что автор не прав. Нужно изначально кодировать в UTF-8, он будет нормально читаться как в самой винде, так и на остальных системах и устройствах!

    Это все понятно, но мы тут говорим о Linux. Разработчики приложений для Linux не делают этого из-за того, что это только проблема касается русскоговорящие страны, а наши понимающие разработчики делают приложения с поддержкой всех кодировок.

    А то, что нужно конвертировать всю библиотеку – Вы правы. Это более правильное решение.

  • #

    Prot: Нет уж, как раз нужно не систему учить дебильной кодировке, а конвертировать всю музыку. Так как систему можно научить, а как быть с другой техникой? dvd-плееры, мп3-плееры, телефоны?!
    Так что автор не прав. Нужно изначально кодировать в UTF-8, он будет нормально читаться как в самой винде, так и на остальных системах и устройствах!

    Вы подменяете техническую проблему религиозной. Да, UTF-8 решает многие проблемы, но и он не идеален. Поговорите с китайцами, они Вам много интересного про юникод расскажут.
    Изначально кодировать в UTF-8, конечно, хорошо. А всё, что извне, перекодировать, как попка? Вместо того, чтобы ОДИН раз добавить в плеер функцию поддержки разных кодировок? Автор QMMP, например, именно так и сделал, за что ему большое спасибо. А что сделать с музыкой, которая, допустим, пришла с трекера? Делать две копии, одну для раздачи, другую перекодировать для прослушивания? Не жирновато будет?
    Но что касается, мобильников, автомобильных проигрывателей и др. – тут да, надо перекодировать, другого выхода нет.

  • #

    Автору спасибо за статью. Я накатил libtag1-rusxmms на свой Debian Wheezy, причём из умолчального репозитария – и после этого даже Clementine заработал как надо. Остаётся открытым вопрос с openSUSE…

  • Myshka-norushka
    #

    Большое спасибо за статью! Наконец-то нашлось решение для кодировок)

  • Admin
    #

    Вообще-то в тегах по стандарту должна использоваться кодировка utf8, а не cp1251. Поэтому проблема не в том, что нет поддержки других кодировок, а в том, что некоторые не соблюдают стандарты.

  • Pol
    #

    Спасибо автору за статью, ковырял Убунту 12,04+qmmp – все заработало – просто плейлист по новой нужно закачать и все Ок будет. Еще раз спасибо. )

  • Ростислав
    #

    Спасибо большое, метод помог))
    Использую теперь Amarok на Ubuntu без проблем!

  • vlad
    #

    # find -iname ‘*.mp3’
    нигде не могу найти параметр -iname
    подскажите, чем отличается от -name

  • Нина
    #

    Спасибо, все работает) только изначальная кодировка была koir-8)

  • JagaBas, Питер, Русь Матушка
    #

    Спасибо товарищ Мутант! За скрипт. По делу. Смерть кракозябрикам! Так их! Ура товарищи!

  • Денисъ
    #

    Благо дарю!!