#! /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-pseudogui 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."