Pull to refresh

«Правильная» музыка. Или как навести порядок в своей MP3 коллекции

Configuring Linux *

Мотивы

Навеяно хабратопиком.

Предыстория

В октябре 2008 года я купил себе iPhone 3G и, до нынешнего лета, в качестве mp3-плеера использовал именно его. Необходимость загружать музыку в смартфон, используя iTunes, по началу меня изрядно напрягала. Но, как выяснилось значительно позже, возможно именно это избавило меня от головной боли с конвертированием тегов, записанных кириллицей. Я просто не задумываясь добавлял альбомы из своей коллекции в «тунец» и всегда гарантированно получал на телефоне треки без «кракозябр». Удобно. Но всему приходит конец.

У меня «увели» айфон. Событие печальное, я уже очень привык к смартфону и не смог продержаться без него даже 4 недель. Ждать появления в рознице iPhone 4 я не мог (было совершенно не ясно когда он появится в России и появится ли вообще), предложения перепродавцов не радовали ценником и мне пришлось выбирать из того, что есть в магазинах. Мой выбор пал на Samsung Galaxy S. Аппарат мне понравился. С непривычки, после iOS, некоторые вещи раздражали, были плюсы, были минусы, но — в целом меня всё устраивало.

Настало время «зарядить» новый девайс моими любимыми треками и тут… Сюрприз! Большая часть моей коллекции оказалась не готова к переезду на Андройд. Да, именно: эти самые «кракозябры» несметными полчищами стали появляться на свет. Попутно обнаружилась ещё одна неприятность — у изрядного количества альбомов теги и вовсе отсутствуют! Видимо или приложение iPod на айфоне или iTunes использовали помимо тегов имена файлов. Более того — треки проигрывались совсем не в том прядке, к которому я привык! Оставалось только одно — привести свою коллекцию в полный порядок: изменить кодировку тегов на UTF-8, добавить теги там, где они отсутствовали и единообразно переименовать все файлы, рассортировав их по каталогам в строгой иерархии.

Мы наш, мы новый мир построим

Начать я решил с тотальной реорганизации коллекции. Зачем? Станет ясно потом. Исходил я из того, что, в целях удобства массовой обработки, вся коллекция должна находиться в одном месте. У меня это папка «Music» на одном из наиболее вместительных жёстких дисков. Далее в иерархии, по логике, должны были быть папки названные в соответствии с жанром, но я отказался от этой идеи. Внутри папки «Music» я создал папки с названиями соответствующими именам исполнителей или названиям групп: «Кино», «Машина времени», «А. Розенбаум», «М. Шуфутинский», «Depeche mode» и т. д. Внутрь же этих папок были вложены папки с названиями альбомов, причём названия их я начинал, по возможности, годом выпуска: «1984 — Начальник Камчатки», «1986 — Black Celebration» и всё в таком же духе. Наконец уже сами файлы попадали в свои папки. Очень помогли в этом деле статьи из Википедии с дискографиями моих любимых групп и исполнителей. Вскоре вся моя коллеция была разложена «по полочкам».

Конвертация в UTF-8

Очевидно, что проблемы «кракозябр» были вызваны тем, что кириллические теги были записаны в кодировке CP1251. Корни этого «добра» растут из тотального засилья Windows. Но на дворе XXI век и уже повсеместно используется кодировка UTF-8, следовательно перевод тегов всей коллекции в UTF-8 должен навсегда избавить нас от различных «сюрпризов» — чем бы мы не пользовались для проигрывания музыки: mp3-плеером, смартфоном или же медиаплеером под Linux, Mac OS или Windows. Недолгое гугление позволило найти наиболее приемлемый для меня способ массовой конвертации тегов в нужную кодировку. Для этого пришлось всего лишь установить пакет python-mutagen (у меня Debian, у вас это может быть пакет с другим именем), который предоставляет утилиту (точнее скрипт, написанный на Питоне) mid3iconv. После чего мне осталось лишь в каждом из каталогов с альбомами (мне так удобнее, но ничто не мешало это сделать в каталоге «Music») выполнить команду:

find . -iname '*.mp3' -print0 | xargs -0 mid3iconv -eCP1251 --remove-v1

Она рекурсивно находит файлы с расширением mp3, используя теги в кодировке CP1251 записывает теги id3 версии 2 в кодировке UTF-8 и удаляет теги версии 1. Очень быстро я обработал всю свою коллекцию и все теги (где они были) были переведены в UTF-8. Осталось дело за малым: добавить теги там, где их не было и переименовать и рассортировать файлы нужным мне способом. Но чем? Ответ снова нашелся в Гугле: EasyTag.

Заполняем отсутствующие тэги

Самый тяжелый случай — не только полное отсутствие каких либо тегов, но и имена файлов вида «track 01.mp3». В этом случае всего два варианта: либо заполнить все теги вручную и потом на их основе переименовать файлы, либо выкинуть этот мусор и купить скачать в Сети. Если же у вас файлы поименованы в соответствии с названием композиции, либо наоборот, теги заполнены. но файлы безымянны — не всё потеряно. EasyTag позволяет удобно обрабатывать все файлы в папке одним махом. Вот тут-то и пригодится выстроенная ранее иерархия каталогов, так как она позволяет использовать в фильтрах путь к файлу и его имя, разбирая его элементы и заполняя из них соответствующие поля в id3 теге. Рекомендую начинать с настроек:



Обрабатывать файлы удобнее поальбомно. Заходим в папку с композициями альбома — программа просканирует тэги всех файлов и покажет их в табе «Общие» раздела «Тег ID3». Ели теги не заполнены, то картинка будет как на скриншоте.



Поскольку в пределах альбома у файлов все теги, за исключением двух (название композиции и номер трека), будут одинаковыми — смело выделяем все файлы и, заполнив поле «год», нажимаем на чекбокс рядом с ним. И у всех файлов будет проставлен этот тег.



Аналогично поступаем с другими полями: «исполнитель», «альбом», «жанр» и т. д.



Но можно сделать это ещё проще — с помощью «Сканера тегов и имён файлов». Вызывается он нажатием кнопки в виде зелёного листочка с отогнутым уголком. Чтобы заполнить теги для выделенных файлов выбираем из списка «Сканер» действие «Заполнить тег». Затем, используя переменные указанные в подсказке, выделяем из полного пути (не зря потрачено было время на наведение порядка!) и имени файла нужные теги. Нажимаем на знакомую уже кнопочку в виде зелёного листочка, но уже в самом окне сканера — теги заполнены.



Закончив работу с альбомом сохраняем внесённые изменения нажатием «дискетки» в тулбаре.



В диалоге ставим крыжик «Повторить действие для оставшихся файлов» и жмём «Да».



В случае если у нас файлы «безымянные» (что-то вроде «track 01.mp3» или вообще «01.mp3»), но теги в них заполнены, сканер позволяет переименовать файлы в соответствии с нашими пожеланиями. Нужно лишь выбрать из списка «Сканер» действие «Переименовать файл и каталог», указать шаблон для имени файла и снова нажать на «зелёный листочек».



Вы наверняка заметили, что у меня в коллекции все файлы начинаются цифрами с номером трека. Зачем? Всё очень просто — мне нравится когда треки идут в правильном порядке, а вот различные mp3-плееры строят списки воспроизведения как Бог на душу положит. Какие-то из них берут за основу имена файлов в алфавитном порядке, какие-то читают номер трека из файла. Переименовав таким образом файлы я навсегда избавился от это небольшой проблемы.

Напоследок скажу о ещё одном режиме работы сканера — «Обработать поля». С его помощью можно заменить в полях тегов «подчёркивания» на пробелы, поменять регистр букв, cделать первые буквы заглавными и многое другое.



Заключение

Итогом всей этой возни стало то, что куда бы я не загрузил свою музыкальную коллекцию, будь то китайский плеер-свисток, смартфон с андроидом или qmmp/rythmbox/amarok (нужное подчеркнуть/дописать), — я гарантированно получаю воспроизведение в «правильном» порядке и читаемые любым девайсом/программой тэги. Чего и вам желаю! 8)

P.S.: Спасибо авторам EasyTag за классную программу!

Tags:
Hubs:
Total votes 95: ↑78 and ↓17 +61
Views 78K
Comments Comments 100