[ "$1" == "-D" ] && DEBUG=1 && shift 1
PS4='$SECONDS $LINENO: '
DOW=$(date +%a)
TODAY=$(date +%m/%d)
DOM=$(date +%d)
OS=$(uname -s)
NAME=${0##*/}
bl(){
[ "$DEBUG" == "1" ] && set -x
echo ""
}
html(){
vim -f +"syn on" +"set nonu" +"set foldenable!" +"set nospell" +"run! syntax/2html.vim" +"wq" +"q" $1
}
log(){
[ "$DEBUG" == "1" ] && set -x
logger -i -t "$NAME" "$*"
}
pause(){
[ "$DEBUG" == "1" ] && set -x
[ "$1" == "-nt" ] && TMOUT="" && shift
echo "$BY";
if [ $# -gt 0 ]
then
read -t $1 -r -p "${C}Hit any key (${BY}$1${C} second timeout)${N}" -n 1 FOO;
else
read -r -p "${C}Hit any key${N}" -n 1 FOO;
fi;
bl
}
xtitle(){
printf "\033]0;%s\007" "$*"
}
if [ "$1" == "-E" ]
then
vim $0
sed -i -e "7s/.*/# Updated....: $(date)/" $0
log "Updated $0"
html $0
cp $0 /var/www/unix
mv $0.html /var/www/unix
cp $0 /var/gopher/bin
exit
fi
if [ "$1" == "-h" ] || [ "$1" == "--help" ]
then
fmt -s -w $(tput cols) <<END
$NAME {files}
Converts mp4 files to mp3 files, removes source when completed and also does volume leveling.
END
exit
fi
command -v bash >/dev/null || sudo apt install bash -qyy
command -v ffmpeg >/dev/null || sudo apt install ffmpeg -yyq
command -v normalize-audio >/dev/null || sudo apt install normalize-audio -yyq
[ "$DEBUG" == "1" ] && set -x
TC=$(ls -l *mp4 *webm|wc -l)
CC=1
for FILE in "$@"
do
xtitle "Converting: $CC of $TC"
let "CC = CC + 1"
NAME=$(echo $FILE|cut -d'.' -f1)
echo "${BG}Converting:${BY} ${NAME}${N}"
ffmpeg -y -v 8 -stats -i $FILE $NAME.mp3 && \rm $FILE
done
which normalize-audio >/dev/null && normalize-audio -bv *.mp3
lm