My favorites | Sign in
Project Home Downloads Wiki Issues
READ-ONLY: This project has been archived. For more information see this post.
Search
for
MusicTagKit  
Главная страница
Featured
Updated Jan 28, 2013 by shukli...@gmail.com

Общая информация

MusicTagKit — набор bash-скриптов для манипуляции комментариями Vorbis и ID3-тегами в .ogg- и .mp3-файлах соответственно.

Как это работает

С помощью скриптов get*inf теги из звуковых файлов можно вывести в текстовый файл.

С помощью скриптов ai.* или ti.* этот текстовый файл можно обработать. Также файл можно отредактировать в текстовом редакторе или написать вручную с нуля.

С помощью скриптов prc* теги из текстового файла можно прописать в звуковые файлы и переименовать их.

С помощью скрипта mvalb звуковые файлы альбома можно переместить в соответствующий каталог в каталоге с музыкой.

Для кого

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


Описание скриптов

Скрипты для выведения тегов из звуковых файлов в текстовые файлы

getalbinf (GetAlbumInfo) — выводит теги из найденных .ogg- и/или .mp3-файлов в файл формата albuminfo.

gettrksinf (GetTracksInfo) — выводит теги из указанных .ogg- и/или .mp3-файлов в файл формата tracksinfo.

Скрипты для прописывания тегов в звуковые файлы и их переименования

prcalb (ProcessAlbum) — прописывает теги из файла формата albuminfo в найденные .ogg- и/или .mp3-файлы и переименовывает их.

prctrks (ProcessTracks) — прописывает теги из файла формата tracksinfo в указанные в нём .ogg- и/или .mp3-файлы.

Скрипты для обработки файлов формата albuminfo

ai.capall (AlbumInfo.CapitalizeAllWords) — первую букву каждого слова делает большой, остальные буквы в словах — маленькими. Такое преобразование выполняется для всех полей во входных файлах, кроме поля "стиль"; в нём все буквы в словах делаются маленькими.

ai.capfirst (AlbumInfo.CapitalizeFirstWords) — первую букву первого слова делает большой, все остальные буквы — маленькими. Такое преобразование выполняется для всех полей во входных файлах, кроме поля "стиль"; в нём все буквы в словах делаются маленькими.

ai.edit (AlbumInfo.Edit) — изменяет поля "исполнитель" и "стиль" во входных файлах. Это удобно, если нужно изменить эти поля сразу в нескольких файлах.

ai.fixenc (AlbumInfo.FixEncoding) — приводит входные файлы в читаемый вид, если они были сгенерированы с помощью скрипта getalbinf, в то время как теги в найденных им .mp3-файлах были в одной из кодировок: cp1251, koi8-r, cp866. Кодировку нужно задавать вручную, по умолчанию берётся cp1251.

ai.print (AlbumInfo.Print) — выводит входные файлы на экран. Имеет суммарный режим (summary mode), в котором удобно просматривать (сравнивать) несколько файлов одновременно.

Скрипты для обработки файлов формата tracksinfo

ti.capall (TracksInfo.CapitalizeAllWords) — первую букву каждого слова делает большой, остальные буквы в словах — маленькими. Такое преобразование выполняется для всех полей во входных файлах, кроме полей "имя звукового файла" и "стиль"; в поле "стиль" все буквы в словах делаются маленькими.

ti.capfirst (TracksInfo.CapitalizeFirstWords) — первую букву первого слова делает большой, все остальные буквы — маленькими. Такое преобразование выполняется для всех полей во входных файлах, кроме полей "имя звукового файла" и "стиль"; в поле "стиль" все буквы в словах делаются маленькими.

ti.edit (TracksInfo.Edit) — изменяет все поля "исполнитель", "альбом", "год", "стиль" и "количество треков (в альбоме)" во входных файлах.

ti.fixenc (TracksInfo.FixEncoding) — приводит входные файлы в читаемый вид, если они были сгенерированы с помощью скрипта gettrksinf, в то время как теги в его входных .mp3-файлах были в одной из кодировок: cp1251, koi8-r, cp866. Кодировку нужно задавать вручную, по умолчанию берётся cp1251.

ti.print (TracksInfo.Print) — выводит входные файлы на экран. Имеет суммарный режим (summary mode), в котором просматривать файлы может быть удобнее.

Скрипт для перемещения звуковых файлов альбома

mvalb (MoveAlbum) — перемещает найденные звуковые и входной файлы в соответствующий каталог в каталоге с музыкой: каталог_с_музыкой/исполнитель/год - альбом. Если после этого остаются пустые каталоги — удаляет их. Имя каталога с музыкой хранится в конфигурационном файле ~/.mvalb. Конфигурационный файл не обязательно редактировать вручную, можно воспользоваться опцией скрипта "-d".


Пояснения к скриптам

Все скрипты предназначены только для работы с тегами "исполнитель", "альбом", "год", "стиль", "название трека", "номер трека" и "количество треков (в альбоме)". Остальные теги (если они есть) игнорируются/удаляются(!).

Скрипты getalbinf, prcalb и mvalb по умолчанию ищут звуковые файлы в текущем каталоге. Можно указать каталоги для поиска. Имя выходного (входного) файла по умолчанию — "albuminfo". Выходной (входной) файл создаётся (ищется) в одном каталоге с соответствующими звуковыми файлами. Порядок полей с названиями треков в выходном (входном) файле будет (должен) соответствовать порядку следования звуковых файлов, отсортированных по алфавиту. Созданный файл выводится на экран по умолчанию. Скрипты имеют режим группы (band mode). В этом режиме звуковые файлы по умолчанию ищутся во всех подкаталогах текущего каталога (не рекурсивно). Если указаны каталоги для поиска, то поиск производится во всех подкаталогах указанных каталогов (не рекурсивно).

Скрипт getalbinf берёт информацию для полей "исполнитель", "альбом", "год" и "стиль" из первого найденного звукового файла.

Скрипт prcalb по умолчанию переименовывает найденные звуковые файлы по шаблону номер_трека-название_трека.(ogg|mp3). Скрипт может не прописывать теги "номер трека" и "количество треков (в альбоме)", в этом случае шаблон переименования будет таким: исполнитель - название_трека.(ogg|mp3).

Для скриптов gettrksinf и prctrks имя выходного (входного) файла по умолчанию — "tracksinfo". Созданный файл выводится на экран по умолчанию.

Скрипт gettrksinf может присоединять вывод к существующему выходному файлу.

Скрипт prctrks позволяет переименовать звуковые файлы. Он также изменяет входной файл, если это необходимо. Таким образом, поле "имя звукового файла" остаётся правильным после переименования звуковых файлов.

Скрипты prc* при обработке .mp3-файлов сначала удаляют все ID3-теги (это сводит на нет риск неудачной конвертации), а затем прописывают только ID3v2.3-теги (версия выбрана из соображений совместимости) в кодировке UTF-16LE.

Скрипты ai.* и ti.*, кроме *.print, имеют режим симуляции (simulation mode), в котором не выполняют никаких изменений в файлах. Обработанные входные файлы выводятся на экран по умолчанию.

Скрипт mvalb также имеет режим симуляции (simulation mode), в котором лишь сообщает, в какой каталог должны быть перемещены найденные файлы, но не перемещает их.

Все скрипты по умолчанию используют цветной вывод. Все скрипты имеют встроенную помощь с кратким описанием синтаксиса вызова (запустите с параметром "-h").


Основные зависимости

Для поддержки ogg используется vorbiscomment из пакета vorbis-tools. Версия не принципиальна.

Для поддержки mp3 используется eyeD3 >= 0.6.16. Версия 0.6.17 последняя на момент выхода MusicTagKit 0.5, поэтому корректная работа с последующими версиями не гарантируется.


Патч для eyeD3

Оригинальные версии eyeD3 не позволяют прописать некоторые стили в заданном регистре символов (стили из спецификации ID3v1 с расширениями Winamp'а + ещё некоторые). Например, стиль "heavy metal" пропишется как "Heavy Metal". Прилагаемый патч снимает это ограничение.

Как применить

Скачайте нужный архив с исходным кодом (http://eyed3.nicfit.net/releases/), распакуйте его. Перейдите в соответствующий каталог:

$ cd eyeD3-0.6.17/

И примените патч:

$ patch -Np1 -i eyeD3-0.6.17-cap.patch
Powered by Google Project Hosting