In EPG via HTTP-Request suchen

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • In EPG via HTTP-Request suchen

      Hallo,

      gibt es eine URL über die man auf einer DM820 senderübergreifend im EPG nach einer Sendung suchen kann, oder, kann man den EPG runterladen um dann beispielsweise lokal mit einem Skript nach einer Sendung automatisiert suchen?
      Also, keine interaktive und manuelle Eingabe direkt auf der Dreambox, sondern - beispielsweise - täglich mittels eines Cronjobs den EPG nach bestimmten Sendungen abklappern.

      Danke!
    • Entweder die Webinterface Sicherheitseintellungen deaktivieren oder vorab die Session ID abfragen und dann die Session ID bei der Abfrage mitsenden
      das geht auch mit wget, ich mache es immer mit curl (sollte am feed liegen)

      Quellcode

      1. SESSIONID=$(curl -s -X POST "http://localhost/web/session"|grep e2sessionid|sed 's/e2sessionid\|<\|>\|\///g')
      2. curl -s -X POST "http://localhost/web/epgsearch?search=suchbegriff&sessionid=$SESSIONID"
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      ¯\_(ツ)_/¯

      Quellcode

      1. root@dm920:~$ mount | grep "/ "
      2. /dev/mmcblk1p1 on / type ext4 (rw,relatime,data=ordered)
      3. root@dm920:~$
    • Fred Bogus Trumper schrieb:

      Entweder die Webinterface Sicherheitseintellungen deaktivieren oder vorab die Session ID abfragen und dann die Session ID bei der Abfrage mitsenden
      das geht auch mit wget, ich mache es immer mit curl (sollte am feed liegen)

      Quellcode

      1. SESSIONID=$(curl -s -X POST "http://localhost/web/session"|grep e2sessionid|sed 's/e2sessionid\|<\|>\|\///g')
      2. curl -s -X POST "http://localhost/web/epgsearch?search=suchbegriff&sessionid=$SESSIONID"
      Das ist jetzt komisch. Wenn ich deinen Befehl in Linux Bash ausführe, dann bekomme ich 401 - Access denied. Im Browser kommt jedoch problemlos eine <e2sessionid> zurück.
      OK, dann denke ich mir, dass es vielleicht am User-Agent liegt und füge den User-Agent von Chromes letzter Version hinzu. Keine Änderung.

      Weiterer Versuch war, dass ich in Chromes Console den vollständigen Request "Copy as curl (Bash)" auslese, da ja Chrome damit die <e2sessionid> problemlos bekommt.

      Jetzt bin ich etwas ratlos, da ich mit dem "Copy as curl (Bash)" immer eine Seite automatisiert auslesen konnte, die vorher bockig war.

      Wo kann ich die Webinterface Sicherheitseinstellungen deaktivieren? Die DM ist hinter einer Firewall und ich muss da keine Sicherheitseinstellungen haben.

      1. NACHTRAG:
      Direkt auf der DM funktionieren die Requests. Nur von einem anderem Linux-Server gehen sie nicht. Warum funktioniert es dann aber im Browser, der die IP von dem Windows-PC übermittelt?

      2. Nachtrag:
      Ich habe auf der Dreambox ein kleines Skript angelegt, welches die oberen 2 Befehle ausführt und dann rufe ich es von anderem Linux-Host via ssh auf.

      Danke, Problem gelöst, ihr habt mir geholfen.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von AlBundyLoves69 ()

    • Menü - Einstellungen - Netzwerk - Webinterface
      Einfache Anti-Hijack Maßnahmen: aus
      Token-basierte Sicherheit: aus

      Dann wird auch keine Session ID benötigt


      Ist auch die Authentifzierung aktiviert (Passwortabfage)

      Wenn man die Authentifizierung für lokale Clients ausschaltet, wird kein passwort benötigt, wenn an die http Abfrage auf einem Client im subnet der Dreambox gestellt wird
      Wenn die Authentifzierung aktiviert ist und auch für lokale Clients aktiviert ist, wird das passwort benötigt wenn man die Abfrage in der shell auf einem anderen client (im lokalen subnet) ausführt

      Quellcode

      1. SESSIONID=$(curl -s -X POST "http://root:password@IP/web/session"|grep e2sessionid|sed 's/e2sessionid\|<\|>\|\///g')
      2. curl -s -X POST "http://root:password@IP/web/epgsearch?search=suchbegriff&sessionid=$SESSIONID"

      im passwort darf das @ nicht enthalten sein - das funktioniert nicht
      das ist der Trenner für die IP Adresse - damit kommt curl/wget nicht klar
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      ¯\_(ツ)_/¯

      Quellcode

      1. root@dm920:~$ mount | grep "/ "
      2. /dev/mmcblk1p1 on / type ext4 (rw,relatime,data=ordered)
      3. root@dm920:~$
    • Fred Bogus Trumper schrieb:

      Menü - Einstellungen - Netzwerk - Webinterface
      Einfache Anti-Hijack Maßnahmen: aus
      Token-basierte Sicherheit: aus

      Dann wird auch keine Session ID benötigt


      Ist auch die Authentifzierung aktiviert (Passwortabfage)

      Wenn man die Authentifizierung für lokale Clients ausschaltet, wird kein passwort benötigt, wenn an die http Abfrage auf einem Client im subnet der Dreambox gestellt wird
      Wenn die Authentifzierung aktiviert ist und auch für lokale Clients aktiviert ist, wird das passwort benötigt wenn man die Abfrage in der shell auf einem anderen client (im lokalen subnet) ausführt

      Quellcode

      1. SESSIONID=$(curl -s -X POST "http://root:password@IP/web/session"|grep e2sessionid|sed 's/e2sessionid\|<\|>\|\///g')
      2. curl -s -X POST "http://root:password@IP/web/epgsearch?search=suchbegriff&sessionid=$SESSIONID"
      im passwort darf das @ nicht enthalten sein - das funktioniert nicht
      das ist der Trenner für die IP Adresse - damit kommt curl/wget nicht klar

      Genau das war das Problem mit der notwendigen Angabe von root und password. Jetzt geht es auch von einem fremden Linux Host. Nun ist es eine Geschmackssache, ob ich es mit ssh oder mit root/password umsetze.
      Beide Sachen gehen.

      DANKE