EPGD Plugin für xmltv Daten

  • Ich versuche zu ergründen, wie ein Plugin für den epgd gebaut werden kann, der EPG im xmltv Format einlesen kann.
    Wenn ich das richtig verstanden habe, dann werden verschiedene Werte in der Events Tabelle manuell gesetzt, aber viele generisch, wobei ich den Ansatz "XML-Element" auf "Spalte in der Events Tabelle" vermute.

    Um das zu erreichen sehe ich 3 Ansätze:
    1. Element/Spalten, die passen, werden automatisch eingelesen und der Rest wird manuell codiert
    2. Ein xslt Script versucht eine Transformation des Original XML in ein Format, bei dem die meisten Spalten automatisch eingelesen werden und dann weniger manuelle Arbeit.
    3. Der harte Weg ohne xslt: Das Original wird eingelesen und ein neues XML wird im Code erzeugt, das die Elementnamen passend gestaltet. Dabei können auch direkt Werte z.B. an die longdescription angehängt werden und alles aufbereitet werden.

    Bei xslt sträuben sich mir die Haare. Da gehe ich meist mit fliegenden Fahnen unter oder durch viel Probieren komme ich der Lösung näher (falls überhaupt in die Nähe).

    Ich habe mal ein Beispiel aus dem xmltv repository genommen und etwas aufbereitet. Allerdings bin ich mir bei ein paar Elementen nicht wirklich sicher

    Gibt es da andere Ideen? Liege ich mit meinen Zuordnungen falsch oder richtig? Oder kann ein xslt-Guru etwas dazu sagen?

    Aktuell tendieren ich tatsächlich zu dem harten Weg (transformieren im Code) und dann anschließend ein anderes xslt aufrufen (sie wie heute auch, damit erfahrene Benutzer da etwas ändern können).

    Wenn die einzige Quelle mein eismann wäre, dann würde ich die Transformation direkt da erledigen in einer Sprache meiner Wahl. Aber es gibt eben auch andere Quellen.

  • Fritzbox SatIP Server (4x DVB-C)
    Wohnzimmer: NUC10I3 - Logitech z-5500 - Philips 55OLED707 - Fritz DVB-C - Ubuntu 22.04 LTS - yavdr ansible
    Schlafzimmer: NUC10I3 - old LG 42" TV - Fritz DVB-C - Ubuntu 22.04 LTS - yavdr ansible
    Recordingingserver: VDR VM - Fritz DVB-C - Ubuntu 22.04 LTS - yavdr ansible
    diverse Test Clients: -Raspberry Pi + openelec, i3 mit Geforce1030

  • Dann gibt's noch das xmltv4vdr-plugin , was ich hier für IPTV von Zattoo nutze und einwandfrei funktioniert.

    Das Einzigste was ich da noch nicht hinbekommen habe, ist der Import der EPG-Images, die als URL in der xmltv-Datei vorhanden sind.

    meine aktuelle Hard- und Software

    Heimkino: . . . . . . . AVR Denon AVR-X4800H . . . MiniLED-UHD-TV SONY BRAVIA XR-75X95L. . . Universal-FB: Sofabaton U2
    VDR-Hardware: . . Grafik MSI GT1030, Quad-DVB-C/T2 TBS-6205, Quad-DVB-S2/S2X TBS-6904SE

    VDR-Software: . . . yaVDR-ansible-noble - Kernel 6.08.0 - VDR-2.7.x - nvidia-550
    VDR-Client 1+ Media-Player: . . . Odroid N2 . 4GB mit VDR*ELEC Kodi-21.x + VDR-2.7.x_@Zabrimus
    VDR-Client 2+ Media-Player: . . . Dune HD Homatics Box R4K Plus . 4GB mit Kodi-21.x + VDR-2.7.x_@Zabrimus

  • Ohne näher das Thema zu kennen aber so ein Plugin gibt es doch schon?

    Ich denke, wir reden von verschiedenen Sachen.

    Es geht mir um den Import von xmltv Daten direkt in die Datenbank von epgd. Aktuell existieren (meines Wissens) Plugins für tvm und tvsp. Soweit ich das sehe, wird JSON eingelesen, nach XML gewandelt und dann in die Datenbank geschrieben.

    Es gibt ein Problem mit epgd, mit dem ich nicht gerechnet habe, das aber auch davie2000 aufgefallen ist: Siehe hier. Das Sender-EPG wird zwar in die Datenbank eingetragen, aber verteilt an die verschiedenen Clients wird es nur, wenn auch auch eine Merge-Alternative existiert. Ansonsten könnte man tatsächlich eines der bestehenden Plugins nutzen und das EPG damit in die Datenbank schreiben und an die verschiedenen Clients verteilen lassen.

    Auf epgd will ich nicht verzichten. Alleine die Suchtimer und das Timerhandling für die verschiedenen Aufnahmeserver sind Gold wert.

    Zum eigentlichen Thema: Ich habe es tatsächlich geschafft ein halbwegs vernünftiges xsl zu erzeugen. Jetzt steht das Plugin an.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!