Bonjour !
Je me suis fais un petit script pour télécharger des vidéos, avec une fenêtre de progression. Pour cela, j’utilise yad
(Yet Another Dialog, un fork de Zenity, plus complet) et un script Python qui récupère les URLs des vidéos d’une playlist YouTube.
Voilà le script :
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 | #!/bin/bash for url in "$@" do playlist=$($HOME/Softs/youParse.py $url) if [[ $playlist = "Incorrect Playlist." ]] then playlist="$url" fi compteur=0 total=$(echo $playlist | wc -w) for item in $playlist do compteur=$(( $compteur + 1 )) text=$(youtube-dl -e $item) youtube-dl --newline $item | grep --line-buffered -oP '^\[download\].*?\K([0-9.]+\%)' | yad --progress \ --title="Téléchargement" \ --text="Téléchargement $compteur sur $total\n$text" \ --percentage=0 --auto-kill --no-buttons --no-escape done done |
J’aimerais afficher une seconde barre de progression (avec --multi-progress
de yad
), même si à mon avis, en Bash, ça risque d’être difficile.
Cette seconde barre afficherait la progression totale (par rapport au nombre d’arguments passés), ou la progression de la playlist (ce qui est actuellement plus ou moins fait).
Pour cela, il faut que la sortie soit la suivante :
1 2 3 4 5 6 7 8 | 2:20% 1:1.0% 1:2.0% 1:… 1:100.0% 2:40% 1:1.0% … |
Il faut donc ajouter X:
devant la progression de youtube-dl, et parser les changement de vidéo de youtube-dl ( [download] Downloading video 1 of 12
, il me semble).
Je pense devoir faire un second script qui affichera ce qu’il faut sur la sortie standard, ou une fonction, mais je n’ai aucune idée de comment gérer, et si c’est possible.
Auriez-vous des idées ?
Breizh.