понедельник, 25 декабря 2006 г.

EasyTag. Работа с тегами.

Сегодня я хочу познакомить Вас с программой для работы с mp3 тегами - EasyTag.
EasyTag - это программа просмотра и редактирования тегов музыкальных файлов форматов MP3, MP2, MP4/AAC, FLAC, Ogg Vorbis, MusePack и Monkey's Audio.
На данный момент существует две версии программы - для GTK библиотек 1.2 и 2.4.

Некоторые функции этой программы:

  • Просмотр,редактирование,запись тегов в файлы форматов MP3, MP2 (ID3 тег и изображения), FLAC (FLAC Vorbis тег), Ogg Vorbis (Ogg Vorbis тег), MP4/AAC (MP4/AAC тег), и MusePack, Monkey's Audio (APE тег);
  • Возможность редактирования большого количества полей: Название, Исполнитель, Альбом, Год выпуска, Номер трека, Жанр, Комментарии, Композитор, Первый исполнитель, Авторское право, Ссылка (URL), Кодировщик, Прикрепленное изображение;
  • Автозаполнение тегов исходя из названий файлов;
  • Переименования папок и файлов исходя из содержимого тегов (использую шаблоны) или используя текстовый файл;
  • Возможность рекурсивного заполнения тегов, удаления, переименования, сохранения...;
  • Возможность просмотра поддиректорий;
  • Считывание и отображение заголовков файлов ( битрейт,время...);
  • Автозаполнение вводимой даты;
  • История изменений (Undo и redo);
  • Возможность обработки полей тегов (конвертирование в строчные, заглавные буквы...);
  • Возможность открывать файлы или папки в сторонней программе;
  • Поддержка CDDB ( Freedb.org и Gnudb.org) серверов (ручной и автоматический поиск);
  • Деревообразный браузер просмотра или просмотр по исполнителю и альбому;
  • Окно создания плейлистов;
  • Поиск файлов;
  • Простой интерфейс;
  • Поддержка многих языков, в числе которых и русский;
  • GUI интерфейс (GTK 1.2 и 2.4);
  • Программа доступна для GNU/Linux и Windows.

Применение:


Так уж сложилось, что все русскоязычные музыкальные файлы хранят свои теги в кодировке CP1251. Наследство Windows. Но это создает и создавало много проблем для пользователей Linux. В Linux, для отображение русских символов долгое время использовалась кодировка KOI8-R. В последнее время ей на смену пришла универсальная кодировка UTF-8. Это может немного запутать пользователя, особенно новичка, который только перебрался на Linux. Все его файлы хранятся в кодировке CP1251.

Я не буду здесь описывать настройку локалей, перекодировку файлов и тому подобное. Я хочу каснуться лишь коллекции mp3 файлов пользователя. Используя некоторое время Linux и Windows одновременно, я научился все названия файлов записывать лишь транслитом. Но что делать если Вы взяли у друга альбом любимого исполнителя, а там все названия файлов в кодировке CP-1251? В таком случае мы можем открыть этот альбом в любимом проигрователе, который читает теги в кодировке CP-1251 (XMMS и Beep Media Player). Но мне нравится медиаплеер Amarok. До версии 1.4 все было замечательно. Можно было выбрать вариант CP-1251 и наслаждаться жизнью, но в версиях от 1.4 и выше - эту возможность убрали. Переходить на другой плеер я не захотел.

Таким образом, почти не имея другого выхода, я решил раз и навсегда перейти на UTF8. Не только по отношению к тегам, но также и для основной локали системы.

Пример:

Для перекодировки тегов с CP-1251 в UTF-8 открываем E
asyTag и идем в Установки -> Настройки -> ID3 Tag Settings и отмечаем поля, как приведенно на рисунке ниже:



Теперь выбираем альбом, который мы хотим перекодировать. В моем случае это выглядит так:



Как видно, названия файлов отображаются краказябрами, но с тегами все нормально. Выделям все песни и жмем - Сохранить. Все теги теперь сохранены в кодировке UTF-8. Но это еще не все. Следующим шагом будет перекодировка названия файлов. Для этого выделяем все файлы, идем в пункт меню Сканер -> Rename file(s) and direcotory и выбираем что мы хотим записать в названия файлов (исполнитель, название, альбом...):





После этого жмем зеленую иконку справа (рисунок выше), закрываем данное окно и сохраняем.
Должно получиться следующее:



На этом работа закончена. Одним выстрелом я убил двух зайцев - перекодировал теги и названия файлов в универсальную кодировку UTF-8.

20 коммент.:

Von_old комментирует...

Почему-то не видно картинок.
Спасибо за обзор, беру на вооружение. :)

serhiy комментирует...

Картинки у меня видно, да и у других вроде тоже. Наверное надо менять шаблон блога. Что-то мне не нравится это. То не видно картинок, то урезанная таблица...

Анонимный комментирует...

Во-первых, картинок я тоже не увидел,

во-вторых, попытался понажимать на главной странице "Читать дальше" - безрезультатно, javascript не выполняется.

Кстати, может и картинки из-за этого же не отображаются.

В-третьих:

Для UTF-8 ни в коем случае не используй easyTag =)
Он использует старую либу, которая поддерживает
только id3 v2.3, а в нём
разрешены только Latin1 и UTF-16 (с Byte Order Mask)
Лучше уж используй UTF-16, тогда проблем в оффтопике не
должно быть.
НО у либы, которая используется в easyTag есть некоторые
проблемы с
юникодом: символы с диакритическими знаками и
иероглифами коверкаются
после сохранения, вроде с кириллицей проблем нет (но
где-то в природе
существует патч).
Либо есть второй вариант -- использовать id3 v2.4, тогда можно
использовать UTF-8, но в винде (проводник и Media Player) получишь
бред :).

Взято из дискуссии по поводу перекодировки тегов в листе рассылки debian-russian.

serhiy комментирует...

Не выполняется только для этого поста или для всех? Какой браузер используете?
Проверел в:
Linux: Firefox2, Konqueror
Windows: IE6, Firefox1.5, Opera9
Везде все работало. Вообще везде я использовал все стандартное, поэтому я пока не понимаю почему оно может не работать.
На счет кодировок. Спасибо. Разбераюсь. Позже переделаю и напишу.

Анонимный комментирует...

Javascript для перехода по "Read more" не выполняется для всех постов, которые в данный момент на главной.

У меня firefox 1.5.0.7 плюс расширения Adblock и Noscript.

Может, не работает из-за них, хотя для blogger.com и blogspot.com у меня разрешено выполнение js.

serhiy комментирует...

Итак. Некоторые идеи. С помощью EasyTag переводим все теги в:
1. UTF-8
2. UTF-16LE
3. UTF-16BE
(используем только id3v2)
Только это есть в EasyTag.
После этого переписываем все имена файлов с тегов.
Переводим имена файлов в транслит, используя http://www.linux.org.ru/books/lor-faq/lorFAQ-16.html

serhiy комментирует...

На счет жабаскриптов, ради инетереса, можете попробовать на время отключить указанные расширения и попробовать? Я думаю проблема в них.

Анонимный комментирует...

Я не стал ничего отключать в fx, просто попробовал посмотреть opera 9.02.

Результат:

появились новые стикеры, опрос про дистрибутивы, и заработало "Read More".

Анонимный комментирует...

Кстати, даже в opera9 картинок я так и не увидел.

Просто беда какая-то с картинками.

serhiy комментирует...

Все картинки перегрузил заново. Теперь должны бить видны.
Сегодня целый день убил, разбирая информацию о кодировках и программах. Пришел к выводу. Все очень запутано. Если не собираетесь связываться с Windows, то описанный в статье вариант подойдет без проблем. В случае mp3 плеера - зависит от модели. В случае Windows - must die!

Анонимный комментирует...

Да, сейчас изображения отображются.

Igor комментирует...

Большинство mp3 плейеров как раз имеют UTF-8 в id3v2, так как это стандарт. Конечно, для России специально кто-то нарушает эти стандарты (это когда пишут, что плейер поддерживает русский язык, имеется в виду обычно cp1251), но обычно такого не происходит.
Говорят, Windows Media Player юникодные теги видит..

Анонимный комментирует...

Вот, нашел интересную заметку на эту тему.

serhiy комментирует...

Проверил. Windows Media Player - видит UTF-8 теги отлично. Следовательно можно свободно переганять в юникод, а названия файлов лучше не трогать. Или названия файлов сначало переписать с тегов в юникод, а потом в транслит.

serhiy комментирует...

upd: Тааак. Полученный ogg не понимает половина плейеров, при разворачивании в mp3 теряются тэги, а как выковырять тэги из полученных файлов - ещё не придумал. Самое забавное - xfmedia их вполне себе проигрывает...

А вдруг я себе куплю mp3 плеер, который не будет поддерживать ogg?

smartov комментирует...

Спасибо за помощь. Один только вопрос: каким образом у тебя п****лись имена файлов? :) Или ты их специально :)

serhiy комментирует...

Один только вопрос: каким образом у тебя п****лись имена файлов? :) Или ты их специально :)
Что Вы имели ввиду? Как у меня поменялись названия файлов? Сам поменял. Мне не нравились названия типа track1 и т.д. Теперь все названия смотрятся хорошо, на русском. А если я захочу дать некоторые песни пользователю Виндовс, то просто перекодирую названия файлов в CP1251 с помощью convmv.

Анонимный комментирует...

не подскажите а можно ли этой прогой конвертить имена файлов не mp3-шек? А то мой wget качает с виндовых серваков файлы в имени которых получается БОПНА.

calibra комментирует...

Используя некоторое время Linux и Windows одновременно, я научился все названия файлов записывать лишь транслитом.

Unknown комментирует...

1. В файлы /var/lib/locales/supported.d/local и /var/lib/locales/supported.d/ru добавить строчку
ru_RU.CP1251 CP1251 (для открытия в терминале нужного файла, набрать sudo gedit
/var/lib/locales/supported.d/local или sudo gedit /var/lib/locales/supported.d/ru)
2. Запустить в консоли комманду: sudo locale-gen
3. Ярлык программы (команду запуска ярлыка) изменить на
sh -c «LC_ALL=ru_RU.CP1251 rhythmbox» +
Для этого нужно вынести ярлык программы на рабочий стол и нажав правую кнопку и выбрав пункт
свойства, выполнить замену строчки команда