guilty80
-
Modifié par mamiemando le 27/04/2011 à 21:14
mamiemando
Messages postés33079Date d'inscriptionjeudi 12 mai 2005StatutModérateurDernière intervention23 avril 2024
-
27 avril 2011 à 21:14
Bonjour a tous, je viens de passer 9 heures consécutives à la réalisation d'un script bash qui me permet de télécharger une video youtube en utilisant le liens enregistrer dans le presse papier, cette vidéo est ensuite réencoder en mp3 puis renommer afin de retirer les lettres de l'url de la video et ensuite placé dans un dossier music. Jusque là tout allez bien et puis la fatigue m'a sans doute fait faire des bétises que je suis incapable de dicerner. Voici pourquoi je viens poster ici mon code intégrale (100 lignes environ) afin que vous puissiez me dire où çà coince, le téléchargement fonctionne parfaitement pour les .flv mais pour le mp4 çà telecharge puis s'arete brusquement en me donnant l'erreur : "aucun fichier téléchargé." ainsi qu'un missing [119]. P.S: je suis sur linux depuis 2 jours donc c'est fais à l'arrache.
#!/bin/bash
#
#Modifiez votre chemin d'accés à ycatch.sh çi dessous
directory="/home/sebastien/YoutubeDL"
#
#Modifiez le nom du dossier qui contiendra les musiques téléchargées
music="Music"
#
#Modifiez le chemin de creation du dossier music çi dessous
directoryMusic="/home/sebastien/YoutubeDL/"
#
#Ne pas modifier
musicpath="$directoryMusic/$music"
file1="$directory/videos.txt"
file2="$directory/ycatch.txt"
file3="$directory/urlrename.txt"
#
#Creation du dossier contenant les musiques
if [ -d $musicpath ]; then
echo "le dossier music est présent"
else
mkdir Music
echo "Le dossier music vient d'être créer"
fi
#
#Création du fichier pour télécharger les musiques
if [ -e $file1 ]; then
echo "fichier videos.txt présent - Veuillez le supprimer en cas de problemes"
else
touch videos.txt
echo "fichier videos.txt généré"
fi
#
#Création du fichier pour capter le clipboard
if [ -e $file2 ]; then
echo "fichier ycatch.txt présent - Veuillez le supprimer en cas de problemes"
else
touch ycatch.txt
echo "fichier ycatch.txt généré"
fi
#
#Création du fichier pour capter l'url afin de renommer correctement
if [ -e $file3 ]; then
echo "fichier urlrename.txt présent - Veuillez le supprimer en cas de problemes"
else
touch urlrename.txt
echo "fichier urlrename.txt généré"
fi
#
#Copie du clipboard vers ycatch.txt
xclip -out -selection clipboard >> $file2
#
#Vérification des données récupérées
if [ -s $file2 ]; then
echo "ycatch contient des données et vont être transférées dans videos.txt si elles sont valides"
less ycatch.txt | grep -o "https://www.youtube.com/*" | sort -u >> videos.txt
cut -c 32- ycatch.txt >> urlrename.txt
while read inputline
do
url="$(echo $inputline)"
done < urlrename.txt
if [ -s $file1 ]; then
echo "données valide, début de la phase de téléchargement"
# DL les video youtube du .txt
#
while read inputline
do
youtube_url="$(echo $inputline)"
youtube-dl -t $youtube_url
done < videos.txt
rm -f videos.txt
rm -f ycatch.txt
rm -f urlrename.txt
# Script pour Flv vers mp3.
if [ -e *.flv ]; then
echo "Fichier .flv détecté"
for i in *.flv;
do
f=$i
file=${f%$url.*}.mp3
#
#Vous pouvez modifier à vos risques et périls
#les donnés suivantes :
#ar est la valeur de la fréquence d'échantillonnage audio
#ab est la valeur du bitrate en bit/s
#ac est le nombre de canaux audio
ffmpeg -i $i -f mp3 -ar 44100 -ab 128000 -ac 2
$file
rm $i
mv -f $file Music
done
# Script pour mp4 vers mp3.
#
elif [ -e *.mp4 }; then
echo "fichier mp4 détecté"
for f in *.mp4;
do
newname='echo $f | tr ' ' '_' '
mv "$f" $newname
f=$newname
mplayer $f -ao pcm:file=tmp.wav
lame -b 128 -q 2 tmp.wav ${f%.*}.mp3
rm -f tmp.wav
rm -f $f
done
else
echo "aucun fichier téléchargé"
fi
else
echo "Veuillez copier une URL valide"
rm -f videos.txt
rm -f ycatch.txt
rm -f urlrename.txt
fi
else
echo "ycatch ne contient aucune données"
fi
Résolu j'avais oublié de metter un crochet ici elif [ -e *.mp4 }; then