barre de progression via Youtube-dl.exe

a marqué ce sujet comme résolu.
Auteur du sujet

Bonjour à tous,

Je découvre Python depuis 1 mois.

je souhaite afficher une barre de progression lors du lancement de cette commande python

_filepath_ = ["C:\!TEST!" + chr(92) + "youtube-dl" + chr(46) + "exe ", "https://www.youtube.com/watch?v=S-wCup9oi74"]
subprocess.run(_filepath_)

J’ai trouvé ces deux script p1.py p2.py. La compréhension du fonctionnement est claire suite à la lecture.

Dans le script 1.py, il fait référence à une liste (fichiers) à charger en affichant une barre de progression.

J’ai modifié le script 2.py pour faire appel à un exécutable externe à python pour le lancer avec des arguments. Il fonctionne correctement.

Je cherche à imbriquer filepath dans 1.py. Depuis 2 jours, mes multiples tests ne donnent rien.

De l’aide s’il vous plaît. Merci pour votre temps

+0 -0

Tu utilises Python ?

Alors pourquoi ne pas utiliser youtube-dl directement ? C’est codé en Python.

ache.one                 🦹         👾                                🦊

+0 -0
Auteur du sujet

cela ne résout pas le problème de la liaison entre URL à télécharger et la barre de progression. On trouve une multitude d’info comment créer une barre de progression mais pas d’exemple avec un liaison URL de téléchargement. Je n’ai pas de connaissance python ou autre. Je viens de m’y mettre

+0 -0

Poste tes codes directement sur le site. Allez sur Mega, c’est galère et pas pérenne.

Tu là veux comment ta barre de progression ? Sur un site web ? En console ?

En lançant le programme avec submodule, tu auras du mal à récupérer la progression, alors qu’en appelant directement le code Python tu pourras récupérer la progression.

Pour créer la barre, il va falloir apprendre, on ne va pas le faire pour toi. Si c’est tkinter que tu souhaites faire alors tu peux utiliser les widgets de ttk.

import tkinter as tk
from tkinter import ttk


class SampleApp(tk.Tk):

    def __init__(self, *args, **kwargs):
        tk.Tk.__init__(self, *args, **kwargs)
        self.button = ttk.Button(text="start", command=self.start)
        self.button.pack()
        self.progress = ttk.Progressbar(self, orient="horizontal",
                                        length=200, mode="determinate")
        self.progress.pack()

    def start(self):
        self.progress["value"] = 0
        self.progress["maximum"] = 6000
        self.progress_info()

    def progress_info(self):
        if self.progress["value"] + 100 < self.progress["maximum"]:
          self.progress["value"] += 100
        else:
          self.progress["value"] += 100
        self.after(250, self.progress_info)


app = SampleApp()
app.mainloop()

Par exemple. C’est rigolo car je suis justement entrain de jouer avec youtube-dl là.

ache.one                 🦹         👾                                🦊

+1 -0
Auteur du sujet

je connais ces types de script que tu as mis …. merci

je ne tiens pas à se que l’on fasse le code pour moi. Je désire être guidé avec les explications explicites Cela fais 3 semaines que je découvre le python. je n’ai pas de connaissance ne programmation ardue

Édité par prajanth

+0 -0

Si tu connais « ces types de scripts »
Quel est le problème donc ?

Tu n’as qu’à modifier progress["value"] quand le téléchargement avance.

Pour avoir la progression du téléchargement, comme je te l’ai dis dans mon premier message, je te conseil d’utiliser directement le module python « youtube-dl » qui est très bien documenté (comment l’utiliser, son fonctionnement est un peu plus obscure je trouve).

ache.one                 🦹         👾                                🦊

+0 -0

Salut,

Comme l’a dit ache, utilises le module youtube_dl, tu vas pouvoir attacher une callback progress_hook qui reçoit en paramètre un objet qui a toutes les infos concernant l’avancement (octets téléchargés, taille totale, vitesse de téléchargement, temps estimé etc…) et te servir de ceux-ci pour donner les valeurs à ta progress bar

Ce que je ne sais pas en revanche, c’est comment ne pas bloquer ton ui

jadis @leroivi - all in all we’re just another brick in the wall

+1 -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