Hallo liebes Forum,
ich habe mich vor ein paar Tage dann mal daran gewagt das erst Projekt auf meinem Pi umzusetzen.
Ich habe nach einer Möglichkeit gesucht Youtube Videos flüssig auf meinem Fernseher wiederzugeben und habe dazu zunächst youtube-dl zur generierung des Links benutzt, den ich dann über SSH mit dem omxplayer aufgerufen habe.
Um mich nicht immer einzuwählen habe ich beschlossen einen Apache Webserver auf meinem Pi laufen zu lassen, der eine Seite hostet auf der nur ein Eingabefeld ist, dessen Inhalt über die GET Methode an ein Pythonscript weitergeleitet wird. Dieses gereriert nun mittels subprocess.Popen und youtube-dl den Link für den omxplayer. Das Problem besteht nun darin, dass bis auf kurze Wartezeit (wahrscheinlich ausgehend von youtube-dl) nichts passiert. Mir wird nur ein Internal Server Error ausgegeben. Der omxplayer lässt sich aber auch nicht starten wenn ich den Link nicht von der html-page bekomme, sondern ihn in meinen Code einbaue. Außerdem führt ein Fehlstart das omxplayers dazu, dass er sich - zumindest mit YouTube links - nicht mehr öffnen lässt.
Ich würde nun gerne wissen wie ich am besten weiter vorgehe. Gibt es etwas beim starten des omxplayers als Subprocess zu beachten ? Ist dies überhaupt möglich ? Gibt es Alternativen um meine Idee umzusetzen.
Hier noch mein Script:
#!/usr/bin/python
import cgi
import cgitb
import subprocess
cgitb.enable(logdir="/home/pi")
form = cgi.FieldStorage()
link = form.getvalue("link")
p = subprocess.Popen(["youtube-dl", "-g", link], stdout=subprocess.PIPE)
link, err = p.communicate()
link = "\'"+link.rstrip() +"\'"
omx = subprocess.call(["omxplayer", "-o", "hdmi", link])
Alles anzeigen
Und meine HTML