Add youtube-dl installation script for Ubuntu 20.04
This commit is contained in:
parent
56665cba03
commit
377856a793
|
@ -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 <https://www.gnu.org/licenses/>
|
||||
#############################################################
|
||||
|
||||
|
||||
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)"
|
Loading…
Reference in New Issue