понедельник, 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 коммент.:

vonderer@darkstar комментирует...

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

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

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

Roman Lagunov комментирует...

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

во-вторых, попытался понажимать на главной странице "Читать дальше" - безрезультатно, 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 cherevko комментирует...

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

Roman Lagunov комментирует...

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

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

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

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

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

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

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

Roman Lagunov комментирует...

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

Результат:

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

Roman Lagunov комментирует...

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

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

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

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

Roman Lagunov комментирует...

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

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

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

Roman Lagunov комментирует...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вячеслав комментирует...

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» +
Для этого нужно вынести ярлык программы на рабочий стол и нажав правую кнопку и выбрав пункт
свойства, выполнить замену строчки команда