Problème élaboration script linux

Résolu/Fermé
guilty80 - Modifié par mamiemando le 27/04/2011 à 21:14
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 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
A voir également:

1 réponse

mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
27 avril 2011 à 21:14
Merci pour ces précisions, je ferme le sujet ;-)
0