# Contributor: Thiago Okada <thiago DOT mast3r AT gmail DOT com>
pkgname=mp3ify
pkgver=0.1
pkgrel=1
pkgdesc="Converts directory structures with a lot of audio formats to mp3"
url="https://wiki.archlinux.org/index.php/Convert_Any_To_Mp3"
arch=('i686' 'x86_64')
license=('GPL')
depends=('lame' 'mutagen' 'mplayer')
provides=('mp3ify')
build() {
echo "#!/bin/bash
DEFAULT_OUTPUT_DIR=/tmp/mp3ify
VBR_QUALITY=0
function any_to_mp3 {
PIPE=\`mktemp -u -t mp3ify.pipe.XXXXXX\`
mkfifo \"\$PIPE\"
mplayer -ao pcm -ao pcm:file=\"\$PIPE\" \"\$INPUT_FILE\" -noconsolecontrols > /dev/null 2>&1 &
lame --vbr-new -V \$VBR_QUALITY \"\$PIPE\" \"\$OUTPUT_FILE\" > /dev/null 2>&1
rm \"\$PIPE\"
python2 -c \"
import mutagen
input = mutagen.File(\\\"\$INPUT_FILE\\\", easy = True)
output = mutagen.File(\\\"\$OUTPUT_FILE\\\", easy = True)
for tag in [ 'artist', 'album', 'tracknumber', 'date', 'genre', 'title', 'comment' ]:
value = input.get(tag)
if value: output[tag] = value[0]
output.save(v1=2)\"
}
function usage {
echo \"mp3ify <input_dir> [<output_dir>]
Transforms structure <input_dir>/X/Y/.../Z into structure <output_dir>/X/Y/.../Z
according to the following rules:
flac, ogg, m4a, ape, aac, mpc files will be encoded to mp3 preserving tags.
Everything else will be copied without modification.
Requires: mplayer, lame, mutagen.
\"
exit 1
}
INPUT_DIR=\"\$1\"
[ -d \"\$INPUT_DIR\" ] || usage
OUTPUT_DIR=\"\${2:-\$DEFAULT_OUTPUT_DIR}\"
find \"\$INPUT_DIR\" -name '*.*' | while read INPUT_FILE
do
INPUT_EXTENSION=\"\${INPUT_FILE##*.}\"
OUTPUT_FILE=\"\$OUTPUT_DIR/\${INPUT_FILE#\$INPUT_DIR}\"
mkdir -p \"`dirname \"\$OUTPUT_FILE\"`\"
case \$INPUT_EXTENSION in
flac|m4a|ogg|ape|aac|mpc)
OUTPUT_FILE=\"\${OUTPUT_FILE%.\$INPUT_EXTENSION}.mp3\"
echo -n \"Converting \${INPUT_FILE##*/}... \"
any_to_mp3
;;
*)
echo -n \"Copying \${INPUT_FILE##*/}... \"
cp \"\$INPUT_FILE\" \"\$OUTPUT_FILE\"
;;
esac
echo \"done.\"
done
" > mp3ify
}
package() {
mkdir -p ${pkgdir}/usr/bin
install ${srcdir}/mp3ify ${pkgdir}/usr/bin
}