Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 27/04/2011, à 16:05

guilty80

[résolu]Probleme élaboration script bash

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.

   1. #!/bin/bash
   2. #
   3. #Modifiez votre chemin d'accés à ycatch.sh çi dessous
   4. directory="/home/sebastien/YoutubeDL"
   5. #
   6. #Modifiez le nom du dossier qui contiendra les musiques téléchargées
   7. music="Music"
   8. #
   9. #Modifiez le chemin de creation du dossier music çi dessous
  10. directoryMusic="/home/sebastien/YoutubeDL/"
  11. #
  12. #Ne pas modifier
  13. musicpath="$directoryMusic/$music"
  14. file1="$directory/videos.txt"
  15. file2="$directory/ycatch.txt"
  16. file3="$directory/urlrename.txt"
  17.
  18. #
  19. #Creation du dossier contenant les musiques
  20. if [ -d $musicpath ]; then
  21.     echo "le dossier music est présent"
  22. else
  23.     mkdir Music
  24.     echo "Le dossier music vient d'être créer"
  25. fi
  26. #
  27. #Création du fichier pour télécharger les musiques
  28. if [ -e $file1 ]; then
  29.     echo "fichier videos.txt présent - Veuillez le supprimer en cas de problemes"
  30. else
  31.     touch videos.txt
  32.     echo "fichier videos.txt généré"
  33. fi
  34. #
  35. #Création du fichier pour capter le clipboard
  36. if [ -e $file2 ]; then
  37.     echo "fichier ycatch.txt présent - Veuillez le supprimer en cas de problemes"
  38. else
  39.     touch ycatch.txt
  40.     echo "fichier ycatch.txt généré"
  41. fi
  42. #
  43. #Création du fichier pour capter l'url afin de renommer correctement
  44. if [ -e $file3 ]; then
  45.     echo "fichier urlrename.txt présent - Veuillez le supprimer en cas de problemes"
  46. else
  47.     touch urlrename.txt
  48.     echo "fichier urlrename.txt généré"
  49. fi
  50. #
  51. #Copie du clipboard vers ycatch.txt
  52. xclip -out -selection clipboard >> $file2
  53.
  54. #
  55. #Vérification des données récupérées
  56. if [ -s $file2 ]; then
  57.     echo "ycatch contient des données et vont être transférées dans videos.txt si elles sont valides"
  58.     less ycatch.txt | grep -o "http://www.youtube.com/watch?v=.*" | sort -u >> videos.txt
  59.     cut -c 32- ycatch.txt >> urlrename.txt
  60.         while read inputline
  61.         do
  62.           url="$(echo $inputline)"
  63.         done < urlrename.txt
  64.     if [ -s $file1 ]; then
  65.         echo "données valide, début de la phase de téléchargement"
  66.         # DL les video youtube du .txt
  67.         #
  68.         while read inputline
  69.         do
  70.           youtube_url="$(echo $inputline)"
  71.           youtube-dl -t $youtube_url
  72.         done < videos.txt
  73.          rm -f videos.txt
  74.          rm -f ycatch.txt
  75.          rm -f urlrename.txt
  76.
  77.         # Script pour Flv vers mp3.
  78.         if [ -e *.flv ]; then
  79.             echo "Fichier .flv détecté"
  80.             for i in *.flv;
  81.             do
  82.               f=$i
  83.               file=${f%$url.*}.mp3
  84.             #
  85.             #Vous pouvez modifier à vos risques et périls
  86.             #les donnés suivantes :
  87.             #ar est la valeur de la fréquence d'échantillonnage audio
  88.             #ab est la valeur du bitrate en bit/s
  89.             #ac est le nombre de canaux audio
  90.             ffmpeg -i $i -f mp3 -ar 44100 -ab 128000 -ac 2
  91.             $file
  92.             rm $i
  93.             mv -f $file Music
  94.             done
  95.         # Script pour mp4 vers mp3.
  96.         #
  97.         elif [ -e *.mp4 ]; then
  98.             echo "fichier mp4 détecté"
  99.             for f in *.mp4; do
 100.             newname=`echo $f | tr ' ' '_' `
 101.             mv "$f" $newname
 102.             f=$newname
 103.             mplayer $f -ao pcm:file=tmp.wav
 104.             lame -b 128 -q 2 tmp.wav ${f%.*}.mp3
 105.             rm -f tmp.wav
 106.             rm -f $f
 107.             done
 108.         else
 109.             echo "aucun fichier téléchargé"
 110.         fi
 111.     else
 112.         echo "Veuillez copier une URL valide"
 113.         rm -f videos.txt
 114.         rm -f ycatch.txt
 115.         rm -f urlrename.txt
 116.     fi
 117. else
 118.     echo "ycatch ne contient aucune données"
 119. fi

Dernière modification par guilty80 (Le 27/04/2011, à 16:47)

Hors ligne

#2 Le 27/04/2011, à 16:35

twocats

Re : [résolu]Probleme élaboration script bash

elif [ -e *.mp4 }; then

Erreur grossière :

elif [ -e *.mp4 ]; then

Et c'est quoi ces numéros de lignes partout ? C'est d'origine ?


La réponse est 42

Hors ligne

#3 Le 27/04/2011, à 16:45

guilty80

Re : [résolu]Probleme élaboration script bash

merci beaucoup euh les numéro c'est dans les préference de gedit

Hors ligne