Problème de portabilité d'un script batch

mon code batch ne fonctionne pas sur d'autres PC

Le problème exposé dans ce sujet a été résolu.

Bonjour à tous,

Je suis récemment penché sur le logiciel Youtube-dl (écrit en python), qui permet de télécharger des fichiers audio et vidéo à partir de n’importe quel site Internet. Pour faciliter à son usage pour les néophytes (et surtout ne pas devoir retaper les mêmes commandes à chaque téléchargement :D ), j’ai décidé de créer un script batch, avec une interface graphique.

Le bémol dans tout ça, c’est qu’il ne fonctionne que sur mon PC… Dès que je l’envoie à un pote ou que je modifie le fichier, l’affichage est mauvais, ou alors rien ne s’affiche du tout (la console s’ouvre et se ferme immédiatement après).

Voici donc mon code :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
@echo off

::Copyleft Maxime Vanderwegen (GNU-GPL).

@title Youtube DL
color F0
chcp 65001
cls

echo Bienvenue dans Youtube DL !
echo.

:accueil
echo 1. Télécharger une musique
echo 2. Télécharger une vidéo
echo 3. Quitter le Programmes
echo.
set /p choix="Que voulez-vous faire ? "

if %choix%==1 goto choixUrlAudio
if %choix%==2 goto choixUrlVideo
if %choix%==3 ( echo.
  echo Au revoir !
  timeout /t 1 /nobreak > nul & exit ) else ( echo. & echo "Veuillez sélectionner une option valide !" & echo. & goto accueil )

:choixUrlAudio
echo.
set /p url="Veuillez entrer l'URL d'une musique à télécharger : "
echo.
goto executionAudio

:choixUrlVideo
echo.
set /p url="Veuillez entrer l'URL d'une vidéo à télécharger : "
echo.
goto executionVideo

:executionAudio
start /b /wait youtube-dl -x --audio-format mp3 --metadata-from-title "%(artist)s - %(title)s" %url% --youtube-skip-dash-manifest --embed-thumbnail --add-metadata
echo.
timeout /t 2 /nobreak > nul
echo.
echo Musique téléchargée avec succès !
goto postProcessingAudio

:executionVideo
start /b /wait youtube-dl --metadata-from-title "%(artist)s - %(title)s" %url% --youtube-skip-dash-manifest --add-metadata
echo.
timeout /t 2 /nobreak > nul
echo.
echo Vidéo téléchargée avec succès !
goto postProcessingVideo

:postProcessingAudio
echo.
echo Postprocessing...
xcopy *.mp3 C:\Users\%username%\Music
echo.
echo Finished working bro !
goto end

:postProcessingVideo
echo.
echo Postprocessing...
xcopy *.webm C:\Users\%username%\Videos
echo.
echo J'ai fini de bosser !
goto end

:end
echo.
goto accueil

`

Ce qui donne ceci lors d’une exécution correcte :

Image utilisateur

Si je l’exécute sur un autre PC, le chemin du script ainsi que les instructions (echo, set, …) s’affichant en même temps que le texte de bienvenue et des menus, ou alors il s’ouvre et se ferme tout de suite, comme dit précédemment.

Quelqu’un aurait-il une idée de la source du problème?

Merci d’avance!

+0 -0

Je ne peux pas répondre à ta question, mais je peux te proposer ça, au vu de la problématique de départ : https://github.com/MrS0m30n3/youtube-dl-gui

Compatible Windows et Linux, plus abordable pour les néophytes que youtube-dl. Après, si tu tiens à faire mieux ou simplement t’amuser / t’entraîner, pas de soucis ^^ .

+0 -0

Salut Breizh,

Merci pour la rapidité de ta réponse. J’ai déjà eu l’occasion de tester Youtube-dl-gui par le passé, mais il n’a jamais voulu télécharger quoi que ce soit (je suis sous Windows 10)… Dommage il avait l’air prometteur (est-il toujours maintenu d’ailleurs ?).

Je le testerai dans une VM linux et on verra.

Sinon, oui en effet, la réalisation du script tient plus de l’amusement que d’autre chose :D .

Merci pour ton aide, au plaisir, Mx47

En effet, Nicox11, je n’ai pas montré dans ce topic un code "universel" avec un unique disque C. J’ai donc modifié mon code de présentation pour qu’il y corresponde. Je tient à préciser que sur les autres PC où j’ai testé mon code, j’avais modifié le paramètre des disques en C:\Users\%username%\... .

Sinon, s’il n’y a pas de disque C, ou que le fichier n’est pas reconnu, rien n’est déplacé et la commande xcopy est un échec.

Bonjour à tous,

Je déterre un peu le sujet (je sais, pas bien :D ), mais j’ai trouvé l’origine de mon problème ! Il se trouve que j’ai codé le script sous Win 10, qui supporte l’encodage UTF-8 pour les fichiers .bat, et que ce n’est pas le cas de ses prédécesseurs…

J’ai donc encodé mon fichier en ANSI, retiré tout les accents, et le tour était joué !

J’espère que ça aidera d’autres personnes.

Merci pour votre aide !

Super merci beaucoup !

Je suis content que finalement ce ne soit que ça :)

C’était tout bête mais quand on sait pas, ¯\_(ツ)_/¯
On peut pas le deviner …

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte