[vdr-plugin-xmltv2vdr] Benötige Hilfe für die Konfiguration vom xmltv2vdr-Plugin

  • Für die über das vdr-plugin-iptv empfangenen Streams (siehe hier), möchte ich nun noch das zugehörige EPG integrieren.

    Ein erster Versuch mit dem Script von jjsfm aus diesem Thread klappt schon sehr gut.

    Allerdings habe ich bei meinem Zattoo-Paket auch einige Streams, die im Kabel-TV nicht enthalten sind und da kann das Script leider nicht weiterhelfen.


    Deshalb kam mir die Idee, die vorhandenen EPG-Daten mit dem vdr-plugin-xmltv2vdr in den VDR zu integrieren.

    In dem TVheadend, welches ich für KODI verwende, habe ich die EPG-Daten bereits in Form einer xmltv-kompatiblen Datei.

    Diese EPG-Daten werden durch das Script script.service.easyepg-lite bereitgestellt.

    Diese EPG-Daten-Datei ist mehr als 15MB groß, so dass diese hier nicht einstellen kann.


    Für die Konfiguration des vdr-plugin-xmltv2vdr habe ich mir den Beitrag im VDR-Wiki-xmltv2vdr genommen.

    Dazu habe ich im Verzeichnis /var/lib/epgsources die Steuerdatei easyepg mit folgendem Inhalt angelegt:

    Code
    file
    7
    3sat.de
    ard.de
    zdf.de

    Dann habe ich noch testweise mir die EPG-Daten-Datei vom script.service.easyepg-lite ebenfalls in das Verzeichnis kopiert und nach den Vorgaben aus dem VDR-Wiki umbenannt in easyepg.xmltv


    Im OSD-Menü vom vdr-plugin-xmltv2vdr habe ich dann zum Testen nur den ersten Eintrag mit "3sat.de" ausgewählt und mit dem entsprechenden Stream-Channel verknüpft.

    Das hat alles soweit funktioniert.

    Nach einem Neustart des VDR habe ich nun folgende Fehlermeldungen im Minutentakt im syslog stehen:

    Code
    yavdr vdr: [4544] xmltv2vdr: 'easyepg' easyepg 7 '' 0  3sat.de 
    yavdr vdr: [4544] xmltv2vdr: 'easyepg' ERROR (script) sh: Zeile 1: easyepg: Befehl nicht gefunden
    yavdr vdr: [4544] xmltv2vdr: 'easyepg' ERROR epgsource returned 127


    Mit der Fehlermeldung kann ich jetzt leider nichts anfangen und hoffe mir kann hier geholfen werden.

    Was muss ich denn noch beachten/konfigurieren damit die EPG-Daten aus der bereitgestellten xmltv-Datei in den VDR importiert werden. :/



    NACHTRAG, vielleicht ist das wichtig!?

    Im oben verlinktem VDR-Wiki-Beitrag steht folgendes für die Bereitstellung der EPG-Daten:


    Vor allem der 2. Abschnitt bei "Jede Quelle muss über eine ausführbare Datei , die dem xmltv2vdr-Plugin die EPG-Daten im entsprechenden Format bereitstellt. ..." macht mich ganz wirr!

    Was soll ich denn für eine ausführbare Binärdatei in /usr/bin erstellen?

    Brauche ich so etwas überhaupt? :/

    Wenn ja, kann mal jemand bitte eine Beispieldatei zur Verfügung stellen?

  • easyepg: Befehl nicht gefunden

    Gibt es den denn? Wenn ja, evtl. nicht im Path``? Wenn nein, ...

  • Was soll ich denn für eine ausführbare Binärdatei in /usr/bin erstellen?

    Steht doch eigentlich alles in Deiner zitierten Beschreibung. Das Skript dient zum Holen der externen EPG-Daten (wobei Binärdatei etwas mißverständlich ist, "ausführbar" wäre besser). Wenn der Returncode ungleich 0 ist wird das Holen als nicht erfolgreich angesehen und mehrmals wiederholt.

    Im einfachsten Fall enthält das Skript nur exit 0 wenn die xmltv-Datei schon vorhanden ist, aber Fehler (z.B. unvollständige xmltv-Datei oder keine Verbindung zum Server) können dann vom Plugin natürlich nicht abgefangen werden und führen später zu Problem bei der Verabeitung.

  • Na ja, "easyepg" ist die sog. Steuerdatei und die liegt unter /var/lib/epgsources , ebenso wie die EPG-Daten-Datei "easyepg.xmltv" .

    Das ist doch der richtige Ort! Oder?

  • FireFly , aahh, okay. Danke für den Tipp.


    Dann muss ich also nur eine ausführbare Script-Datei unter /usr/bin anlegen, die den gleichen Namen hat wie die Steuerdatei?

    Werde ich demnächst testen.

  • FireFly , dein Tipp war richtig! :thumbup:

    Jetzt ist die Fehlermeldung weg. :)


    Das EPG für 3sat.de hat das Plugin zwar noch nicht erstellt, aber das ist scheinbar nur eine Einstellungssache im Plugin-OSD.

    Aber jetzt komme ich erstmal nicht mehr an den VDR, erst in ca. 2 Stunden wieder.


    Hier mal noch der Ausschnitt aus dem syslog:


    Jetzt gab es nur noch Mecker, weil die anderen Kanäle nicht gemappt sind.

    Für den gemappten Channel "3sat.de" habe ich im OSD für das EPG "mischen" eingestellt. da muss vermutlich "erstellen" hin!

    Oder wie soll ich das syslog deuten?

    xmltv2vdr: 'easyepg' ERROR cannot get schedule for channel 3sat HD ffmpeg - try add option


    Ich hatte dann noch ein "reboot" gemacht, aber dann kamen keine Meldungen mehr.

    Läuft das Plugin nur bei der eingestellten Zeit (Vorgabe ist 00:10Uhr) bzw. dann beim Start des VDR einmal?

    Gibt es eine Möglichkeit das Plugin "manuell" anzustoßen bzw. per Cronjob so alle Stunde einmal laufen zu lassen?

  • Ich glaube das vdr-plugin-xmltv2vdr ist nix für den produktiven Gebrauch!

    Gestern Abend habe ich dann noch etwas getestet und bei ein paar Channels habe ich dann auch ein EPG bekommen, aber nicht bei allen.

    Getestet habe ich dann immer, in dem ich über die Konsole ein Update des Plugins ausgeführt habe:

    svdrpsend plug xmltv2vdr updt


    Bei meinen weiteren Probieren und Testen ging plötzlich gar nichts mehr. X/

    Bei jedem Aufruf zum Update des Plugins über: svdrpsend plug xmltv2vdr updt kam sofort ein "SEGFAULT" und der VDR hat neu gestartet.


    Obwohl ich inzwischen alles wieder zurückgedreht habe und nur noch "ARD.de" zum testen nehme gibt es sofort ein SEGFAULT.

    Code
    Jul  3 10:13:10 yavdr vdr: [1438] SVDRP yavdr < 127.0.0.1:42744 client connection accepted
    Jul  3 10:13:10 yavdr vdr: [1438] SVDRP yavdr < 127.0.0.1:42744 connection closed
    Jul  3 10:13:10 yavdr kernel: [  530.249514] show_signal_msg: 12 callbacks suppressed
    Jul  3 10:13:10 yavdr kernel: [  530.249519] xmltv2vdr impor[2993]: segfault at 0 ip 00007f564ca4365a sp 00007f55f7ffea50 error 4 in libvdr-xmltv2vdr.so.2.6.3[7f564ca2c000+3c000]
    Jul  3 10:13:10 yavdr kernel: [  530.249527] Code: 00 00 00 31 c0 e8 06 b8 fe ff 48 8b 85 98 fd ff ff 48 8d b5 b8 fd ff ff 31 c9 ba 02 00 00 00 48 c7 85 b8 fd ff ff 00 00 00 00 <48> 8b 00 48 8b 78 08 e8 ea c0 fe ff 85 c0 0f 85 e9 03 00 00 48 8b
    Jul  3 10:13:12 yavdr yavdr-frontend[1389]: INFO:pydbus2vdr:VDR Status: stopped
    Jul  3 10:13:12 yavdr yavdr-frontend[1389]: DEBUG:softhddevice:g-dbus-error-quark: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name de.tvdr.vdr was not provided by any .service files (2)
    Jul  3 10:13:12 yavdr systemd[1]: vdr.service: Main process exited, code=killed, status=11/SEGV
    Jul  3 10:13:12 yavdr systemd[1]: vdr.service: Failed with result 'signal'.


    Da ist noch irgendwo in dem Plugin der Wurm drin, aber ich weiß nicht wo.

    Ich habe jetzt erstmal das vdr-plugin-xmltv2vdr komplett deaktiviert und verwende nur das Script von jsffm .

    Mit dem bekommt man ohne "SEGFAULTS" das EPG für alle "normalen" Channels. ;)

  • Ich habe jetzt herausgefunden, dass durch meine rumprobiererei wohl das vdr-plugin-xmltv2vdr mit seiner epg-Datenbank etwas durcheinander gekommen ist. Aber das das dann gleich in einen SEGFAULT enden muss, ist wirklich suboptimal. ?(


    Nach einem Ordnen der EPG-Daten mittels: svdrpsend plug xmltv2vdr deld waren die SEGFAULTS erstmal weg.

    Vermutlich funktioniert auch ein Aufräuen mit: svdrpsend plug xmltv2vdr hous. Werde ich beim nächsten SEGFAULT testen! ;)


    Da merkt man leider, dass dieses Plugin nicht mehr ständig gepflegt wird, denn m.M. nach sollte man so etwas irgendwie anders abfangen! :(

  • Diese EPG-Daten-Datei ist mehr als 15MB groß, so dass diese hier nicht einstellen kann.

    Wäre nicht schlecht wenn Du mir die irgendwie zukommen lassen könntest (siehe unten)

    Quote from Paulaner

    yavdr vdr: [4544] xmltv2vdr: 'easyepg' ERROR (script) sh: Zeile 1: easyepg: Befehl nicht gefunden

    Uh, ein Bug... ich habe bislang immer nur pipe verwendet.. bei file sollte gar nix aufgerufen werden


    Was "mischen" und "erstellen" ist habe ich nie richtig verstanden

    Mischen = vorhandenes DVB-EPG mit externem EPG mischen (impliziert das auch nicht mehr EPG angelegt wird als schon vorhanden, impliziert das es unbedingt ein DVB-EPG geben muss, weil deren Event-IDs verwendet werden)
    Erstellen = das EPG wird nur aus dem externen EPG erstellt (impliziert das es kein DVB-EPG geben darf [glaube ich, lang ists her, eventuell wirds auch geblockt])


    Da sind mir eben keine besseren Begriffe eingefallen, kann die aber jederzeit in etwas Griffigeres ändern - wenn ich da Input bekomme :)

    Ich glaube das vdr-plugin-xmltv2vdr ist nix für den produktiven Gebrauch!

    Ich glaube schon. Ich verwende das xmltv2vdr Plugin nun seitdem ich es geschrieben habe mit externem EPG (für ein paar Kanäle) in der Betriebsart "Mischen" ...

    kam sofort ein "SEGFAULT" und der VDR hat neu gestartet.

    Dann ist das ein Bug =O Die Eingabedatei würde mich interessieren die den Segfault erzeugt... dann kann ich das fixen...

  • Joe_D , sorry wenn ich etwas ungehalten war! ;)

    Aber als dann plötzlich ständig diese SEGFAULTS gekommen sind, war ich doch etwas frustriert.

    Den Fehler konnte ich ja nun zum Glück beseitigen.


    Die Geschichte mit dem pipe sind für mich böhmische Dörfer. Da weiß ich gar nicht was ich damit anfangen soll.

    Vielleicht könntest Du mich da etwas aufklären.

    Für mich war die Verwendung von file logischer, da ich ja eine fertige xmltv-Datei durch das easyepg-lite-Script auf dem PC liegen habe.




    Uh, ein Bug... ich habe bislang immer nur pipe verwendet.. bei file sollte gar nix aufgerufen werden

    Scheint so zu sein, denn sobald ich einen 2. Channel zufüge klappt es irgendwie nicht mehr.

    Die ausführbare Datei unter /usr/bin sieht dann aktuell bei mir so aus:

    Bash
    #!/bin/sh
    
    14 '' 0 ard.de zdf.de
    exit 0


    Ich hatte als 1. Test nur zdf.de drin stehen gehabt und das funktionierte.

    Dann habe ich ard.de zugefügt und schon kommt eine Fehlermeldung bei Ausführen von svdrpsend plug xmltv2vdr updt :

    Code
    xmltv2vdr: 'easyepg-zattoo' easyepg-zattoo 1 '' 0  ard.de  zdf.de 
    xmltv2vdr: 'easyepg-zattoo' ERROR (script) /usr/bin/easyepg-zattoo: Zeile 3: 14: Befehl nicht gefunden

    Aber wenn man diese Datei unter /usr/bin bei Verwendung von file gar nicht braucht, wäre dass dann noch besser. ;)



    Dann ist das ein Bug =O Die Eingabedatei würde mich interessieren die den Segfault erzeugt... dann kann ich das fixen...

    Welche Eingabedatei meinst Du?

    Ich habe beide Dateien (die unter "/usr/bin" und auch die unter "/var/lib/epgsources" ) inzwischen vielfach geändert, weil ich ja den SEGFAULT loswerden wollte. Aber im Prinzip sehen die genauso aus wie z.B. oben gezeigt, nur mit ca 30 Channels in der Liste.


    Die Datei unter /var/lib/epgsources sieht aktuell so aus:

    Code
    file
    14
    ard.de
    zdf.de


    Es wäre super, wenn wir das Plugin auch mit file richtig zum funktionieren bringen könnten.

    Für die EPG-Daten.xmltv habe ich Dir eine PM geschickt,.

    Edited once, last by Paulaner ().

  • Quote from Joe_D

    [...] bei file sollte gar nix aufgerufen werden

    Ich muss mich korrigieren. Nach Durchsicht der Quellen ist es folgendermaßen:


    xmltv2vdr ruft immer ein script auf das xmltv-Dateien lieferen soll.


    Entweder liefert es das direkt an stdout (pipe) oder es schreibt die Ausgabe in eine Datei (file)


    Eigentlich wichtig wäre folgender Punkt, d.h. das Skript wäre dafür zuständig das so anzupassen:

    Quote from xmltv2vdr wiki

    Die Kanalnamen in der xmltv-Datei sind fest und unabänderlich um eine Mehrfachzuweisung verschiedener Quellen zu verhindern (siehe Kanalliste). Dabei wird folgendes Schema verwendet: Sendername gefolgt von einem Punkt und der Länderkennung, z.B. rtl.de oder orf.at


    Das easyepg-zattoo Skript sollte also eine Datei names easyepg-zattoo.xmltv erzeugen. Wenn die Datei easyepg.xmltv irgendwie extern erzeugt wird kann das easyepg-Skript auch so aussehen:

    Bash
    #!/bin/sh
    exit 0


    Nach Durchsicht der xmltv-Datei ist mir eben aufgefallen das statt ard.de dort ARD.de drinsteht oder auch so lustige Sachen wie IDs mal so df1_de, mal so SWR.de oder so moviedome_de ... xmltv übliches Kraut und Rüben was die Verwendbarkeit mehrerer Quellen im eigentlich schön standardisierten Dateiformat leider komplett ad absudum führt... denn woher soll ein Programm wissen das die IDs ard.de, ARD.de, Ard_de oder DasErste sämtlich für den gleichen Sender gelten?


    Wenn man nur eine Quelle hat kann man natürlich die IDs 1:1 aus der xmltv-Datei übernehmen.


    Da ich bei mir mit den Standardnamen arbeite hab ich die mal in der Datei ausgetauscht:

    Code
    sed 's/ARD\.de/ard\.de/g; s/ZDF.\de/zdf\.de/g' easyepg-zattoo-orig.xmltv > easyepg-zattoo.xmltv


    Die Einstellungen sehen dann bei mir so aus (mit 0 auf einer Quelle lässt diese sich übrigens ein- oder ausschalten, war leider keine Farbe mehr für die Funktion übrig):


    Die ersten beiden Menüpunkte machen nur dann etwas, wenn unter ~vdr/.eplists/lists Listen von https://www.eplists.de abliegen.
    Dann werden Staffel und Episode (wenn vorhanden) auch bei allen Timern (unabhängig ob von xmltv2vdr bereitgestellt) hinzugefügt.


    Bei den zugewiesenen Quellkanälen hab ich einfach mal (fast) alles eingeschaltet:


    Nach svdrpsend plug xmltv2vdr updt force bekomme ich folgendes Log:

    Zwei Sachen die mir hier auffallen:


    Er meckert ein unbekanntes Element live an, warum auch immer es das gibt... - muss ich noch hinzufügen


    Ansonsten werden keine EventIDs bereitgestellt weshalb diese aus der Anfangszeit generiert werden, das führt dann zu folgender Info: event without id, using starttime as id (weak)!. Das ist nur dann "schlimm" wenn sich bei einem xmltv-Update eine Sendung erheblich verschiebt, dann kann es sein das zwei überlappende EPG-Einträge entstehen. So recht hab' ich das aber nicht durchgetestet da ich immer mischen verwende...

    Und so sieht dann (bei mir) das Ergebnis z.B. für die importierte ard.de aus:


    Wenn ich das nochmals update funktioniert das eigentlich. Einen Segfault habe ich nicht hinbekommen.

    Details sehen z.B. so aus:


    Lustigerweise wird da ein "Actor(s)" und das Jahr in die Description gepappt, was bei xmltv völlig sinnlos ist. Da xmltv2vdr schön mit dem Format umgehen kann wurden die Darsteller und das Jahr einzeln hinzugefügt (wie eben in den Einstellungen angegeben)


  • Als ich das Plugin vor einiger Zeit mit dem Script easyepg getestet habe ist mir das auch aufgefallen

    Ich hatte dazu einen Fehler eingestellt: https://github.com/vdr-project…plugin-xmltv2vdr/issues/7

    Ja, tut mir leid - ich hatte bislang kein easyepg-Input. Das phyton-Zeug mit Weboberfläche ist für mich einfach overkill - auch aus dem einfachen Grund da ich seit zwanzig Jahren keine Sender ohne DVB-EPG anschaue bzw. aufnehme...

  • Nach Durchsicht der xmltv-Datei ist mir eben aufgefallen das statt ard.de dort ARD.de drinsteht oder auch so lustige Sachen wie IDs mal so df1_de, mal so SWR.de oder so moviedome_de ... xmltv übliches Kraut und Rüben was die Verwendbarkeit mehrerer Quellen im eigentlich schön standardisierten Dateiformat leider komplett ad absudum führt... denn woher soll ein Programm wissen das die IDs ard.de, ARD.de, Ard_de oder DasErste sämtlich für den gleichen Sender gelten?

    Wenn ich das richtig verstehe, dann gibt es die Probleme aber nur, wenn man mischen anstelle erstellen wählt.

    Für die Channels, welche nur als Streams zur Verfügung stehen, wie z.B. moviedome_de ist das dann egal.

    Mal eine Frage dazu:

    Könnte man die Abfragen auch so gestalten, dass diese nicht "casesensitiv" ist, also egal ob Groß- oder Kleinschreibung?



    Ich werde das demnächst nochmal probieren, vielleicht habe ich dann etwas mehr Erfolg.

    Ich werde berichten! ;)

  • Wenn ich das richtig verstehe, dann gibt es die Probleme aber nur, wenn man mischen anstelle erstellen wählt.

    Nö, das ist bei einer Quelle egal. Aber bei zwei oder drei Quellen wird das halt problematisch, da es im xmltv2vdr plugin nur eine Zuordnung xmltv2vdr quellkanal (z.B. ard.de) auf ein oder mehrere VDR-Kanäle gibt. Wenn alle Quellen mit der gleichen ID "arbeiten", bzw. die Skripte das eben so hinbiegen dann benötigt man bei zwei oder drei Quellen eben nur eine einzige Zuweisung für alle Quellen im VDR..


    Mehrere Quellen und erstellen hab' ich selber noch gar nicht wirklich ausprobiert. Ist halt die Frage was da passieren soll. Vor allem wenn Quelle A IDs zu den Events mitliefert, Quelle B aber nicht. Wenn nun Quelle A ausfällt würden die selbstgenerierten IDs der Quelle B verwendet, wenn dann Quelle A wieder da ist könnte es sein das doppelte Einträge auftauchen... Hachja, das EPG-Thema... :S

  • So, jetzt habe ich das nochmal getestet und es scheint zu funktionieren! :)

    Wie Joe_D vorgegeben hat, habe ich die ausführbare Datei in /usr/bin ausgedünnt und alle Channels usw. entfernt:

    Bash
    #!/bin/sh
    exit 0


    Dann habe ich in die Steuerdatei in /var/lib/epgsources/ mal ca. 10 Channels eingetragen,

    dabei habe ich die Groß- / Kleinschreibung bei den Sendernamen genau beachtet:


    Nach einem svdrpsend plug xmltv2vdr updt force hatte ich dann ein EPG in allen Sendern. Erstmal schon sehr gut! :) :thumbup:


    Allerdings gibt es nur das EPG für 2 Tage und nicht für 14 Tage, wie ich es in der Steuerdatei eingetragen habe (siehe oben).

    Wenn ich auf KODI wechsel, dann habe ich ein 14-Tage-EPG, also sind die Daten vorhanden.

    Habe ich da noch irgendeine Einstellung im Plugin übersehen? :/

  • Super, habe die Einstellung gefunden und nun ist das EPG auch für 14 Tage da. ;)

    Heute komme ich nicht weiter zum Testen, aber vielleicht am Wochenende.

Participate now!

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