#1 Le 27/04/2011, à 15: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, à 15:47)
Hors ligne
#2 Le 27/04/2011, à 15: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, à 15: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