You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
828 B
29 lines
828 B
#!/usr/bin/env zsh |
|
read_tags() { |
|
metaflac $1 --show-tag=ALBUM --show-tag=ARTIST --show-tag=GENRE --show-tag=DATE --show-tag=TITLE --show-tag=TRACKNUMBER --show-tag=TRACKTOTAL |\ |
|
sed s/=/~..~/ |\ |
|
awk -F'~..~' '{print $1"='\''"$2"'\''"}' |
|
} |
|
mime_is() { |
|
mimetype=$(file -b --mime-type $1) |
|
if [[ $mimetype == $2 ]]; then |
|
return 0 |
|
else |
|
return 1 |
|
fi |
|
} |
|
for i in $argv[@]; do |
|
if mime_is $i 'audio/x-flac'; then |
|
local original=$i |
|
eval $(read_tags $original) |
|
local out_dir=/home/von/Music/\[UNSORTED\]/$ARTIST/$ALBUM |
|
[[ -d $out_dir ]] || mkdir -p $out_dir |
|
local converted=$out_dir/${i%.*}.mp3 |
|
flac -c -d $original | lame -V0 --add-id3v2 --pad-id3v2 --ignore-tag-errors \ |
|
--ta $ARTIST --tt $TITLE --tl $ALBUM --tg ${GENRE:-12} --tn ${TRACKNUMBER:-0} --ty $DATE \ |
|
- $converted |
|
else |
|
return 1 |
|
fi |
|
done |
|
exit 0
|
|
|