[ANNOUNCE] vdr-restfulapi 0.1.0

  • Hi everybody,


    today I've got the pleasure to announce my first plugin for VDR:
    It's a community project of the yaVDR-Team who've welcomed me in their team some time ago.


    But now to the important stuff:


    RESTFULAPI - 0.1.0


    What does the plugin offer?


    * A modern alternative to SVDRP.based on the restful-concept
    * HTTP based
    * Full UTF8-Support.
    * MultiUser-Support
    * Different-Output-Formats: Json, Xml and Html
    * Epgsearch integration
    * OSD-Support
    * Epg-Pictures and Channel-Logo Support
    * and much more...


    Which API-Calls are implemented?


    * Channels
    * Channelgroups
    * Channellogos
    * EPG
    * EPG-Images
    * Searching in the EPG (if epgsearch is installed)
    * Info (plugins, services, currently playing recording, channel)
    * Osd (default osd of vdr)
    * Recordings (GET + DELETE)
    * Remote control
    * Timers (Creating, Updating, Deleting and retrieving)
    * Searchtimers ( Creating, Deleting, retrieving and Searching the EPG-Info for the Searchtimers)


    Are there any Issues?


    * No, every known bug has been fixed before this release. But the plugin is huge and we haven't been able to test every tiny detail.
    * But there is one more thing: The HTML-OSD is ugly, if you have an idea for a better Theme, let us know and I will add it to the plugin. (You only have to create a new osd.css file to change the theme.)



    What should I do if I find bugs?


    * Collect all information about the plugin you can find:
    less /var/log/syslog | grep restfulapi
    Your Request
    And if possible a stracktrace
    * Create a bug-report on yaVDR-Redmine:
    https://bugs.yavdr.com/projects/vdr-restfulapi


    Where do I find the API documentation?


    * Download the plugin and open the API.html. It also contains a lot of examples.


    Where can I download the plugin?


    https://github.com/yavdr/vdr-plugin-restfulapi


    What do I need to compile the plugin?


    * cxxtools rev 1231 or newer (Important!! I treally has to be at least rev 1231, older revisions won't work.)
    * VDR 1.7.18, older versions are not supported


    How does the communication look like? (An example)



    More examples are in the documentation (API.html).


    nice regards

  • Ideen gibt es viele... aber zur Zeit existiert mehr oder weniger nur die API.
    Eine erste Anwendung gibt es allerdings im WebInterface von yaVDR 0.4pre, dort werden ein paar einzelne Informationen ausgegeben.

  • Du hast bestimmt auch schon eine Anwendung dessen im Sinn(/oder sogar in der Mache?)?
    Erzähl mal!


    Na ja, das köchelt schon was bei uns auf kleiner Flamme. Das wird der Knaller, aber braucht noch etwas :D. Nach haken zwecklos, von mir gibt es da nicht mehr.


    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

  • FYI, weil ichs gerade probiert habe: Das cxxtools Packet in Debian ist um einiges zu alt.


    Aber nur so aus Neugier, wo bekomme ich die Versionsinfo in der Form "to be at least rev 1231" her? Debian hat Version 1.4.8, im cxxtools Changelog stehen nur Daten und in den Headerfiles finde ich keine Versionsangaben. Und in der libcxxtolls.la steht
    --
    # Version information for libcxxtools.
    current=6
    age=0
    revision=0
    --


    cu

  • Kann man damit eigentlich auch das VDR-Setup (inkl. Plugins) bearbeiten oder müssen das die Plugins selbst mitbringen, in dem sie die API anbinden?


    Medion Digitainer; AsRock B75 Pro3-M, Celeron G540; Kingston Value 4GB
    Samsung SpinPoint 250GB 2,5"; Samsung WriteMaster DVD-Brenner;
    TT-S2-6400, 2x TT-S2-1600, Ubuntu 12.04 mit YaVDR-Paketen. VDR 1.7.27, UPnP/DLNA-Plugin

  • Aber nur so aus Neugier, wo bekomme ich die Versionsinfo in der Form "to be at least rev 1231" her? Debian hat Version 1.4.8, im cxxtools Changelog stehen nur Daten und in den Headerfiles finde ich keine Versionsangaben.


    Das ist die Subversion-Revision IIRC. Das yaVDR-Team war mit dem Autor in Kontakt und er hat da auf unsere Anregung hin einige Änderungen vorgenommen. Die sind aber noch nicht released. Hol dir doch unser Source-Paket und bau das auf deinem Debian.


    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


  • * But there is one more thing: The HTML-OSD is ugly, if you have an idea for a better Theme, let us know and I will add it to the plugin. (You only have to create a new osd.css file to change the theme.)


    Was ist ein "HTML-OSD"? Und wie wird ein HTML auf die OSD-Befehle vom VDR gemappt? Wer rendert das HTML?

  • Also via LAN? Demnach ist das nicht nur ne API sondern auch ein Webinterface für den VDR?


    Oben steht bei den Features auch "OSD". Bedeutet das, man kann mit dieser API auch das osdserver-Plugin ersetzen? Alles in einem?

  • Man kann mit HTTP GET, POST und DELETE Anfragen auf das Plugin zugreifen. Sowohl lokal als auch übers Netzwerk.
    Das OSD wird wahlweise als HTML, XML oder JSON ausgeliefert.
    Im Browser sieht das für HTML so aus:
    Für xml so:


    und für JSON so:

    Code
    {"TextOsd":{"type":"TextOsd","title":"VDR  -  Disk 0%  -  137:02 frei","message":"","red":"Aufnehmen","green":"Audio","yellow":"Pause","blue":"","items":[{"content":"  1  Programm","is_selected":false},{"content":"  2  Kanäle","is_selected":false},{"content":"  3  Timer","is_selected":true},{"content":"  4  Video","is_selected":false},{"content":"  5  Audio","is_selected":false},{"content":"  6  System","is_selected":false},{"content":"  7  Server pausieren","is_selected":false},{"content":"  8  Server Timer","is_selected":false},{"content":"  9  EPG synchronisieren","is_selected":false}]}}


    Aktualisierungen muss man selbst anfordern.


    Alles zu den Fähigkeiten steht in der API.html, auf die aelo auch im Annouce-Post hingewiesen hat:

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    Einmal editiert, zuletzt von seahawk1986 ()

  • Ich habe eben das Plugin ausprobieren wollen, allerdings bekomme ich die OSD.html nicht geöffnet. Es erscheint nur eine weise Seite ohne alles. Muss ich dazu noch irgendwo etwas einstellen? Ich habe das Paket aus unstable-vdr genommen. Dort wird aber offenbar keine config-Datei in /var/lib/vdr/ oder /etc/vdr gespeichert.


    //Edit: timers geht, also kanns nicht am Netzwerk liegen. ?(


    Medion Digitainer; AsRock B75 Pro3-M, Celeron G540; Kingston Value 4GB
    Samsung SpinPoint 250GB 2,5"; Samsung WriteMaster DVD-Brenner;
    TT-S2-6400, 2x TT-S2-1600, Ubuntu 12.04 mit YaVDR-Paketen. VDR 1.7.27, UPnP/DLNA-Plugin

    Einmal editiert, zuletzt von methodus ()

  • Das Plugin stellt ein web service zur verfügung dass nach dem REST-Concept designed wurde.
    RESTful ist eine Spezifikation wie man das HTTP-Protokoll nutzt um Informationen über selbiges zu übertragen.


    http://de.wikipedia.org/wiki/Representational_State_Transfer


    Das WebService kann nun die Daten allerdings in mehreren Formaten ausgeben: XML/JSON und HTML.
    Das in HTML die OSD-Daten nicht einfach aufgelistet werden hat einfach den Grund dass es wenig sinn macht, deshalb wird hier ein Stylesheet mitübertragen welches das OSD gleich richtig formatiert.


    Zusammenfassend:
    Das Plugin ist eine Schnittstelle die es erlaubt sämtliche Informationen in verschiedenen Formaten abzufragen.


    @methods:
    Sehe dir den HTML-Return-Code an, da steht sicherlich 404, oder 403 oder so etweas und als Text: NO OSD OPENED! :)
    Öffne eines im VDR und sende noch mal eine Anfrage an das web service und du wirst die Infos bekommen.


    @Mreimer: Eine API die auf einem Webprotokoll basiert. Vielleicht kennst du ja SOAP, das ist sowas "ähnliches".

  • @methods:
    Sehe dir den HTML-Return-Code an, da steht sicherlich 404, oder 403 oder so etweas und als Text: NO OSD OPENED! :)
    Öffne eines im VDR und sende noch mal eine Anfrage an das web service und du wirst die Infos bekommen.


    Danke. Jetzt kommt das OSD. Ich glaub, dass das Plugin echt eine super coole Grundlage für viele Erweiterungen werden kann. :)


    Medion Digitainer; AsRock B75 Pro3-M, Celeron G540; Kingston Value 4GB
    Samsung SpinPoint 250GB 2,5"; Samsung WriteMaster DVD-Brenner;
    TT-S2-6400, 2x TT-S2-1600, Ubuntu 12.04 mit YaVDR-Paketen. VDR 1.7.27, UPnP/DLNA-Plugin

  • Moin!


    Ich hab unter meinem Fork auf GitHub mal ein paar Korrekturen an der API.html eingepflegt.
    Ich hab das Plugin bisher allerdings nicht ausprobiert, schau dir meine Korrekturen also lieber genau an, nicht, dass ich was falsches dokumentiere... ;)


    Cooles Teil!


    Lars.


  • Das ist die Subversion-Revision IIRC. Das yaVDR-Team war mit dem Autor in Kontakt und er hat da auf unsere Anregung hin einige Änderungen vorgenommen. Die sind aber noch nicht released. Hol dir doch unser Source-Paket und bau das auf deinem Debian.


    Danke, mir war nicht klar das das so topaktuell sein muss.


    Werde ich demnächst mal probieren (Source Paket), wobei es mir erstmal nur darum ging zu testen ob ich das auch unter dem 1.6er zum laufen bekomme. IMHO ist es ne gute Idee den Zugriff auf VDR Infos auf diese Weise zu standardisieren. Könnte was für längerfristig sein was vieles vereinfacht.


    cu

  • Falls einer Lust bekommen hat damit was zu tun. Hier mal eine Anregung für ein Mini-Projekt an dem noch keiner von uns sitzt. Für einen Python-Programmierer sollte es nur noch ein Kinderspiel sein mit z.B. webkit ein XBMC-Addon zu schreiben, dass das VDR-OSD unter XBMC erreichbar macht.


    sphere, wäre das was für dich?


    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

    Einmal editiert, zuletzt von gda ()

  • IMHO ist es ne gute Idee den Zugriff auf VDR Infos auf diese Weise zu standardisieren. Könnte was für längerfristig sein was vieles vereinfacht.


    Hättest du das auch gesagt, wenn du gewusst hättest, dass die Idee von mir ist ;).


    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


  • Hättest du das auch gesagt, wenn du gewusst hättest, dass die Idee von mir ist ;).


    Jup, hätte ich. Ich bin wirklich nicht so böse wie du denkst ;)


    Edit: Für alle spielfreudigen zur Info, das yavdr cxtools Quellpacket baut wunderbar auf Debian Squeeze, entgegen meinen Erwartungen (kenne mich mit den Packetsachen nicht wirklich gut aus) muss tntnet nicht neu gebaut werden (die alte cxxtools Version bleibt parralel dazu vorhanden). Ist also gar nicht so wild wie man erstmal denkt ;)


    Und die Änderungen für vdr 1.6 sind minimal, ich habe erstmal nur einige Zeilen auskommentiert und das läuft soweit gut. Bei Gelegenheit mache ich mal nen Patch für 1.6 fertig (ist nur etwas Fleissarbeit). Der könnte dann ja evtl. als unsupportet dazugelegt werden?
    Schon klar das hier die Motivation für nen "nicht HD vdr" nicht sonderlich hoch ist, aber ich denke wenn irgendwann mal addon Scripte auftauchen die die restfullapi nutzen wäre es schön wenns auch ne einfache Möglichkeit für den 1.6er gibt.


    cu

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!