dependencies: ffmpeg, lame, youtube-dl, nautilus
works great in gnome or in console tweak it for your own purposes
#!/bin/bash ICON=/usr/share/icons/YouTube_icon.png function notify { notify-send -i $ICON "Youtube ripping" "$1"; echo -e "\033[1m$1\033[0m"; } function fail { notify-send -i $ICON "Error while ripping" "$1"; echo -e "\033[1m$1\033[0m"; exit 1; } FOLDER=~/Music/YouTube if ! which lame &>/dev/null; then fail "lame not installed"; fi if ! which ffmpeg &>/dev/null; then fail "ffmpeg not installed"; fi if ! which youtube-dl &>/dev/null; then fail "youtube-dl not installed"; fi if [ ! -d $FOLDER ]; then mkdir -p $FOLDER; fi; if [ $# -lt 1 ]; then nautilus --browser $FOLDER & exit 0; fi if [ $# -gt 1 ];then FOLDER=$2 fi TMP=`mktemp` TITLE=`youtube-dl -e $1` notify "Getting $TITLE" if [ $? -ne 0 ];then fail $1; fi; #notify "Found $TITLE" #notify "Saving video temporarily in $TMP" youtube-dl -o $TMP $1 if [ $? -ne 0 ];then rm -f $TMP;fail "Error while getting ($TITLE)"; fi; TMPWAV=`mktemp` ffmpeg -y -i "$TMP" -v 0 -vn -f wav $TMPWAV 2>/dev/null if [ $? -ne 0 ];then rm -f $TMP $TMPWAV;fail "Extracting audio from ($TITLE) failed"; fi; lame -h --vbr-new -V 4 $TMPWAV "$FOLDER/$TITLE.mp3" if [ $? -ne 0 ];then rm -f $TMP $TMPWAV; fail "Encoding of ($TITLE) failed"; else notify "Ripped $TITLE for your pleasure at $FOLDER/$TITLE.mp3" fi; rm -f $TMP $TMPWAV
No comments:
Post a Comment