Seite 1 von 1

Nachrichten der yt-dlp API von der Konsole abgreifen

Verfasst: Samstag 31. Dezember 2022, 01:15
von Mimags
Hallo zusammen, ich habe den Punkt erreicht in dem ich gerne Wissen würde wie man die Nachrichten einer API, die in Echtzeit auf die Konsole gesendet werden ausliest. Ich würde gerne eine Anzeige auf der Gui platzieren die zeigt wie weit der Download ist, und ich möchte erfahren ob ein Video verfügbar ist oder nicht (dies muss allerdings nicht so gehandhabt werden (bezieht sich auf die Verfügbarkeit)).

Zu meinem Code:
die request Methode führt alle essenziellen Daten zusammen
self.video_link und self.title sind listen die die angefragten Links und dessen Videotitel
Der gesamte Code ist soweit Bugfrei

Code: Alles auswählen

    def download(self):#(thread) beansprucht Infos, downloaded alle Videos auf einem Thread - ausbaufähig
            ydl = self.request()
            try:
                while not self.video_link == []:
                    with ydl: 
                        link = self.video_link[0]
                        self.frame.title(f"Downloade: {self.title[0]}")
                        ydl.extract_info(link, download= True)
                        
                        self.frame.title(f"{self.title[0]} befindet sich: {self.dirPath}")
                        self.video_link.pop(0)
                        self.title.pop(0)
                print("Downloader gestartet aber keine Daten da")

            except IndexError:
                print("Huha nix drin")
                return
                                    
            except yt_dlp.utils.DownloadError:
                print("Download Error")          
Also Frage die sich mir stellt ist: Wie kann man Api Nachrichten die als Konsolen Antwort eintreffen in Echtzeit verarbeiten?

Re: Nachrichten der yt-dlp API von der Konsole abgreifen

Verfasst: Sonntag 1. Januar 2023, 21:35
von __blackjack__

Re: Nachrichten der yt-dlp API von der Konsole abgreifen

Verfasst: Montag 2. Januar 2023, 15:54
von Mimags
Danke, ironischerweise hat keiner in meinem Netzwerk gemeint, lese mal die Read Me, xD.

Für alle die das Problem auch haben:
Das Tracken der Errors wird im Beispiel Code beschrieben.
Für alle Optionen die man sonst braucht/nutzen möchte gibt es da eine Optionenliste bei diesem Link:
https://github.com/ytdl-org/youtube-dl/ ... #L137-L312

Dort gibt es den Absatz progress_hooks und da kann man dann den Fortschritt loggen mit "downloaded_bytes"
Auch nützlich wird sein: "speed" (zeigt den Downloadspeed an), "eta" (zeigt an wie lange es noch geht)