YouTube TV mit Webinterface

L I V E Stammtisch ab 20:30 Uhr im Chat
  • 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:

    Und meine HTML

    HTML
    <html><body>
    <h1>Youtube</h1>
    <p>Hier den entsprechenden Link einfügen:</p>
    <form action="/scripts/YTWeb.py" method="get">
    <p>Link: <input name="link" type="text" size="100"></p>
    </form>
    </body></html>
  • Auf den ersten Blick finde ich das ein wenig umständlich gemacht - wobei ich auch noch nicht ganz verstehe 'wieso' du das so machen möchtest ;)

    Was soll das denn bewirken?
    youtube-dl läd das Video herunter und anschließend soll die herunter geladene Datei über omxplayer über HDMI abgespielt werden?

    In deinem form fehlt aber auch noch ein submit Button um das Formular abzuschicken :)

  • Ich gucke meine Youtube Videos gerne auf dem Fernseher, habe aber keinen Smart TV, deshalb der PI.
    Und youtube-dl erzeugt nur einen für den omxplayer abspielbaren/streambaren Link.
    Der Button ist glaube ich nicht nötig, da ich mit der Eingabetaste meine Eingabe beende und die Weiterleitung ans Scrpit erfahrungsgemäß auch so funktioniert.

  • Ja gut aber was soll der apache2 denn damit machen? Der ruft jetzt nur das YTWeb.py script als Textdatei auf aber führt nicht das Script aus - zumindest is das bei mir so ;)

    8y12u3xpk8o.png
    mehr passiert bei mir leider nich

    Meinem Verständnis nach muss dem apache2 gesagt werden dass er das python Script ausführen soll, also über zB exec();

  • Versuchs mal nur so aus Spass mit folgendem:

    ytv.php
    [code=php]
    <html><body>
    <h1>Youtube</h1>
    <?php
    ini_set("max_execution_time", "2400");
    ob_implicit_flush(true);
    @ob_end_flush();
    if (isset($_GET['link']) AND !empty($_GET['link'])) {
    exec("/usr/bin/youtube-dl -g \"".$_GET['link']."\"", $output, $return_var);
    if (!empty($return_var)) {
    echo "<br/> ERROR: $return_var: $output";
    exit();
    }
    $link = $output[0];
    echo "Starting omxplayer Stream for:<br/> $link";
    exec("/usr/bin/omxplayer -o hdmi \"".$link."\"", $output, $return_var);
    if (!empty($return_var)) {
    echo "<br/> ERROR: $return_var: $output";
    }
    } else {
    ?>
    <p>Hier den entsprechenden Link einfügen:</p>
    <form action="" method="get">
    <p>Link: <input name="link" type="text" size="100"></p>
    </form>
    <?php
    }
    ?>
    </body></html>
    [/php]

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!