diff --git a/youtube-dl-install-ubuntu2004.sh b/youtube-dl-install-ubuntu2004.sh new file mode 100755 index 0000000..9b189d4 --- /dev/null +++ b/youtube-dl-install-ubuntu2004.sh @@ -0,0 +1,96 @@ +#!/bin/bash + +############################################################# +# Author: Taryel Hlontsi, 2022 +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see +############################################################# + + +DIR=$HOME + +not_set() { + count=$(grep -Pcx "$1" "$2") + code=$? + if (( $code > 0 )) || (( $count == 0 )); then + true + else + false + fi +} + +which youtube-dl + +if (($? > 0)); then + sudo apt update + sudo apt install -y python3-pip + sudo apt install -y ffmpeg +fi + +pip install youtube-dl --upgrade --user + +SCRIPT="${DIR}/.local/bin/get-mp3.sh" +ALIAS="alias get-mp3='${SCRIPT}'" + +if test -f ~/.bash_aliases; then + if not_set "${ALIAS}" "${DIR}/.bash_aliases"; then + echo $ALIAS >> "${DIR}/.bash_aliases" + fi +else + echo $ALIAS > "${DIR}/.bash_aliases" +fi + +source "${DIR}/.bashrc" + +cat <<'EOF' > ${SCRIPT} +#!/bin/bash + +if [[ ! ${1+x} ]]; then + echo 'Provide a web link to the media file as an argument!' + exit -1 +else + URL=$(echo $1 | sed "s/\?list=.*//i") + echo "Link: ${URL}" +fi + +youtube-dl --list-formats $URL + +read -t 10 -p 'Select the format number from above [251]: ' FORMAT +echo $FORMAT + +if test -z "$FORMAT"; then + FORMAT=251 +else + if [[ ! $FORMAT =~ ^[0-9]+$ ]]; then + echo 'Specified format must be a number!' + exit -1 + fi +fi +echo "Format to be used: ${FORMAT}" + +youtube-dl --format $FORMAT \ +--no-call-home \ +--console-title \ +--ignore-config \ +--buffer-size 16K \ +--no-resize-buffer \ +--extract-audio \ +--audio-quality 0 \ +--audio-format mp3 \ +-o "~/Music/%(title)s.%(ext)s" \ +"${URL}" +EOF + +chmod u+x $SCRIPT + +echo "to use it run 'get-mp3' command followed by a URL link (in a new terminal session)"