Stream-Link aus Web-Interface eines Enigma2 Receivers

Hallo Leute,

aus dem Web-Interface eines Enigma 2-Receivers kann man einen Stream starten der ein beliebiges TV-Programm oder eine Aufzeichnung auf dem aufrufenden Rechner z.B. im Windows Media Player zeigt.

Ich versuche seit Tagen diesen Link der aus dem Web-Interface generiert wird nachzustellen - bisher ohne Erfolg.
Im Firefox hat man ja die Möglichkeit die Website zu untersuchen und sich alle möglichen Informationen anzeigen zu lassen, aber auch dieses hat (bei meinen Kenntnissen) bisher nicht zum Erfolg beigetragen…

Kann mir jemanden sagten wir der korrekte Aufruf aussehen müsste?

Von der Struktur sollte es ja so sein:
http://dreambox/web/stream.m3u?ref={servicereference}

Nur wie muss die {servicereference} syntaktisch aussehen?

Joachim

Moin Joachim!

Die SRef muss so eingegeben, wie sie mein Modul bei dir ausspuckt (falls du mein Modul verwendest). Du könntest also die SRef aus der Variable auslesen und einfach hinten an die URL anfügen (wenn ich das grad richtig im Kopf habe).

Bei mir sieht ein direkter Aufruf zum Stream dann wie folgt aus:

[b]http://192.168.x.x:8001/1:0:19:.....[/b]

Das mit …/web/stream.m3u ist nur der Aufruf der „Playlist-Datei“ in der die Stream-ULR enthalten ist. Je nachdem wo du was wie einbauen willst, musst du dann auf die M3U-URL zurückgreifen oder direkt auf die Stream-URL.

Die Playlist-URL wäre dann z.B.:

[b]http://192.168.x.x/web/stream.m3u?ref=1%3A0%3A19......[/b]

>> „%3A“ ist der „:“ in der URL

Grüße,
Chris

Hallo Chris,

habe Dein Enigma Modul nicht, dann hätte ich da gerne mal geschaut…:smiley:

Ich werde das heute Abend mal probieren, vielen Dank erst einmal für den Ansatz!
(Bei den Aufzeichnungen gab es da bei Dir Probleme mit dem urlencode der Servicereferenz, weil diese ja Leer- und Sonderzeichen im Dateinamen enthält?)

Joachim

Aufzeichnungen? Probleme? Du meinst die EPG-Infos von Aufnahmen? Die kommen aus einer XML. Oder meinst du was anderes? Gab beim Modul aber bisher keine Probleme und auch bei der Erstellung ist mir nichts besonderes aufgefallen.

Wenn ich dir sonst noch irgendwie weiterhelfen kann > bitte per E-Mail bei mir melden. Bin hier ja im Forum nicht mehr aktiv. War nur ein Zufall, dass ich deinen Beitrag gesehen habe.

Grüße,
Chris

…nein, geht um das Streamen der Aufzeichnungen. Bei TV ist die Servivereferenz ja nur eine Nummerfolge mit Doppelpunkten, bei Aufzeichnungen besteht diese Servicereferenz (aus der XML) aus der Nummernfolge mit Doppelpunkten + Pfad + Dateinamen. Wenn man das per urlencode umwandelt, dann werden u.a. auch die / der Pfadangaben verändert…

Wo finde ich denn Deine E-Mail-Adresse?

Joachim

Hmmm…ich dachte du bist bei meinen Modulen mit dabei :confused: Wohl geirrt…dann nicht :smiley:

-Chris-

…für die die es interessiert:
Einen Stream des TV-Progamms starten geht beispielsweise so:

$Targetlink = "http://".$IP."/web/stream.m3u?ref=".urlencode((string)$xmlResult->e2event[2]->e2eventservicereference)."&name=".urlencode((string)$xmlResult->e2event[2]->e2eventservicename);

Wo habe ich das nach lange Suche gefunden? Im Quellcode des OpenWebIf.

Das funktioniert so weit.:slight_smile:

Hier soll es ja noch alternativ die Möglichkeit geben, den Sream zu starten ohne die Frage was man mit der m3u-Datei machen soll…

Die Funktionsweise steht wahrscheinlich auch in dem Link, mir ist es aber nicht gelungen ein Stream zu erzeugen, vielmehr wurde immer begonnen den Stream zu speichern…

Ich hänge auch noch an der Möglichkeit eine Aufzeichnung als Stream zu starten.
Hier habe ich auch im QuellcodeInformationen gefunden.

Der Kern ist wohl in dieser Zeile:

href='/web/ts.m3u?file=$quote($movie.filename)'

Doch wie muss der Aufruf vom Syntax komplett sein?
Im Browser konnte ich von der OpenWebIf-Website folgendes als Beispiel isolieren:

'/media/hdd/movie/20151103%200855%20-%20Sky%20007%20HD%20-%20Casino%20Royale.ts'

(man beachte: dieses ist leider nicht deckungsgleich mit einem urlencode ( [e2filename] ) aus der Movielist!)

Joachim

In der Enigma2 WebInterface API Documentation sind alle Befehle und deren Aufruf dokumentiert unter dem Dreambox Wiki findest Du weitergehende Erläuterungen, da findest Du auch die von Dir gesuchten.

Hallo Fonzo,

diese API-Dokumentation und deren partielle Erläuterungen kenne ich selbstverständlich, nur ist das bei weitem nicht so weit detailliert wie man (oder ich) es bräuchte.
Ich habe es gestern Abend noch hinbekommen - zumindest in der Variante, dass aus dem Webfront heraus durch Klick auf das Programm bzw. die Aufzeichnung der Stream mit der Abfrage mit welchem Programm geöffnet werden soll.

Damit passt das erst einmal, wenn da Interesse besteht kann ich das hier gerne noch mal posten, ansonsten ist es ja in meinem Enigma2-PHP-Modul für alle sichtbar…:wink:

Joachim

Wie weit bist Du denn inzwischen damit kann man das schon sinnvoll ausprobieren oder ist das noch Beta?

Nun, es funktioniert so weit wie ich es benutze. Es gibt sicherlich noch viele Ideen die man da noch umsetzen könnte und wahrscheinlich noch den einen oder anderen Fehler.
Insbesondere bei mehr Funktionalität in den HTML-Tabellen könnte den Nutzen weiter erhöhen…

Joachim

Dann schaue ich mir das gerne mal näher an was Du da gebastelt hast.

…bin für Fehlererkennung und sinnvolle Erweiterungen immer dankbar![emoji6]

Joachim

Wo sollen die Fehlermeldungen denn hin? In den Thread hier? ich komme schon bei instalieren nicht weiter

enigma2-error1.png

Hallo Fonzo,

das ist mir jetzt etwas unangenehm:mad: - Fehler sollte jetzt aber gefixt sein! (zumindest der):slight_smile:

Fehlermeldung und anderes zum Thema am Besten in den PHP-Modul-Thread
Passt vielleicht von der Überschrift nicht so ganz, kann man dann ansonsten ja vielleicht noch mal trennen.

Joachim

Das Thema mit dem Modul Index und den Repositories ist ja schon anderweitig diskutiert worden, wie das jeder persönlich handhabt ist ja einem selber überlassen. Imho würde es dennoch bevorzugen wenn Instanzen die einem vollkommen anderen Zweck dienen auch in einem eigenen Respository geführt werden. Erstens werden diese dann später im Modulindex besser gefunden. Zweitens ist es imho überflüssig das Raspberry Pi GPIO Modul mitzuinstallieren wenn dann später jemand z.B. nur Dein Enigma Modul nutzten will. Drittens hat das dann am besten auch einen anderen Thread im Forum sonst kommt man ja irgendwann thematisch durcheinander.

…solche Gedanken gingen mir auch schon durch den Kopf…
Hätte auch noch weitere Vorteile, muss mal sehen wie man das bei Github am Besten abbildet…

Joachim

Einfach ein zweites Repository erstellt mit eigener Readme, oder was meinst Du mit „bei Github am Besten abbildet“?

…naja, folgende Idee:
Derzeit ist die Struktur ja:
Symcon Modules
—README.md
—library.json
—Modul 1
------form.json
------module.json
------module.php
—Modul 2
------form.json
------module.json
------module.php
—Modul 3
------form.json
------module.json
------module.php
usw.

Wenn ich es insofern einfach „verschieben“ könnte:
Symcon Modules/ModulA/
—README.md
—library.json
—Modul 1
------form.json
------module.json
------module.php
Symcon Modules/ModulB/
—README.md
—library.json
—Modul 2
------form.json
------module.json
------module.php
—Modul 3
------form.json
------module.json
------module.php
Symcon Modules/ModulC/
—README.md
—library.json
—Modul 4
------form.json
------module.json
------module.php
—Modul 5
------form.json
------module.json
------module.php

Dann wäre es vom Linkfür IPS her doch okay?
Ich müsste dann verschiedene GUID-id für die dann enstehenden library.json?

Ist das so korrekt und so mit Github und IPS möglich (benutze GitHub nur aus dem Browser heraus!)?

Joachim

Ja das ist korrekt Du brauchst dann einfach für jeden Repository eine eigene library.json mit eigener GUID und pro Repository eine Readme. Den Rest kannst Du eins zu eins umkopieren an den GUID der Module und den Zuordnungen ändert sich ja nix.

Dein Enigma Modul lies sich nach der Änderung jetzt im Übrigen installieren. Einschalten geht aber trotzdem nicht


14.01.2017 17:01:44*| PHP*| Error: Error: Uncaught exception 'Exception' with message 'Invalid Ident' in /var/lib/symcon/modules/SymconModules/IPS2Enigma/module.php:552
Stack trace:
#0 -(4): IPS2Enigma->RequestAction('powerstate', true)
#1 {main}
  thrown
   Error in Script /var/lib/symcon/modules/SymconModules/IPS2Enigma/module.php on Line 552
  134 in IPSLibrary/app/core/IPSLogger/IPSLogger.inc.php (call IPSLogger_Out)
   33 in IPSLibrary/app/core/IPSLogger/IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
  121 in IPSLibrary/app/core/IPSLogger/IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_PhpErrorHandler)
      in IPSLogger_PhpFatalErrorHandler