From c741f729807d18d4e47cfe1b9f560cf2439f6526 Mon Sep 17 00:00:00 2001 From: silvernode Date: Fri, 16 Jan 2015 15:11:53 -0600 Subject: [PATCH] separated files, added config file, added variable for zenity and ffmpeg --- README | 12 +++-- assets/zymp3.desktop | 9 ++++ assets/zymp3.png | Bin 0 -> 18126 bytes config/zymp3.conf | 23 ++++++++ lib/logic.lib | 121 +++++++++++++++++++++++++++++++++++++++++++ src/zymp3 | 59 +++++++++++++++++++++ 6 files changed, 220 insertions(+), 4 deletions(-) create mode 100755 assets/zymp3.desktop create mode 100644 assets/zymp3.png create mode 100644 config/zymp3.conf create mode 100644 lib/logic.lib create mode 100755 src/zymp3 diff --git a/README b/README index 308a38d..e48a28c 100644 --- a/README +++ b/README @@ -11,8 +11,10 @@ Dependencies ------------- * youtube-dl -* zenity -* vlc +* zenity or yad +* xdg-utils +* libnotify +* ffmpeg or avconvert Installation @@ -20,8 +22,10 @@ Installation 1. Open a terminal window 2. Navigate to the directory zymp3 is located -3. you@machine:~$ chmod +x zymp3 -4. ./zymp3 +3. you@machine:~$ cd zymp3/src +4. ./zymp3 + +TODO: standalone installer diff --git a/assets/zymp3.desktop b/assets/zymp3.desktop new file mode 100755 index 0000000..8238e2b --- /dev/null +++ b/assets/zymp3.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=Zymp3 +Comment=Convert youtube videos to mp3 +Exec=zymp3 +Icon=zymp3.png +Terminal=0 +Type=Application +Encoding=UTF-8 +Categories=AudioVideo;Application; diff --git a/assets/zymp3.png b/assets/zymp3.png new file mode 100644 index 0000000000000000000000000000000000000000..f046588334cb5c9ee5d5c3ba74d049ee5df8bec6 GIT binary patch literal 18126 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 literal 0 HcmV?d00001 diff --git a/config/zymp3.conf b/config/zymp3.conf new file mode 100644 index 0000000..5cf0a92 --- /dev/null +++ b/config/zymp3.conf @@ -0,0 +1,23 @@ +#!/bin/bash +#config.sh + +#Zymp3 Configuration File + + +#FILE SETTINGS + +#MUSICDIR must have trailing forward slash +MUSICDIR="/home/$USER/Music/" + +#You shouldn't need to change this filename but just in case +VIDEOFILE=/tmp/youtube-dl-$RANDOM-$RANDOM.flv + + +#GUI SETTINGS + + +URL_BOX_HEIGHT="64" +URL_BOX_WIDTH="512" + +FILENAME_BOX_HEIGHT="64" +FILENAME_BOX_WIDTH="326" diff --git a/lib/logic.lib b/lib/logic.lib new file mode 100644 index 0000000..5c03b7f --- /dev/null +++ b/lib/logic.lib @@ -0,0 +1,121 @@ +#!/bin/bash + + +SET_GUI_BIN="zenity" +SET_CONV_TOOL="ffmpeg" + +#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-5" --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 +} diff --git a/src/zymp3 b/src/zymp3 new file mode 100755 index 0000000..561e8f3 --- /dev/null +++ b/src/zymp3 @@ -0,0 +1,59 @@ +#!/bin/bash +############################################## +# Title: Zymp3 v0.1-5 +# Description: Convert youtube video to mp3 +# Author: Justin Moore +# Created: Oct 12, 2011 +# Updated: Jan 16, 2015 +# Contact: mollusk@homebutter.com +# github: https://github.com/silvernode/zymp3 +############################################## + + +#I wrote this in 2011 and realize now I could have done this alot better + + + + + +#check for config file in two locations +chk_conf(){ +if [ -f ~/.config/Zymp3/zymp3.conf ];then + source ~/.config/Zymp3/zymp3.conf + + +elif [ -f ../config/zymp3.conf ];then + source ../config/zymp3.conf + +else + echo -e "\e[1;31mERROR: No config file in $HOME/.config/Zymp3/ or ../config/ \e[0m" + zenity --error --text "No config file in $HOME/.config/Zymp3/ or ../config" + exit 0; +fi +} + +chk_libs(){ +if [ -f ../lib/logic.lib ];then + source ../lib/logic.lib + +else + echo -e "\e[1;31mERROR: No libraries file in found in ../libs \e[0m" + zenity --error --text "No libraries file in found in ../libs" + exit 0; +fi + +} + + +#call the main gui +main(){ + while true;do + chk_conf + chk_libs + gui + done + +} + +main +