[ANNOUNCE] Mobil Browser gestütztes Frontend für VDR oder Restfulapi Client

  • Hallo,


    seit einiger Zeit Arbeite ich nun an meinem Web Client für Mobil Browser und nutze ihn eigentlich seit Monaten täglich. Daher möchte ich ihn euch nicht länger vorenthalten.
    Die Webapp wurde für Android Chrome entwickelt, läuft aber auch in anderen Browsern und auch auf dem Desktop. In manchen Browsern sehr gut, in manchen nicht so.
    Was mich erstaunt hat, ist das der IE 11 hier sehr gut mitspielt, FF hingegen relativ schlecht abschneidet. FF für Android ist sogar einfach viel zu langsam.
    Das ich kein IOS Gerät habe, konnte ich Safari nur testen, wenn mal jemand zu Besuch war, der eins hat. Daher erwarte ich hier einige Fehler, die sich aber sicherlich fixen lassen.


    Features:


    - Anzeigen des EPG in tabellarischer(?) Form ähnlich wie yaepg
    - Anzeigen des EPG Kanalweise
    - Anzeige der Timer und Aufnahmen
    - Anlegen und bearbeiten von Timern
    - Löschen und Verschieben/Umbenennen von Aufnahmen
    - EPG Suche
    - Touch/Maus bedienbares OSD z.B. zum anlegen von Suchtimern
    - Wiedergabe von LiveTV und Aufnahmen direkt im Browser (kein Plugin benötigt)


    Voraussetzungen:


    - Restfulapi ab Version 0.2.1.1
    - StreamDev Server (optional) ob Version 0.6.1
    - Android Chrome, möglichst aktuell oder Chrome Desktop
    - ein nicht zu langsames Handy


    Ich habe die App auf diversen Androiden getestet und konnte eigentlich keine großartigen Probleme feststellen. Lediglich mein Nexus 7 (2012) ist wohl langsam zu schlapp, funktioniert aber. Mit einem Nexus 5 läuft die App performant.


    Installation:


    http://hannemann.github.io/vdr-webapp/
    wer möchte kann die Datei auch herunterladen und in das Verzeichnis /var/lib/vdr/plugins/restfulapi/webapp kopieren. Seit neuestem hat Restfulapi einen kleinen Server für Apps eingebaut.


    Zum Streamen an den Browser bitte meine externremux verwenden und ffmpeg installieren.
    https://raw.githubusercontent.…/streamdev/externremux.sh


    Bei Interesse kann man sich mit Apache auch einen Reverse Proxy einrichten, der die App und Streams an Port 443 durchreicht. Das funktioniert sehr gut.
    Zu Anfang hatte ich OpenVPN um von draussen zuzugreifen nun brauchts das nicht mehr, da der Proxy auch gleich eine Passwortabfrage davorschaltet.
    Beispielkonfiguration:
    https://raw.githubusercontent.…/master/apache/vhost.conf


    Konfiguration:


    Beim ersten Start wird die Konfigurations Seite geöffnet, die gleich ein kleines "Fenster" mit Tipps aufmacht. Durchlesen kann nicht schaden, mit dem Zurück Button des Browsers das "Fenster" schließen, danach kann man den Hinweis unter Sonstiges deaktivieren.
    Minimal Konfiguration ist der Hostname/IP von Restfulapi. Die defaults sind alle nach Standard vorbelegt und sollten eigentlich in so gut wie allen Fällen passen.
    Anmerken möchte ich die Option 'Resourcenschonendes laden': wer nicht gerade eine Dockstar benutzt, sollte die Option deaktivieren.
    Sie verlangsamt das laden der Daten, um die arme kleine CPU zu schonen, was bei einem Celeron aber nicht wirklich nötig ist.'


    Wenn man das erledigt hat, bitte einmal mit dem zurück Button des Browsers die Konfiguration verlassen und die Seite erneut aufrufen. Der EPG sollte nun geladen werden.
    Nun bitte im Chrome Menü 'Zum Startbildschirm hinzufügen' ausführen, damit ihr einen Bookmark mit Icon erhaltet. Die App wird über das Icon ohne Bedienelemente des Chrome geladen. Dafür ist sie auch konzipiert.


    Ich schreibe auch gerade eine Dokumentation zu den einzelnen Features aber das meiste sollte selbsterklärend sein. Die Konfiguration ist bereits vollständig beschrieben, der Rest wird in den nächsten Tagen folgen.
    http://hannemann.github.io/vdr-webapp/documentation.html


    Wer Streamen möchte muss noch die IP des Streamdev Server eingeben.
    Soll der Browser im HTML5 Player den Stream wiedergeben musst Du noch die externremux sowie ffmpeg installieren.
    Das funktioniert leider nur im Chrome und im IE wenn man die Erweiterung 'WebM for Internet Explorer' von Google installiert.
    Falls jemand eine Lösung für Safari kennt, immmer her damit.


    Das Design orientiert sich an Android Holo, Nutzer von Kitkat sollten sich schnell zurechtfinden.
    Ein Tap auf das Icon öffnet das Drawer Menu, ein Tipp auf die drei Punkte rechts das Kontextmenu.
    Falls man sich bei der Konfiguration vertippt hat und die App nichts laden kann, weil die IP nicht stimmt, git es eine Fehlermeldung mit einem Zahradsymbol. Darüber gelangt ihr in die Konfiguration.

  • Beim ersten Start wird die Konfigurations Seite geöffnet, die gleich ein kleines "Fenster" mit Tipps aufmacht. Durchlesen kann nicht schaden, mit dem Zurück Button des Browsers das "Fenster" schließen, danach kann man den Hinweis unter Sonstiges deaktivieren.


    Leider ist mir da wohl ein kleiner Fehler unterlaufen. Daher habe ich das Fenster, das sich beim ersten laden öffnet erst mal wieder entfernt.


    Sorry....

    Grüße


    Hannemann

  • Wenn man das erledigt hat, bitte einmal mit dem zurück Button des Browsers die Konfiguration verlassen. Der EPG sollte nun geladen werden.


    Hier muss es heißen:


    Wenn man das erledigt hat, bitte einmal mit dem zurück Button des Browsers die Konfiguration verlassen und die Seite erneut aufrufen. Der EPG sollte nun geladen werden.

    Grüße


    Hannemann

  • Hallo hannemann,


    hört sich super an, habe das aber bis jetzt (ww. Nexus 7 oder Chromebook) nicht zu laufen bekommen.


    - habe restfulapi installiert, Konfiguration mit ip=192.168.1.104 (die IP-Adresse meines VDR, ist das so richtig??)
    - http://hannemann.github.io/vdr-webapp/ aufgerufen, und dort als HOST wieder die IP-Adresse des VDR eingegeben
    - Anschliessend Browser back und url neu aufrufen


    Ergebnis ist, dass sowohl der Browser als auch der VDR hängen (top zeigt 100% CPU, vdr muss gekillt werden bzw Watchdog schlägt zu)
    Im syslog steht dazu aus meiner Sicht nichts erhellendes.


    Hast du eine Idee, was bei mir schief laufen könnte?


    Grüße, Peter

    KODI, tvh, arch x86_64, Octopus net 2 x Duoflex C/C2/T2 , NUC7i3BNH, Crucial MX300 2TB, LG LM 669S

    Linux is the best OS I have ever seen -- Albert Einstein

  • - habe restfulapi installiert, Konfiguration mit ip=192.168.1.104 (die IP-Adresse meines VDR, ist das so richtig??)


    Wozu denn das? Soll er mit sich selbst telefonieren? Zumindest für Tests würde ich eher 0.0.0.0 empfehlen.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Hast du eine Idee, was bei mir schief laufen könnte?


    Hallo Peter,


    leider habe ich da erst mal keine Idee.


    Welche Version der Restfulapi hast du denn installiert? Die neueste aus dem yavdr Git bzw. yavdr testing? Welcher VDR läuft bei dir?
    Ist das dieser Prozessor? Meiner ist auch nicht schneller bzw. mein Desktop System hat auch nur 3 Kerne und damit läuft das einwandfrei.
    Hast du Resourcenschonendes laden an oder aus?

    Grüße


    Hannemann

  • Hallo hannemann,


    Prozessor stimmt, restfulapi habe ich aus https://github.com/yavdr/vdr-plugin-restfulapi.git frisch gebaut, war vorher nicht installiert.
    VDR ist 2.1.10. Ressourcenschonendes Laden ist mM aus, ich habe nichts an der Einstellung geändert.


    Die Konfiguration der ip-Adresse habe aufgrund des Hinweises von gda wieder rausgenommen, macht aber keinen Unterschied.


    Ich werde nachher mal einen Reboot machen, vielleicht hilft das ja.


    Grüße, Peter

    KODI, tvh, arch x86_64, Octopus net 2 x Duoflex C/C2/T2 , NUC7i3BNH, Crucial MX300 2TB, LG LM 669S

    Linux is the best OS I have ever seen -- Albert Einstein

  • Die Konfiguration der ip-Adresse habe aufgrund des Hinweises von gda wieder rausgenommen, macht aber keinen Unterschied.


    Habe ich auch gerade mal getestet. Ist egal. 0.0.0.0 ist aber besser, falls du z.B. über VPN auf die API zugreifen möchtest. Sonst horcht er nicht auf dem device.


    Mein Setup am Desktop ist ähnlich und damit baue und teste ich die ganze Geschichte. 100% Systemlast finde ich doch schon recht merkwürdig.
    Hast du ein 2012 Nexus 7? Das habe ich auch und das ganze funktioniert einwandfrei. Nur scrollen ist ein wenig hakelig...


    Das Resourcenschonende Laden <- das muss ich unbedingt mal umbenennen, sollte jedenfalls deaktiviert werden, falls du das nicht bereits getan hast. Dein VDR sollte das locker wegstecken.


    Welche Plugins hast du denn am VDR noch so laufen? Ich wüsste zwar nicht welches aber möglicherweise funkt da eins dazwischen.

    Grüße


    Hannemann

  • Nexus ist ein 2012 Nexus 7. Hab grade auch noch mal mit meinem Z3 tablet compact getestet, gleiches Ergebnis.


    Vielleicht ein Problem mit meiner Netzwerk-Config?


    Brauchts da noch eine allowed_hosts.conf für restfulapi oder so?

    KODI, tvh, arch x86_64, Octopus net 2 x Duoflex C/C2/T2 , NUC7i3BNH, Crucial MX300 2TB, LG LM 669S

    Linux is the best OS I have ever seen -- Albert Einstein

  • Nein, du brauchst keine allowed_hosts Datei.


    Er lädt beim starten alle Aufnahmen, und Events für alle Kanäle für die nächsten 2,5 Stunden.


    Es gab da schon mal ein ähnliches Problem mit seeeeehr vielen (> 3000) Kanälen. Daher habe ich eingebaut, das man die Anzahl der Kanäle begrenzen kann.
    Möglicherweise gibt es ein ähnliches Problem wenn man tausende Aufnahmen hat. Da ich aber selbst ca. 3.5 Terabyte an Aufnahmen hier rumliegen habe, kann ich mir das eigentlich kaum vorstellen.


    Ich bau gerade mal was und schieb gleich mal eine neue Version auf Github. Ich sag dann Bescheid.

    Grüße


    Hannemann

  • Heute komme ich nicht mehr zu testen.


    Werde mich mal in restfulapi einlesen und nach einer einfachen Möglichkeit suchen, mal ohne deine app zu testen, ob das bei mir ordnungsgemäß funktioniert.


    Grüße, Peter

    KODI, tvh, arch x86_64, Octopus net 2 x Duoflex C/C2/T2 , NUC7i3BNH, Crucial MX300 2TB, LG LM 669S

    Linux is the best OS I have ever seen -- Albert Einstein

  • Das ist recht einfach:

    Code
    1. http://192.168.1.104:8002/recordings.json

    lädt alle Aufnahmen.

    Code
    1. http://192.168.1.104:8002/channels.json?start=0&limit=100

    100 Kanäle von 0.

    Grüße


    Hannemann

  • Also

    Code
    1. http://192.168.1.104:8002/channels.json?start=0&limit=100


    anwortet nach ca. 1 s, bei


    Code
    1. http://192.168.1.104:8002/recordings.json


    kommt nach 90 s der watchdog


    Code
    1. http://192.168.1.104:8002/channels.xml


    antwortet nach ca. 4 s, 800 Kanäle

    KODI, tvh, arch x86_64, Octopus net 2 x Duoflex C/C2/T2 , NUC7i3BNH, Crucial MX300 2TB, LG LM 669S

    Linux is the best OS I have ever seen -- Albert Einstein

  • Ich habe mal eine neue Version gebaut.


    In der Konfiguration gibt es einen neue Option, die deaktiviert bleiben sollte. Dadurch werden nicht für alle Kanäle Sendungen geladen wie bisher, sondern nur für die aktuell sichtbaren. Das war bei mir bisher zwar kein Problem aber so sollte der VDR nicht so stark ausgelastet werden.


    Die Option Resourcenschonendes laden habe ich umbenannt in Synchrones laden. Dadurch werden wirklich alle Requests nacheinander ausgeführt, was die App irre langsam macht. Bitte deaktivieren...

    Grüße


    Hannemann


  • http://192.168.1.104:8002/recordings.json
    kommt nach 90 s der watchdog


    Das blöd... Wieviel Aufnahmen hast du denn? Ich habe 1525 und die Antwort kommt nach 981 ms.

    Grüße


    Hannemann

  • Wie komme ich den noch mal auf die Konfigurationsseite, wenn die App hängt, d.h wo muss ich die Konfiguration löschen, damit ich beim Start wieder den Konfigurationsdialog angezeigt bekomme?

    KODI, tvh, arch x86_64, Octopus net 2 x Duoflex C/C2/T2 , NUC7i3BNH, Crucial MX300 2TB, LG LM 669S

    Linux is the best OS I have ever seen -- Albert Einstein

  • Chrome öffnen, Einstellungen -> Website Einstellungen -> Alle Websites -> nach hannemann suchen und anklicken und dann die Tonne klicken.

    Grüße


    Hannemann

  • Mich würde wirklich interessieren, wie viele Aufnahmen da bei dir liegen, das er so lange braucht um die einzusammeln und dann sogar abschmiert.
    Ich sammele nun auch schon bald 7 Jahre meine Aufnahmen und finde ich habe nicht wenig. Daher habe ich mit so was nicht gerechnet.

    Grüße


    Hannemann

  • Ach ja... Es gab da letztens eine Fehlfunktion mit Restfulapi in Verbindung mit TVScraper. Hast du den am laufen?
    Kannst du den wenn ja testweise mal deaktivieren und dann noch mal versuchen ob über den URL die Aufnahmen geladen werden können?


    Ich muss jetzt erst mal in die Heia. Sorry.

    Grüße


    Hannemann

  • Mich würde wirklich interessieren, wie viele Aufnahmen da bei dir liegen, das er so lange braucht um die einzusammeln und dann sogar abschmiert.
    Ich sammele nun auch schon bald 7 Jahre meine Aufnahmen und finde ich habe nicht wenig. Daher habe ich mit so was nicht gerechnet.


    Sind nur 566 Aufnahmen, ist nur eine 3 TB Platte.


    Habe jetzt nach dem Löschen der Konfig erste Erfolgserlebnisse, hab mal auf Startbildschirm "Timer" gestellt, die werden angezeigt :-))
    Bei EPG wird nur ein Teil angezeigt, Recordings macht wieder die Grätsche...


    Vermutlich passt da irgendwas mit restfulapi nicht, ich werde mal die build-deps überprüfen.

    KODI, tvh, arch x86_64, Octopus net 2 x Duoflex C/C2/T2 , NUC7i3BNH, Crucial MX300 2TB, LG LM 669S

    Linux is the best OS I have ever seen -- Albert Einstein