63 lines
1.3 KiB
Bash
Executable File
63 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# from http://www.linuxtutorialblog.com/post/solution-converting-flac-to-mp3
|
|
|
|
OUT_DIR=${OUT_DIR:="$HOME/tmp/mp3"}
|
|
[ ! -d ${OUT_DIR} ] && mkdir -p ${OUT_DIR}
|
|
|
|
# modify the lame options to your
|
|
# preference
|
|
lame_opts=" --vbr -V 2 -B 256 "
|
|
|
|
for x in "${@}"
|
|
do
|
|
FLAC=${x}
|
|
MP3=`basename "${FLAC%.flac}.mp3"`
|
|
|
|
[ -r "$FLAC" ] || { echo can not read file \"$FLAC\" >&1 ; exit 1 ; } ;
|
|
|
|
TITLE=""
|
|
TRACKNUMBER=""
|
|
GENRE=""
|
|
DATE=""
|
|
COMMENT=""
|
|
ARTIST=""
|
|
ALBUM=""
|
|
Title=""
|
|
Tracknumber=""
|
|
Genre=""
|
|
Date=""
|
|
Comment=""
|
|
Artist=""
|
|
Album=""
|
|
|
|
metaflac --export-tags-to=- "$FLAC" | sed 's/=\(.*\)/="\1"/' > $OUT_DIR/tmp.tmp
|
|
|
|
. $OUT_DIR/tmp.tmp
|
|
rm $OUT_DIR/tmp.tmp
|
|
|
|
[ -z "$TITLE" ] && TITLE="$Title"
|
|
[ -z "$TRACKNUMBER" ] && TRACKNUMBER="$Tracknumber"
|
|
[ -z "$GENRE" ] && GENRE="$Genre"
|
|
[ -z "$DATE" ] && DATE="$Date"
|
|
[ -z "$COMMENT" ] && COMMENT="$Comment"
|
|
[ -z "$ARTIST" ] && ARTIST="$Artist"
|
|
[ -z "$ALBUM" ] && ALBUM="$Album"
|
|
|
|
echo "Converting ${FLAC} to MP3 format"
|
|
|
|
OUTFILE="${OUT_DIR}/$ARTIST/${DATE}_$ALBUM/$MP3"
|
|
mkdir -p "${OUT_DIR}/$ARTIST/${DATE}_$ALBUM"
|
|
flac -c -d "$FLAC" | twolame -r ${lame_opts} - "$OUTFILE"
|
|
|
|
id3v2 \
|
|
-a "$ARTIST" \
|
|
-A "$ALBUM" \
|
|
-t "$TITLE" \
|
|
-c "$COMMENT" \
|
|
-g "$GENRE" \
|
|
-y "$DATE" \
|
|
-T "$TRACKNUMBER" \
|
|
"$OUTFILE"
|
|
|
|
done
|