#! /bin/bash #--------------------------------------------------------- # Variables #--------------------------------------------------------- version="v0.4" DATE_COMPRESS="$(date +%Y%m%d%H%M)" binarypath="$HOME/bin/youtube-dl" url="https://yt-dl.org/downloads/latest/youtube-dl" #--------------------------------------------------------- # Fonctions #--------------------------------------------------------- f_CreationDossier () { if [ ! -d "$1" ]; then mkdir -p "$1" echo "Le dossier $1 a été créé." fi } f_TouchePourContinuer () { read -p "Presser une touche pour continuer ou ctrl+C pour arrêter." CONT } f_youtubedlinstall () { echo "Installation de la version autonome." f_CreationDossier $HOME/bin/ wget --quiet $url -O $binarypath } f_DetectEditor () { if [ $(which mousepad) ]; then echo "mousepad est installé." editorytdl="mousepad" elif [ $(which pluma $devnl) ]; then echo "pluma est installé." editorytdl="pluma" elif [ $(which gedit $devnl) ]; then echo "gedit est installé." editorytdl="pluma" elif [ $(which geany $devnl) ]; then echo "geany est installé." editorytdl="pluma" elif [ $(which leafpad $devnl) ]; then echo "leafpad est installé." editorytdl="leafpad" elif [ $(which kate $devnl) ]; then echo "kate est installé." editorytdl="kate" elif [ $(which kwrite $devnl) ]; then echo "kwrite est installé." editorytdl="kwrite" elif [ $(which gvim $devnl) ]; then echo "gvim est installé." editorytdl="gvim" else echo "Aucun éditeur trouvé, mon script ne sera pas fonctionnel sur votre installation." exit fi } #--------------------------------------------------------- # Désinstallation #--------------------------------------------------------- if [ "$1" = "--delete" ]; then echo "Suppression des fichiers youtube-dl" echo "Une confirmation sera demandé pour chaque fichiers" echo "" f_TouchePourContinuer rm -vi $HOME/.local/share/applications/youtube-dl-update.desktop rm -vi $HOME/.local/share/applications/youtube-dl-gui.desktop rm -vi $HOME/bin/youtube-dl-pseudogui.sh rm -vi $HOME/bin/youtube-dl-update.sh rm -vi $HOME/bin/youtube-dl exit fi #--------------------------------------------------------- # Intro #--------------------------------------------------------- echo "" echo "youtube-dl-installs.sh" $version 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 youtube-dl dans ~/bin - ajouter des alias pour youtube-dl 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 les urls, une par ligne. Puis enregistrez le fichier. Le téléchargement des vidéos commence. EOF f_TouchePourContinuer clear #--------------------------------------------------------- # Installation youtube-dl #--------------------------------------------------------- f_youtubedlinstall #--------------------------------------------------------- # Detection éditeur de texte #--------------------------------------------------------- f_DetectEditor #--------------------------------------------------------- # Ajout bashrc #--------------------------------------------------------- echo "Ajout dans bashrc...";sleep 2 cat << "EOF" >> $HOME/.bashrc alias dl_video="~/bin/youtube-dl -f 'bestvideo[height<=480]+bestaudio/best[height<=480]' --restrict-filenames --output \"%(title)s\"" alias dl_video_original="~/bin/youtube-dl --restrict-filenames --output \"%(title)s\"" alias dl_musique="~/bin/youtube-dl --extract-audio --audio-format mp3 --restrict-filenames --output \"%(title)s.%(ext)s\"" alias dl_playlist="~/bin/youtube-dl --yes-playlist --restrict-filenames --output \"%(title)s\"" alias dl_playlistmp3="~/bin/youtube-dl --yes-playlist --extract-audio --audio-format mp3 --restrict-filenames --output \"%(title)s.%(ext)s\"" alias youtube-dl-update="~/bin/youtube-dl -U" EOF #--------------------------------------------------------- # Création des fichiers dans $HOME/bin #--------------------------------------------------------- echo "Création des scripts...";sleep 2 # CreationFichierYoutubeDlPseudoGui 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/youtube-dl" EOF echo "$editorytdl \$file" >> $HOME/bin/youtube-dl-pseudogui.sh cat << "EOF" >> $HOME/bin/youtube-dl-pseudogui.sh cd $dir for line in $(cat $file); do notify-send -t 20000 "Téléchargement vidéo commencé..." "$line" $youtubedlbinary $line if [ "$?" != "0" ]; then echo "Erreur, le script va s'arreter." notify-send -t 20000 "Youtube-dl erreur" "Une erreur est survenue dans le téléchargement de $line" exit else notify-send -t 20000 "Téléchargement vidéo terminé." "$line" fi done EOF # CreationFichierYoutubeDlUpdate cat << "EOF" > $HOME/bin/youtube-dl-update.sh #! /bin/bash return=$($HOME/bin/youtube-dl --update) notify-send -t 20000 "youtube-dl" "$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 $HOME/bin/youtube-dl #--------------------------------------------------------- # 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 #--------------------------------------------------------- # Ajout des icones #--------------------------------------------------------- echo "Ajout des icones...";sleep 2 mkdir -p $HOME/.icons/ urlicon="https://nxcl.djan-gicquel.fr/index.php/s/SFMLFq9MHAk4P8G/download" wget --quiet $urlicon -O "$HOME/.icons/youtube.png" echo "Installation terminée."