Audiograb script

From Maze's wiki
Jump to: navigation, search

For this audiograb script to run you need some packages to be installed:

  • cd-discid
  • icedax
  • vorbis-tools
#!/bin/bash
cdinfo=`cd-discid /dev/sr0`
discid=`echo "${cdinfo}" | cut -d\  -f 1`
noftracks=`echo "${cdinfo}" | cut -d\  -f 2`
cdinfocddb=`echo ${cdinfo} | sed 's/ /+/g'`
cddbcdsummaries=`wget "http://freedb.freedb.org/~cddb/cddb.cgi?cmd=cddb+query+${cdinfocddb}&hello=maze+ma-ze.nl+grab.sh+1.0&proto=6" -O - -q | tail -n +2 | head -n -1`
nofcddbcdsummaries=`echo "${cddbcdsummaries}" | wc -l`
chosensummary=1
[ "${nofcddbcdsummaries}" -ne "1" ] && echo "${cddbcdsummaries}" | nl && read -p "Select correct CD [1]:" chosensummarycustom
[ "${chosensummarycustom}" != "" ] && chosensummary=${chosensummarycustom}
cddbcdsummary=`echo "${cddbcdsummaries}" | head -n ${chosensummary} | tail -n 1 | cut -d\  -f -2 | sed 's/ /+/g'`
cddbcdfullinfo=`wget "http://freedb.freedb.org/~cddb/cddb.cgi?cmd=cddb+read+${cddbcdsummary}&hello=maze+ma-ze.nl+grab.sh+1.0&proto=6" -O - -q`
[ "${noftracks}" -lt "10" ] && noftrackslz=0
artistname=`echo "${cddbcdfullinfo}" | grep 'DTITLE' | tr -d "\r" | tr -d "\n" | sed 's/DTITLE=//g' | cut -d/ -f 1 | sed 's/^\ *//' | sed 's/\ *$//'`
albumname=`echo "${cddbcdfullinfo}" | grep 'DTITLE' | tr -d "\r" | tr -d "\n" | sed 's/DTITLE=//g' | cut -d/ -f 2- | sed 's/^\ *//' | sed 's/\ *$//'`

read -p "Enter Artist [${artistname}]:" artistnamecustom
[ "${artistnamecustom}" != "" ] && artistname=${artistnamecustom}
read -p "Enter Albumname [${albumname}]:" albumnamecustom
[ "${albumnamecustom}" != "" ] && albumname=${albumnamecustom}
read -p "Enter Genre [${genre}]:" genrecustom
[ "${genrecustom}" != "" ] && genre=${genrecustom}
read -p "Enter Year [${year}]:" yearcustom
[ "${yearcustom}" != "" ] && year=${yearcustom}
mkdir -p "${artistname}"/"${albumname}"

track=0
while [ "${track}" -lt "${noftracks}" ]
do
  leadingzero=""
  [ "${track}" -lt "9" ] && leadingzero=0
  trackname=`echo "${cddbcdfullinfo}" | grep 'TTITLE'${track}'=' | tr -d "\r" | tr -d "\n" | sed 's/TTITLE[0-9]*=//' | sed 's/^\ *//' | sed 's/\ *$//'`
  read -p "Enter title for track $leadingzero$(($track+1)) [${trackname}]:" tracknamecustom
  [ "${tracknamecustom}" != "" ] && trackname=${tracknamecustom}
  tracks[${track}]=${trackname}
  track=$((${track}+1))
done

track=0
while [ "${track}" -lt "${#tracks[@]}" ]
do
  leadingzero=""
  [ "${track}" -lt "9" ] && leadingzero=0
  trackfilename=`echo "${tracks[$track]}" | sed 's/\//_/g'`
  icedax -q -D /dev/sr0 -O wav -t $((${track}+1)) - | oggenc -q 5 -Q -t "${tracks[$track]}" -G "${genre}" -a "${artistname}" -l "${albumname}" -d "${year}" -N "${leadingzero}$((${track}+1))/${noftrackslz}${noftracks}" -o "$artistname/$albumname/$leadingzero$(($track+1))-$trackfilename.ogg" -
  track=$((${track}+1))
done