summaryrefslogtreecommitdiff
path: root/flac-to-mp3.zsh
blob: fbd81035dd835d852ccfa94331d808e92b9f2441 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/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