J'ai besoin d'intimité. Non pas parce que mes actions sont douteuses, mais parce que votre jugement et vos intentions le sont.
5124 links
!!! ATTENTION !!! une erreur dans mon affichage fait que je suis obligé de mettre une espace :
address
et }
dans l'url youtube de la fonction ydlmp3
{
et 1:-
et 2:-
dans les attributions de variables.Pensez à les supprimer pour que ça fonctionne.
Edit : python2 n'étant plus maintenu, il faut utiliser python3 et ses outils dérivés (pip3 notamment)
#!/bin/bash
set -e -u -o pipefail
IFS=$'\n\t'
on_error() { echo "Error on or near line $1; exiting with status $2"; exit "$2"; }
trap 'on_error ${LINENO} $?' ERR
confirm()
{
read -r -p "${ 1 } [y/N] " response
case "$response" in
[yY][eE][sS]|[yY])
true
;;
*)
false
;;
esac
}
updateYoutubedl() {
#sudo curl -L https ://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
#sudo chmod a+rx /usr/local/bin/youtube-dl
sudo -H pip3 install --upgrade youtube_dl
}
# Usage `ydlmp3 8WZEPtN8_f0 "Kina Grannis/New"` for record in "Musique/Kina Grannis/New" or
# `ydlmp3 8WZEPtN8_f0` for record in "Musique"
ydlmp3() {
readonly origin=$(pwd)
#default value is an empty string (because of ":-" notation)
local address=${ 1:-}
local dirname=${ 2:-}
cd ~/Musique/
if [ ! -z "${dirname}" ];
then
if [ ! -d "${dirname}" ];
then mkdir "${dirname}/"
fi
cd "${dirname}/"
fi
if confirm "Do you want to update ?"; then
updateYoutubedl
fi
echo "File will be recorded in \"$(pwd)\" folder"
youtube-dl --extract-audio --audio-format mp3 https ://www.youtube.com/watch?v="${address }"
cd "${origin}"
}
# Usage `ydlmovies 8WZEPtN8_f0 "dir"` for record in "~/Téléchargements/dir" or
# `ydlmovies 8WZEPtN8_f0` for record in "~/Téléchargements/"
ydlmovies() {
readonly origin=$(pwd)
local dirname=${ 1:-}
if [ ! -z "${dirname}" ];
then
cd ~/Téléchargements/
if [ ! -d "${dirname}" ];
then mkdir "${dirname}/"
fi
cd "${dirname}/"
else
cd ~/Téléchargements/
fi
if confirm "Do you want to update ?"; then
updateYoutubedl
fi
youtube-dl --batch-file "~/urls"
cd "${origin}"
if [ -f ~/urls ]; then
if confirm "Do you want to delete urls ?"; then
cat /dev/null > ~/urls
fi
fi
}
# Usage `ydlmp3list`
ydlmp3list() {
readonly origin=$(pwd)
local dirname=${ 1:-}
cd ~/Musique/
if [ ! -z "${dirname}" ];
then
if [ ! -d "${dirname}" ];
then mkdir "${dirname}/"
fi
cd "${dirname}/"
fi
if confirm "Do you want to update ?"; then
updateYoutubedl
fi
echo "File will be recorded in \"$(pwd)\" folder"
youtube-dl --extract-audio --audio-format mp3 --batch-file "~/urls"
cd "${origin}"
if [ -f ~/urls ]; then
if confirm "Do you want to delete urls ?"; then
cat /dev/null > ~/urls
fi
fi
}
Je place cela dans le fichier .bashrc
(ou .bash_ytdl
si dans le fichier .bashrc
j'ai mis le code suivant :
# Youtube-dl functions.
# You may want to put all your additions into a separate file like
# ~/.bash_ytdl, instead of adding them here directly.
if [ -f ~/.bash_ytdl ]; then
. ~/.bash_ytdl
fi
)
Pour les scripts ydlmovies
et ydlmp3list
, il faut avoir enregistré les urls des fichiers que l'on souhaite télécharger, dans un fichier urls
dans le dossier Home
(une ligne par url).