youtube-dl-install/youtube-dl-install.sh

196 lines
6.1 KiB
Bash

#! /bin/bash
if [ ! $(which zenity) ];then
echo "Zenity n'est pas installé, installer zenity et relancer le script.";exit
fi
#---------------------------------------------------------
# Variables
#---------------------------------------------------------
binarypath="$HOME/bin/yt-dlp"
url="https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp"
#---------------------------------------------------------
# Fonctions
#---------------------------------------------------------
f_TouchePourContinuer () {
read -p "Presser une touche pour continuer ou ctrl+C pour arrêter." CONT
}
f_youtubedlinstall () {
echo "Installation de la version autonome."
mkdir -p $HOME/bin/
wget --quiet $url -O $binarypath
}
#---------------------------------------------------------
# Désinstallation
#---------------------------------------------------------
if [ "$1" = "--delete" ]; then
echo "Suppression des fichiers youtube-dl"
echo ""
f_TouchePourContinuer
rm -v $HOME/.local/share/applications/youtube-dl-update.desktop
rm -v $HOME/.local/share/applications/youtube-dl-gui.desktop
rm -v $HOME/bin/youtube-dl-pseudogui.sh
rm -v $HOME/bin/youtube-dl-update.sh
rm -v $binarypath
exit
fi
#---------------------------------------------------------
# Intro
#---------------------------------------------------------
echo ""
echo "youtube-dl-installs.sh"
cat << "EOF"
par Djan GICQUEL (https://djan-gicquel.fr)
Script mono-utilisateur
Pour supprimmer les fichiers créé par ce script, ajouter --delete en option.
----------------------------------------------------------------------------
Ce que fait ce script :
- créer le dossier ~/bin/
- télécharger le binaire de yt-dlp dans ~/bin
- ajouter des alias pour yt-dlp dans le .bashrc
- créer les scripts bash dans ~/bin
- ajouter les lanceurs dans le menu principal
Utilisation :
Ce script ajoute deux nouvelles icones dans votre menu principal.
- youtubedl-pseudogui ; qui permet de télécharger des vidéos
- youtubedl-update ; qui permet de mettre à jour youtube-dl
Pour télécharger une ou plusieurs vidéos lancer "youtubedl-pseudogui" et coller l'url.
Valider, le téléchargement des vidéos commence.
EOF
f_TouchePourContinuer
clear
#---------------------------------------------------------
# Installation youtube-dl
#---------------------------------------------------------
f_youtubedlinstall
#---------------------------------------------------------
# Ajout bashrc
#---------------------------------------------------------
echo "Ajout dans bashrc...";sleep 2
cat << "EOF" >> $HOME/.bashrc
alias dl_video="~/bin/yt-dlp -f 'bestvideo[height<=480]+bestaudio/best[height<=480]' --restrict-filenames --output \"%(title)s\""
alias dl_video_original="~/bin/yt-dlp --restrict-filenames --output \"%(title)s\""
alias dl_musique="~/bin/yt-dlp --extract-audio --audio-format mp3 --restrict-filenames --output \"%(title)s.%(ext)s\""
alias dl_playlist="~/bin/yt-dlp --yes-playlist --restrict-filenames --output \"%(title)s\""
alias dl_playlistmp3="~/bin/yt-dlp --yes-playlist --extract-audio --audio-format mp3 --restrict-filenames --output \"%(title)s.%(ext)s\""
alias youtube-dl-update="~/bin/yt-dlp -U"
EOF
#---------------------------------------------------------
# Création des fichiers dans $HOME/bin
#---------------------------------------------------------
echo "Création des scripts...";sleep 2
# Creation Fichier YoutubeDlPseudoGui
cat << "EOF" >> $HOME/bin/youtube-dl-pseudogui.sh
#! /bin/bash
dir="$HOME/Téléchargements/"
file="/tmp/youtubedlurl_$(date +%d%b%Y%H%M%S).txt"
youtubedlbinary="$HOME/bin/yt-dlp"
cd $dir
url=$(zenity --width 500 --entry --title "url à télécharger")
$youtubedlbinary $url
if [ "$?" != "0" ]; then
echo "Erreur, le script va s'arreter."
notify-send -i ~/.icons/youtube.png "yt-dlp erreur" "Une erreur est survenue dans le téléchargement de $url"
exit
else
notify-send ~/.icons/youtube.png" "yt-dlp" "Téléchargement vidéo terminé."
fi
EOF
cat << "EOF" >> $HOME/bin/youtube-dl-audio.sh
#! /bin/bash
dir="$HOME/Téléchargements/"
file="/tmp/youtubedlurl_$(date +%d%b%Y%H%M%S).txt"
youtubedlbinary="$HOME/bin/yt-dlp"
cd $dir
url=$(zenity --width 500 --entry --title "url à télécharger en audio")
$youtubedlbinary --extract-audio --audio-format mp3 --restrict-filenames $url
if [ "$?" != "0" ]; then
echo "Erreur, le script va s'arreter."
notify-send -i ~/.icons/youtube.png "yt-dlp erreur" "Une erreur est survenue dans le téléchargement de $url"
exit
else
notify-send ~/.icons/youtube.png" "yt-dlp" "Téléchargement vidéo terminé."
fi
EOF
# Creation Fichier YoutubeDlUpdate
cat << "EOF" > $HOME/bin/youtube-dl-update.sh
#! /bin/bash
return=$($HOME/bin/yt-dlp --update)
notify-send -t 20000 "yt-dlp" "$return"
EOF
# Droits des scripts
chmod a+x $HOME/bin/youtube-dl-update.sh
chmod a+x $HOME/bin/youtube-dl-pseudogui.sh
chmod a+x $binarypath
#---------------------------------------------------------
# Ajout des lanceurs
#---------------------------------------------------------
echo "Création des lanceurs...";sleep 2
mkdir -p $HOME/.local/share/applications/
cat << "EOF" > $HOME/.local/share/applications/youtube-dl-update.desktop
[Desktop Entry]
Encoding=UTF-8
Type=Application
Categories=Utility;
Name=youtubedl-update
Comment=Mettre à jour Youtube-dl
Exec=sh bin/youtube-dl-update.sh
Icon=youtube
EOF
cat << "EOF" > $HOME/.local/share/applications/youtube-dl-gui.desktop
[Desktop Entry]
Encoding=UTF-8
Type=Application
Categories=Utility;
Name=youtubedl-video
Comment=Télécharger des vidéos sur Youtube ou d'autres sites
Exec=sh bin/youtube-dl-pseudogui.sh
Icon=youtube
EOF
cat << "EOF" > $HOME/.local/share/applications/youtube-dl-audio.desktop
[Desktop Entry]
Encoding=UTF-8
Type=Application
Categories=Utility;
Name=youtubedl-audio
Comment=Télécharger des vidéos sur Youtube au format mp3
Exec=sh bin/youtube-dl-audio.sh
Icon=youtube
EOF
#---------------------------------------------------------
# Ajout des icones
#---------------------------------------------------------
echo "Ajout des icones...";sleep 2
mkdir -p $HOME/.icons/
urlicon="https://git.djan-gicquel.fr/youtube-dl-install/raw/dev/youtube.png"
wget --quiet $urlicon -O "$HOME/.icons/youtube.png"
echo "Installation terminée."