Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Разбивает ape или flac файл на отдельные песни в соответствии с cue файлом.
- # Песни будут записаны в формате flac. Ибо нефиг.
- # в flac-файлах будут заполнены теги ( из cue-файла )
- # все теги будут в utf-8
- # flac-файлы будут переименованны в "<номер песни> - <название песни>.flac"
- # Входные параметры:
- # - тип разбиваемого файла, ape или flac
- # - кодировка cue-файла.
- # Требования:
- # - в каталоге должен быть только один ape либо flac файл
- # - в каталоге должен быть только один cue файл
- #
- # - наличие recode, cuetool, shntools, flac и mac
- # - recode должен быть из состава perl
- #defvar() {
- # if [ -z "$1" ]; then
- # return $2;
- # else
- # return $1;
- # fi
- #}
- ftype=$1; #"ape" "flac" "wavepack"
- fcoding=$2;
- if [ -z "$ftype" ] ; then ftype="flac" ; fi
- if [ -z "$fcoding" ] ; then fcoding="utf-8"; fi
- # подготовка. cuetag сильно глючит
- rename 's/\ /_/g' *.{flac,cue};
- # разобъём исходный файл на части
- cuebreakpoints *.cue | shnsplit -o wav *.${ftype} ;
- for a in split*.wav ; do
- # собственно кодирование
- flac --best --delete-input-file "$a";
- done;
- # пропишем корректные теги
- recode ${fcoding}..utf-8 *.cue;
- cuetag *.cue split*.flac;
- # переименуем файлы
- recode utf-8..${LANG#ru_RU.} *.cue;
- let a=1;
- for b in split*.flac; do
- mv "$b" "$(printf '%.2d - %s\n' "$(cueprint -t %n -n $a *.cue )" \
- "$(cueprint -t %t -n $a *.cue)").flac";
- let a=$a+1;
- done;
- # вернём почти всё как было
- rename 's/_/\ /g' *.cue
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement