nouveau depot

This commit is contained in:
kyodev 2017-12-31 14:16:08 +01:00
parent adcb2e1f57
commit be2ada7907
1 changed files with 79 additions and 0 deletions

79
naguam/easyYoutubeDl Executable file
View File

@ -0,0 +1,79 @@
#!/bin/bash
# easyYoutubeDl
# v-0.3
# naguam
# $1=url, return 0|1, assigne $retour_entete si erreur
test_url(){ #30.12.2017
local user_agent="Mozilla/5.0 Firefox" entete
entete=$( wget --server-response --spider --timeout=5 --tries=2 --user-agent="$user_agent" "$1" -O - 2>&1)
if grep -iq 'HTTP/.*200 OK' <<< "$entete"; then
return 0 # retour HTTP/ 200 OK dans les entêtes
else
retour_entete=$( grep -i 'HTTP/' <<< "$entete" | tr -d '\n' | xargs )
return 1
fi
}
# [$1=message à afficher] et exit 1
die(){ # 31.12.2017
local RED="$(printf "\033[0;31m")" STD="$(printf "\033[0m")"
echo -e "$RED\nErreur critique:STD $*\n"
exit 1
}
# Set des expressions régulières nécessaires au test URL
regex='(https?)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]'
# Enregistrement de l'URL dans une variable
# read -p "Tappez l'url d'une vidéo ou d'une playlist : " url
###### tests ######
# url="https://www.youtube.com/watch?v=Q6c8X_s1h9Y"
# url="https://www.youtube.com/nimportequoi"
# format="ogg"
###################
while [ -z $done ]; do # remettre -z les tests finis
read -p "Tappez l'url d'une vidéo ou d'une playlist valide: " url
[[ "$url" =~ $regex ]] && done="ok"
done
# Enregistrement du format voulu
unset done
while [ -z $done ]; do # remettre -z les tests finis
read -p "Tapper le format: ogg ou mp3! : " format
format=${format,,}
[[ "$format" == 'ogg' || "$format" == 'mp3' ]] && done="ok"
done
if [ "$format" == 'ogg' ]; then
format='vorbis'
fi
test_url "$url" || die "$retour_entete ($url)\n url en défaut\n . vérifier la saisie\n" \
" . ou recommencer dans un moment\n . ou l'url est devenue invalide"
echo "tout a l'air ok"
youtube-dl --extract-audio --audio-format "$format" "$url"
# Possibilitées et idées
# <kyodev> mais en gros, dans la regex: .*youtu.*\.{1}[be|com].*
# si l'url a toujours la même structure:
# si la saisie ne commence pas par http alors url='https://www.youtube.com/watch?v='+"$url"
# plus simple pour l'utilisateur à saisir
# si url contient list= alors telle url
# si contient watch alors autre tyrpe
# sinon url = saisie seulement