YouTube Videos in Python Programm einbetten?

2 Antworten

Das geht auch mit dem freien Multimedia-Framework GStreamer. Hier der Download: https://gstreamer.freedesktop.org/download/ Für Windows, Mac und Linux erhältlich.

GStreamer lässt sich in Python, C, C#, C++ und Java einbinden.

Hier gibt es ein Tutorial wie man mit Python und GStreamer eine MP3 abspielt. Das dient dem Verständis von Gstreamer: https://www.youtube.com/watch?v=CK2nwlEqan8 Dann kann man auch es so anpassen das man eine Youtube-URL abspielen kann.

Dann kann man das in sein Programm einbauen.

Hallo xXSkyWalkerXx1,

erzeugst Du mit Python ein Html welches dann von einem Browser interpretiert wird?

Oder möchtest Du das Video direkt mit Python anzeigen?

nur wie man es mittels http macht.

Da vermute ich, dass Zweiteres der Fall ist.

Du benötigst also einen Python-Video-Player, bzw. eine Lib mit entsprechender API.

Gruß

xXSkyWalkerXx1 
Fragesteller
 27.06.2018, 16:57

Hey, ich möchte es direkt mit Python anzeigen. :)

Allerdings, wie würde das denn mittels Interpretierung des Browsers funktionieren?

Denn YouTube stellt ja durch https://developers.google.com/youtube/youtube_player_demo eine fertige HTML bereit.

0
AldoradoXYZ  27.06.2018, 17:13
@xXSkyWalkerXx1

Hallo xXSkyWalkerXx1,

na Du könntest mit Python einen Web-Service schreiben. Dieser würde dann zum Beispiel über Port 80, auf Anfrage, ein html mit entsprechendem Inhalt zurückgeben.

Das html hast Du ja bereits.

Gruß

0
AldoradoXYZ  27.06.2018, 17:21
@xXSkyWalkerXx1

Ähm, sehe ich überhaupt nicht so. Einen Web-Service zu schreiben ist simpel. Einen Videoplayer zu schreiben, der dann evtl. noch Daten von YouTube lädt würde ich als wesentlich umfangreicher beurteilen. Ok, wenn es nur um Abspielen geht, also ohne die üblichen Funktionen (an beliebige Position springen, pausieren, etc.) ist es weniger, aber noch immer wesentlich umfangreicher.

Ist natürlich nur meine subjektive Meinung. Wer mir einen 10-Zeiler-Videoplayer zeigen kann, der sollte das bitte tun. Mit entsprechenden Libs ist das sicherlich sogar möglich und würde sogar dem xXSkyWalkerXx1 helfen.

Gruß

0
AldoradoXYZ  27.06.2018, 17:27
@AldoradoXYZ

Vielleicht könntest Du dein Programm und die gewünschten Features etwas genauer erklären, damit man erkennen kann, was Du genau brauchst. Wäre möglicherweise zielführender.

Gruß

0
xXSkyWalkerXx1 
Fragesteller
 27.06.2018, 18:21
@AldoradoXYZ

Danke, ich schau mal nach!

Mal ne andere Frage: Bei meiner GUI ist es so, wenn ich auf ein Button klicke, öffnets einige Widgets (natürlich gewollt). Klicke ich auf einen anderen Button öffnets zwar auch deren Widgets, wird aber nach unten verlegt - die Widgets davor verschwinden also nicht. Hast du dafür auch nen Lösungsvorschlag? ^^

0
AldoradoXYZ  27.06.2018, 18:26
@xXSkyWalkerXx1

Natürlich verschwinden die Widgets nicht einfach so, die werden ja auch nicht "einfach so" angezeigt. Du musst sie ganz konkret ausblenden, das also implementieren.

Kannst gern die Code über Pastebin zeigen und dann sehe ich mir das an.

Gruß

0
xXSkyWalkerXx1 
Fragesteller
 27.06.2018, 18:37
@AldoradoXYZ
def aimbotSettings():
    titleLabel = tkinter.Label(frameRight, text = "Aimbot", foreground = "red", font = "arial 33 bold")
    titleLabel.pack(side="top",pady=12)

    phLabel = tkinter.Label(frameRight, text = "PLACEHOLDER FOR PREVIW VIDEO!")
    phLabel.pack(pady = 65)

    info1Label = tkinter.Label(frameRight, text = "Information/en:",foreground = "red",font = "arial 18 bold") 
    info1Label.pack()
    
    info2Label = tkinter.Label(frameRight, text = "<Aktuell stehen noch keine Infos zur Verfügung!>",font = "arial 10") 
    info2Label.pack(pady=25)

    label1 = tkinter.Label(frameRight, text = "Einstellungen:",foreground = "red",font = "arial 18 bold")
    label1.pack()
    
    label2 = tkinter.Label(frameRight, text = "Schaltung:",font = "arial 10")
    label2.pack()
    toggle = tkinter.StringVar()
    toggle.set("FALSE")
    on = tkinter.Radiobutton(frameRight, text = " ON",variable=toggle,value="TRUE")
    on.pack()
    off = tkinter.Radiobutton(frameRight, text = "OFF",value="FALSE")
    off.pack()
    
    label3 = tkinter.Label(frameRight, text = "Geschwindigkeit Zoom-In:",font = "arial 10")
    label3.pack()
    
    entry1 = tkinter.Entry(frameRight)
    entry1.pack()
    
    label4 = tkinter.Label(frameRight, text = "Geschwindigkeit Zoom-Out:",font = "arial 10")
    label4.pack()
    
    entry2 = tkinter.Entry(frameRight)
    entry2.pack()


def aimassistSettings():
    titleLabel = tkinter.Label(frameRight, text = "AimAssist", foreground = "red", font = "arial 33 bold")
    titleLabel.pack(side="top",pady=12)

    phLabel = tkinter.Label(frameRight, text = "PLACEHOLDER FOR PREVIW VIDEO!")
    phLabel.pack(pady = 65)

    info1Label = tkinter.Label(frameRight, text = "Information/en:",foreground = "red",font = "arial 18 bold") 
    info1Label.pack()
    
    info2Label = tkinter.Label(frameRight, text = "<Aktuell stehen noch keine Infos zur Verfügung!>",font = "arial 10") 
    info2Label.pack(pady=25)

    label1 = tkinter.Label(frameRight, text = "Einstellungen:",foreground = "red",font = "arial 18 bold")
    label1.pack()

    label2 = tkinter.Label(frameRight, text = "Schaltung:",font = "arial 10")
    label2.pack()
    toggle = tkinter.StringVar()
    toggle.set("FALSE")
    on = tkinter.Radiobutton(frameRight, text = " ON",variable=toggle,value="TRUE")
    on.pack()
    off = tkinter.Radiobutton(frameRight, text = "OFF",value="FALSE")
    off.pack()
    
    label3 = tkinter.Label(frameRight, text = "Geschwindigkeit:",font = "arial 10")
    label3.pack()
    
    entry1 = tkinter.Entry(frameRight)
    entry1.pack()
    
    label4 = tkinter.Label(frameRight, text = "Y - Wert:",font = "arial 10")
    label4.pack()
    
    entry2 = tkinter.Entry(frameRight)
    entry2.pack()
    
    label5 = tkinter.Label(frameRight, text = "X - Wert:",font = "arial 10")
    label5.pack()
    
    entry3 = tkinter.Entry(frameRight)
    entry3.pack()

                                       
#Hauptfenster
mainwindow = tkinter.Tk()
mainwindow.title("xXSkyWalkerXx1 - Fortnite S.G.I. Tool")
mainwindow.resizable(0,0)                   #Verhindert Möglichkeit Fenster zu vergrößern
mainwindow.geometry("1200x521")             #Größe des Fensters - modul.funktion(pixelX,pixelY)

#Hauptfenstereinteilung
frameLeft = tkinter.Frame(mainwindow,width=200,height=300,relief="sunken",bd=0)
frameLeft.pack(side="left",expand=1,fill="both")
frameRight = tkinter.Frame(mainwindow, width=500,height=400,relief="sunken",bd=0)
frameRight.pack(side="right",expand=1,fill="both")

#Widgets
infoLabel = tkinter.Label(frameLeft, text = "InGame Layout:", font = "arial 27 bold", foreground = "orange")  #Gibt Text in Arial, Größe 25 und Art fettgedruckt aus
infoLabel.pack(pady=12)

layoutButton = tkinter.Button(frameLeft, text = "Layout Settings", command = layoutSettings)
layoutButton.pack(pady=8)

#Leerzeichen (Wie?)

infoLabel = tkinter.Label(frameLeft, text = "Mods:", font = "arial 27 bold", foreground = "orange")  #Gibt Text in Arial, Größe 25 und Art fettgedruckt aus
infoLabel.pack(pady=12)

aimbotButton = tkinter.Button(frameLeft, text = "Aimbot", command = aimbotSettings)
aimbotButton.pack(pady=8)

aimassistButton = tkinter.Button(frameLeft, text = "AimAssist", command = aimassistSettings)
aimassistButton.pack(pady=8)

mainwindow["menu"] = menuLeiste


mainwindow.mainloop()

Das ist der Code in sehr verkürtzter Art.

0