пятница, 26 февраля 2010 г.

Резалка APE

Скачал дискографию The Doors, в APE формате, а mpd, который у меня щас в качестве плеера, не показывает отдельные треки. Буквально за 5 секунд нашёл решение вопроса, как это всё порезать, за авторством уважаемого Barlog_M:

Copy Source | Copy HTML
#!/bin/sh
 
CUE_COUNT=`ls -l *.cue | wc -l`
if [ $CUE_COUNT != "1" ]; then
    echo "Don't know which CUE to use"
    exit
else
    CUE_INPUT_FILE=`ls *.cue`
    echo "Using $CUE_INPUT_FILE"
fi
 
APE_COUNT=`ls -l *.ape | wc -l`
if [ $APE_COUNT != "1" ]; then
    echo "Don't know which APE to use"
    exit
else
    APE_INPUT_FILE=`ls *.ape`
    echo "Using $APE_INPUT_FILE"
fi
 
CONVERT_FROM="cp1251"
WORK_CUE="work.cue"
PREFIX="track"
 
#    convert tags if necessary
if [ -n "$CONVERT_FROM" ]; then
    cat "$CUE_INPUT_FILE" | iconv -f "$CONVERT_FROM" -t utf8 > ${WORK_CUE}
else
    cp "$CUE_INPUT_FILE" ${WORK_CUE}
fi
 
 
# split and tag tracks
cuebreakpoints work.cue | shnsplit -o flac -a ${PREFIX} "$APE_INPUT_FILE"
cuetag work.cue "$PREFIX"*.flac
 
 
# there's no standard way to set the year - using this 'kostyl'
year=`grep DATE work.cue | sed -e "s/.*DATE[ \t]*//"`
metaflac --set-tag="DATE=$year" "$PREFIX"*.flac
 
 
# remove temporary cue
rm ${WORK_CUE}
 
 
# rename tracks using pattern 01 - <title01>.flac, 02 - <title02>.flac, ...
for file in *.flac; do
    number=`metaflac --show-tag=TRACKNUMBER $file | sed -e "s/.*=//"`
    title=`metaflac --show-tag=TITLE $file | sed -e "s/.*=//"`
    mv $file "`printf "%02i" $number` - $title.flac"
done
 

Я этот скрипт назвал cut. Смысл - кладём его в папочку с APE и запускаем. В реультате получается кучка файлов, с нумерами и названиями, очень хорошо !

Да! Надо, чтобы был установлен пакет cuetools, чтобы работало :-)