60 lines
1.6 KiB
Bash
Executable File
60 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
##makedesc: Install youtube-dl (src)
|
|
|
|
set -eo pipefail
|
|
|
|
installed() { command -v "$1" >/dev/null 2>&1; }
|
|
|
|
install() {
|
|
echo
|
|
echo "==============================================="
|
|
echo "Installing youtube-dl"
|
|
echo "==============================================="
|
|
echo
|
|
|
|
# https://github.com/ytdl-org/youtube-dl#installation
|
|
|
|
if ! installed make; then
|
|
if [ "$(uname -s)" = "Darwin" ]; then
|
|
echo "ERROR: Install Xcode Command Line Tools first." >&2
|
|
exit 1
|
|
else
|
|
sudo apt install -y make
|
|
fi
|
|
fi
|
|
mkdir -p "$HOME/install/youtube-dl" "$HOME/.local/bin"
|
|
|
|
if installed git; then
|
|
if [ -d "$HOME/install/youtube-dl" ]; then
|
|
cd "$HOME/install/youtube-dl"
|
|
git pull
|
|
else
|
|
git clone https://github.com/ytdl-org/youtube-dl.git "$HOME/install/youtube-dl" --depth=1 --single-branch
|
|
fi
|
|
else
|
|
if ! installed wget; then
|
|
if [ "$(uname -s)" = "Darwin" ]; then
|
|
echo "ERROR: Install wget or use git." >&2
|
|
exit 1
|
|
else
|
|
sudo apt install -y wget
|
|
fi
|
|
fi
|
|
wget -q --show-progress https://github.com/ytdl-org/youtube-dl/archive/refs/heads/master.zip -O "$HOME/install/youtube-dl.zip"
|
|
unzip -oq "$HOME/install/youtube-dl.zip" -d "$HOME/install/youtube-dl"
|
|
fi
|
|
|
|
cd "$HOME/install/youtube-dl"
|
|
make youtube-dl
|
|
mv youtube-dl "$HOME/.local/bin/"
|
|
|
|
echo
|
|
echo "Finish!"
|
|
youtube-dl --version
|
|
echo
|
|
}
|
|
|
|
case "$1" in
|
|
*) install ;;
|
|
esac
|