воскресенье, 15 ноября 2009 г.

Редактирование, автодобавление ID3 тегов

Часто встречаются музыкальные записи, без ид'тегов, и хочется их добавить для удобства прослушивания, но савсем не хочется тратить на это время.
Возникла идея автоматизировать этот процесс
1 вариант - когда название файла и есть название трека
2 вариант - когда название файла типа "track 1", но название копозиций можно узнать
Начнем:
для начала, чтобы не забыть метод запуска скрипта, делаем ему справку
теперь вызвав скрипт ~/addtag --help можно будет посмотреть как запускать.


#!/bin/bash

#------------Help-----------------------
if [[ $1 == "--help" ]]
then
echo " "
echo " Справка по запуску скрипта "
echo " \$1 - Файл(ы) редактирования "
echo " \$2 - Исполнитель "
echo " \$3 - Альбом"
echo " \$4 - Жанр"
echo " \$5 - Дата выпуска альбома"
echo " \$6 - Файл с названиями треков"
echo " \$7 - Формат трека"
echo " "
echo " Пример запуска:"
echo " "
echo ":\$ ~/scripts/retag \"\$1\" \"\$2\" \"\$3\" \"\$4\" \"\$5\" \"\$6\" \"\$7\""
echo ':$ Путь/до/скрипта "Файл_редактирования" "Исполнитель" "Альбом" "Жанр" "Дата выпуска" "Файл со списком треков" "Формат трека"'
echo " "
echo " Файл со списком треков создается заранее, каждое наименование трека записывается с новой строки в двойных кавычках"
echo " "
else
#---------------------------------------

1 вариант, если имена файлов и есть название треков, тогда в тег Title запишем эти имена файлов

if [[ $6 == "" ]]
then
for file in $1
do
$value=`ls $file | sed -e 's/.mp3//'`
#echo "$file -a "$2" -t "$value" -A $3 -g $4 -y $5";
mid3v2 "$file" -a "$2" -t "$value" -A "$3" -g "$4" -y "$5";
done

2 вариант, название треков мы нашли, и сохраняем их в файл, при запуске необходимо будет указать на этот файл, и скрипт считает название треков из файла и запишет их в тег Title, один ньюанс, название треков в файл нужно записывать в порядке:

1
10
11
2
3


Читаем файл с названиями треков и редактируем теги
else
for file in $1
do
index=`expr $index + 1`
title=`cat -b $6 | grep $index`
title2=`expr substr "$title" 8 100`;

if [[ $title == "" ]]
then
break
fi

#echo "$file -a "$2" -t $title2 -A $3 -g $4 -y $5";

mid3v2 "$file" -a "$2" -t "$title2" -A "$3" -g "$4" -y "$5";
#lltag "--$7" "$file" -a "$3" -t "$title2" -A "$4" -g "$5" -d "$6";
done
fi


Преобразуем теги в UTF

mid3iconv $1 -e UTF-8 -d
fi


Вот и все =)

Комментариев нет: