133 lines
2.9 KiB
Bash
133 lines
2.9 KiB
Bash
#!/bin/bash
|
|
|
|
source config/zymp3.conf
|
|
|
|
if [ ! -f /usr/bin/yad ];then
|
|
SET_GUI_BIN="zenity"
|
|
elif [ ! -f /usr/bin/zenity ];then
|
|
SET_GUI_BIN="yad"
|
|
else
|
|
SET_GUI_BIN="${SET_GUI_BIN}"
|
|
fi
|
|
|
|
if [ ! -f /usr/bin/ffmpeg ];then
|
|
SET_CONV_TOOL="avconv"
|
|
else
|
|
SET_CONV_TOOL="ffmpeg"
|
|
fi
|
|
#convert youtube videos to mp3 with zenity progess bar
|
|
backend()
|
|
{
|
|
|
|
youtube-dl --output=${VIDEOFILE} --format=18 "$1" | ${SET_GUI_BIN} --progress --pulsate --title="Downloading..." --text="Downloading video, please wait.." --auto-close
|
|
|
|
if [ ! -f $VIDEOFILE ];then
|
|
${SET_GUI_BIN} --error --text "Can't convert video to mp3 because it does not exist, it probably failed to download."
|
|
exit 0;
|
|
|
|
elif [ -f $VIDEOFILE ];then
|
|
${SET_CONV_TOOL} -i $VIDEOFILE -acodec libmp3lame -ac 2 -ab 128k -vn -y "$2" | ${SET_GUI_BIN} --progress --pulsate --title="Converting..." --text="Converting video to mp3.." --auto-close
|
|
rm ${VIDEOFILE}
|
|
|
|
else
|
|
echo -e "\e[1;31mERROR: It seems the video file successfully downloaded, however it was not converted to mp3 \e[0m"
|
|
${SET_GUI_BIN} --error --text "It seems the video file successfully downloaded, however it was not converted to mp3"
|
|
fi
|
|
}
|
|
|
|
|
|
#first zenity gui window (paste youtube link)
|
|
gui()
|
|
{
|
|
VIDURL=$(${SET_GUI_BIN} --title="Zymp3 0.1-6" --height=${URL_BOX_HEIGHT} --width=${URL_BOX_WIDTH} --entry --text "Paste youtube link here: ")
|
|
|
|
if [[ $? == 0 ]] ; then
|
|
gui2
|
|
else
|
|
exit 0;
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
#second gui window to name your mp3 file
|
|
|
|
gui2()
|
|
{
|
|
AUDIOFILENAME=$(${SET_GUI_BIN} --title="Filename" --height=${FILENAME_BOX_HEIGHT} --width=${FILENAME_BOX_WIDTH} --entry --text "Name your file: ")
|
|
|
|
if [[ $? == 0 ]] ; then
|
|
dconvert
|
|
else
|
|
exit 0;
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#notify the user that the mp3 file has been moved to their music folder
|
|
open()
|
|
{
|
|
|
|
|
|
if [[ $? == 0 ]] ; then
|
|
xdg-open "${MUSICDIR}${AUDIOFILENAME}.mp3"
|
|
else
|
|
exit 0;
|
|
fi
|
|
|
|
|
|
}
|
|
|
|
#Check if MUSICDIR exists and create the directory if not
|
|
#move the mp3 file to the users music directory
|
|
move()
|
|
{
|
|
if [ -d ${MUSICDIR} ];then
|
|
mv -v "${AUDIOFILENAME}.mp3" ${MUSICDIR}
|
|
elif [ ! -d ${MUSICDIR} ];then
|
|
mkdir ${MUSICDIR}
|
|
mv -v "${AUDIOFILENAME}.mp3" ${MUSICDIR}
|
|
|
|
fi
|
|
|
|
|
|
}
|
|
|
|
checkFile()
|
|
{
|
|
|
|
#check if mp3 file exists
|
|
if [ -f "${MUSICDIR}${AUDIOFILENAME}.mp3" ];then
|
|
notify-send "${AUDIOFILENAME}.mp3 was saved in ${MUSICDIR}"
|
|
${SET_GUI_BIN} --question --title="Hey!" --text="I moved $AUDIOFILENAME.mp3 to $MUSICDIR, do you want to play it now?"
|
|
|
|
elif [ ! -f "${MUSICDIR}${AUDIOFILENAME}.mp3" ];then
|
|
${SET_GUI_BIN} --error --text "The mp3 file was does not exist. Either the download failed or the video was not converted to mp3 properly"
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
dconvert()
|
|
{
|
|
|
|
#call backend function and pass video URL and input of mp3 file
|
|
backend "${VIDURL}" "${AUDIOFILENAME}.mp3"
|
|
|
|
#call the move function to send mp3 files to MUSICDIR
|
|
move
|
|
|
|
#check if mp3 file is in MUSICDIR before prompting to play
|
|
checkFile
|
|
|
|
|
|
|
|
open
|
|
}
|