xmltv2vdr-plugin importiert keine Daten - wieso?

  • Hallo,


    Ich versuche einige EPG Daten mit Hilfe des xmltv2vdr-plugins zu importieren, aber leider gelingt es mir nicht.


    Die Steuerdatei namens tv-grab-fr-telerama hat folgenden Inhalt:


    Die Datei namens tv-grab-fr-telerama.xmltv mit den EPG Daten habe ich bei rapidshare hochgeladen, damit Sie sie sich ansehen können. Der Link zum Download lautet:
    https://rapidshare.com/files/4…tv-grab-fr-telerama.xmltv


    Die Datei mit den Daten gibt bei tv_validate_file ein ok zurück.


    Beide Dateien haben die Rechte 644 auf dem yaVDR und vdr ist der owner der Dateien.


    Im OSD des Plugins habe ich die meisten EPG Sender dieser Quelle aktiviert und auf die entsprechende Sender der channels.conf gemapped.


    Ich verbinde mich per ssh mit dem yavdr und rufe "sudo svdrpsend plug xmltv2vdr updt" auf. Im Terminal erhalte ich:

    Code
    1. 220 yavdr SVDRP VideoDiskRecorder 1.7.16; Mon Apr 25 22:43:02 2011; UTF-8
    2. 250 Update started
    3. 221 yavdr closing connection


    Im syslog steht:

    Code
    1. Apr 25 22:43:02 yavdr vdr: [1949] connect from 127.0.0.1, port 34356 - accepted
    2. Apr 25 22:43:02 yavdr vdr: [2826] xmltv2vdr importer thread started (pid=1949, tid=2826)
    3. Apr 25 22:43:02 yavdr vdr: [1949] closing SVDRP connection
    4. Apr 25 22:43:04 yavdr vdr: [2826] xmltv2vdr importer thread ended (pid=1949, tid=2826)


    Aber wenn ich mich mit dem Firefox zum LIVE Plugin verbinde, sind die EPG Daten bei den entsprechenden Sendern nicht vorhanden.


    Könnte jemand mir bitte sagen, was ich fasch mache?


    Vielen Dank im Voraus.

  • Ich habe mal eine Testsource erstellt, vdr mit -l 3 laufen lassen und (fast) alle xmltv2vdr-Einträge aus dem Log extrahiert. Sieht dann so aus:



    Kannst Du das bei Dir auch mal so machen?


    Gruß


    Joe_D

  • Hallo,


    Danke für deine Antwort.


    Ich musste zuerst nachsuchen, wie man vorgeht um den yavdr mit "-l 3" zu starten. Ich bin so vorgegangen: In der Datei /etc/init/vdr.conf habe ich

    Code
    1. exec /usr/bin/vdr -v $VIDEO_DIR -c $CFG_DIR -L $PLUGIN_DIR -r $REC_CMD -s $VDRSHUTDOWN -E $EPG_FILE -u $USER -g /tmp --port $SVDRP_PORT $OPTIONS "${PLUGINS[@]}" $REDIRECT &> /tmp/vdr.log

    mit

    Code
    1. exec /usr/bin/vdr -l 3 -v $VIDEO_DIR -c $CFG_DIR -L $PLUGIN_DIR -r $REC_CMD -s $VDRSHUTDOWN -E $EPG_FILE -u $USER -g /tmp --port $SVDRP_PORT $OPTIONS "${PLUGINS[@]}" $REDIRECT &> /tmp/vdr.log

    ersetzt.


    Startet der vdr jetzt wie von dir erwünscht?



    Folgendes erhalte ich im Log:



    Und danach ergibt ein "sudo svdrpsend plug xmltv2vdr updt" nur:


    Code
    1. May 1 21:56:52 yavdr vdr: [2016] xmltv2vdr importer thread started (pid=1893, tid=2016)
    2. May 1 21:56:53 yavdr vdr: [2016] xmltv2vdr importer thread ended (pid=1893, tid=2016)


    Es scheint, als würde er nichts einlesen; warum wohl?


    MfG

  • Vielen Dank für das Plugin mit den erweiteren Logausgaben. Leider scheint es nicht viel weiterzuhelfen:



    Die Datei mit den EPG Daten habe ich auch hochgeladen, falls du sie dir ansehen möchtest:
    https://rapidshare.com/files/460433255/tv-grab-fr.xmltv


    In meinem ersten Post habe ich erläutert wie ich vorgehe; es kann ja nicht an einer falschen Manipulation meinerseits liegen!?


    MfG

  • Quote

    Bitte nochmals die gleiche Prozedur. Danke.

    Vielen Dank auch an Dir für deine Hilfe.



    Hier ist der log mit der Version von heute:



    Etwas später nochmals probiert:


    Code
    1. May 4 14:21:06 yavdr vdr: [2608] connect from 127.0.0.1, port 49075 - accepted
    2. May 4 14:21:06 yavdr vdr: [3059] xmltv2vdr importer thread started (pid=2608, tid=3059)
    3. May 4 14:21:06 yavdr vdr: [3059] xmltv2vdr: reading '/var/lib/epgsources/tv-grab-fr.xmltv' from epgsource 'tv-grab-fr'
    4. May 4 14:21:06 yavdr vdr: [2608] closing SVDRP connection
    5. May 4 14:21:07 yavdr vdr: [3059] xmltv2vdr importer thread ended (pid=2608, tid=3059)


    Hier der relevante Auszug aus der setup.conf:



    Manchmal (nicht immer) ist jedoch auch ein error dabei:


    Code
    1. May 4 14:19:27 yavdr vdr: [2608] connect from 127.0.0.1, port 49073 - accepted
    2. May 4 14:19:27 yavdr vdr: [3034] xmltv2vdr importer thread started (pid=2608, tid=3034)
    3. May 4 14:19:27 yavdr vdr: [3034] xmltv2vdr: reading '/var/lib/epgsources/tv-grab-fr.xmltv' from epgsource 'tv-grab-fr'
    4. May 4 14:19:27 yavdr vdr: [2608] closing SVDRP connection
    5. May 4 14:19:29 yavdr vdr: [3034] xmltv2vdr importer thread ended (pid=2608, tid=3034)
    6. May 4 14:19:29 yavdr vdr: [2608] ERROR: /var/cache/vdr/epg.data: No such file or directory


    MfG

  • Nochmals danke für die neue Version zum Fehlerfinden.


    Anscheinend gibt es ein Mapping Problem:



    Hier nochmals die Steuerdatei:



    Hier der Anfang der Datei mit den EPG Daten; die Daten reichen bis zum 9. Mai:



    Hier der relevante Auszug aus der setup.conf:


    Nochmals vielen Dank für deine Hilfe.


    mfg

  • Jetzt ist es klar:


    xmltv-Datei:
    <channel id="C1.telepoche.com">


    Aber im Plugin heisst der Kanal:
    *tf1.fr;C1.telepoche.com


    Die Kanal-ID in der xmltv-Datei für xmltv2vdr muss aber so aussehen:


    <channel id="tf1.fr">


    Müsste mit einem einfachen sed funktionieren...


    Gruß


    Joe_D

  • Hallo,


    Danke für die Lösung. Ich bin jedoch erstaunt:


    Im wiki des plugins steht:

    Quote

    Es folgt eine Liste mit Kanalnamen (siehe Kanalliste), die je nach EPG-Quelle auch eine Zuweisung auf einen Kanal der EPG-Quelle enthalten kann (strichkommagetrennt vom Kanalnamen)

    Soll das nicht heißen, dass wenn man folgendes in die Steuerdatei schreibt:

    Quote

    tf1.fr;C1.telepoche.com

    der plugin weiß, dass er die id C1.telepoche.com mit tf1.fr verknöpfen soll? Oder dient der Zusatz C1.telepoche.com in der Steuerdatei zu etwas anderes?


    MfG

  • Hallo Ludi,


    es stimmt schon:


    Quote

    Es folgt eine Liste mit Kanalnamen (siehe Kanalliste), die je nach EPG-Quelle auch eine Zuweisung auf einen Kanal der EPG-Quelle enthalten kann (strichkommagetrennt vom Kanalnamen)


    Alles nach dem Strichpunkt ist ausschließlich für die EPG-Quelle. Das Plugin selbst macht damit gar nichts.


    In der Steuerdatei kann also auch einfach nur


    Code
    1. tf1.fr

    stehen.


    Ist eben nicht einfach zu beschreiben...


    Gruß


    Joe_D


    P.S.: Wenn es jetzt geht, kannst Du auch Deine Erfahrungen dazu posten?

  • Leider habe ich mich zu früh gefreut: Das EPG wird immer noch nicht angezeigt.


    Mit folgendem Skript wandele ich die id der Sender um und tv_validate_file sagt beim Prüfen des Ausgabefiles tv-grab-fr.xmltv ok.


    Beim importieren des Ausgabefiles tv-grab-fr.xmltv mit "sudo svdrpsend plug xmltv2vdr updt" ist der syslog voll mit Meldungen wie die folgenden.



    Ist die Datei mit den EPG Daten nicht in Ordnung? Die Anfangsdatei tv-grab-fr.xmltvo wurde mit tv_grab_fr vom Internet geholt.


    MfG

  • Hallo,

    Quote

    Vielen Dank nochmals für die unermüdliche Unterstützung von xmltv2vdr

    Ich danke dir auch; insbesondere auch für deine Geduld mit mir.


    Mit der neuen Version aus deiner Antwort von gestern sind die Null-Meldungen weg. Ich hatte jedoch zuerst sehr viele Meldungen wie diese:


    Dann habe ich bei der Konfiguration überall "merge" mit "append" ersetzt und die Meldung sind nicht nur verschwunden, sondern das EPG wurde endlich auch importiert. :D Ich nehme jetzt an, dass merge jede Sendung nur importiert wenn sie schon im EPG existiert. Ist das korrekt?


    Wie müssten merge und append eigentlich richtig funktionieren?


    Schließlich, möchte ich wieder auf die Steuerdatei zurückkommen: Könnt ihr das xmltv plugin nicht derart erweitern, dass er Einträge wie der folgende als Zuordnung ansieht? Das würde den Leuten, die Anpassung der Quellen an das Plugin vereinfachen.

    Quote

    tf1.fr;C1.telepoche.com

    MfG


  • Schließlich, möchte ich wieder auf die Steuerdatei zurückkommen: Könnt ihr das xmltv plugin nicht derart erweitern, dass er Einträge wie der folgende als Zuordnung ansieht? Das würde den Leuten, die Anpassung der Quellen an das Plugin vereinfachen.

    MfG


    Die Idee ist ja das man die Zuordnung (also "tf1.fr" zum Kanal in deiner Kanalliste zuordnen, jede EPG Quelle nennt diesen Kanal ja "tf1.fr") nur einmal vornimmt und nicht für jeden Grabber extra. Und das was nach dem ";" ist ja nur für den Grabber (also das was bei die die EPG Daten runterläd), die anderen Grabber können mit dem nach dem ";" ja nix anfangen weil sie hier ganz andere Bezeichnungen nutzen (oder das nach dem ";" selber überhaupt nicht verwenden, also es komplett ignorieren was dort steht).


    cu

  • Ich glaube, ich habe mich leider nicht verständlich genug ausgedrückt.
    Es geht mir nicht um die Zuordnung: Sender der channels.conf <-> standardisierter Sendername (z.B. tf1.fr)
    Es geht mir um die Zuordnung: Sender id in der Quelle (zb C1.telepoche.com) <-> standardisierter Sendername (z.B. tf1.fr)


    In der Tat:
    Die Steuerdatei des grabbers kündigt dem xmltv2vdr plugin ja an, welche Daten der grabber liefert. Folglich könnte ich mir vorstellen dass der grabber mit der Zeile "tf1.fr;C1.telepoche.com" das folgende mitteilt: "In meinen Daten befindet sich ein Sender mit der id C1.telepoche.com; eigentlich ist das der Sender den du unter den Standardnamen tf1.fr führst und folglich muss du die Daten mit id C1.telepoche.com dem Sender tf1.fr zuordnen."


    Da der xmltv2vdr plugin die Steuerdatei nicht so interpretiert, muss ich die Daten in der Quelle patchen und C1.telepoche.com überall mit tf1.fr ersetzen. Würde das plugin die Steuerdatei so interpretieren, könnte die Quelle auch andere ids benutzen; die Zuordnung dieser ids zu den Standardnamen steht ja in der Steuerdatei.


    Außerdem, welchen Sinn macht es für einen grabber, Angaben, die für seinen internen Gebrauch sind, in eine Steuerdatei zu schreiben, dessen Ziel das "externe" xmltv2vdr plugin ist.


    MfG

  • Ich glaube, ich habe mich leider nicht verständlich genug ausgedrückt.
    Es geht mir nicht um die Zuordnung: Sender der channels.conf <-> standardisierter Sendername (z.B. tf1.fr)
    Es geht mir um die Zuordnung: Sender id in der Quelle (zb C1.telepoche.com) <-> standardisierter Sendername (z.B. tf1.fr)


    Aber die ist doch bei jedem Grabber (das zu dieser Steuerdatei gehörige Programm was die XML mit den TV Daten liefert) anderst. Weil jede Datenquelle nennt die Sender ja anderst.



    Die Steuerdatei des grabbers kündigt dem xmltv2vdr plugin ja an, welche Daten der grabber liefert. Folglich könnte ich mir vorstellen dass der grabber mit der Zeile "tf1.fr;C1.telepoche.com" das folgende mitteilt: "In meinen Daten befindet sich ein Sender mit der id C1.telepoche.com; eigentlich ist das der Sender den du unter den Standardnamen tf1.fr führst und folglich muss du die Daten mit id C1.telepoche.com dem Sender tf1.fr zuordnen."


    Nein, die Steuerdatei kündigt den Sender "tf1.fr" an, "C1.tetepoche.com" sieht xmltv2vdr garnicht, das wird ausschliesslich vom Gabber genutzt.


    muss ich die Quelle patchen und C1.telepoche.com überall mit tf1.fr ersetzen.


    Genau, das ist die Aufgabe des Grabbers das zu tun. Grabbers liefern die Sender mit Standartnamen, das Mapping zwischen Sendername der Quelle und Standartname ist Aufgabe des Grabbers.



    Außerdem, welchen Sinn macht es für einen grabber, Angaben, die für seinen internen Gebrauch sind, in eine Steuerdatei zu schreiben, dessen Ziel das "externe" xmltv2vdr plugin ist.


    Joe_D wollte das so weil er nur eine Config haben wollte. IMHO sollten Grabber den zweiten Wert weglassen (";*") und ihre eigene Config verwenden. Aber das kann jeder Grabber so halten wie er möchte. Siehe es als Extradatenfeld was der Grabber zur freien Verfügung hat (der kann das auch weglassen und gar nicht nutzen).


    Da kann der Grabber auch reinschreiben wann die Daten für diesen Kanal zuletzt geholt wurden um zu entscheiden ob der nächste Aufruf aus dem Cache laufen soll, oder die URL der Datenquelle, oder, oder, oder...


    xmltv2vdr interessiert nur das dieser Grabber den Sender "tf1.fr" liefern kann, der Rest muss der Grabber machen. xml2vdrsoll ja bewusst unabhängig von den div. Datenquellen arbeiten und sich nicht auf bestimmte Datenquellen (oder deren spezielle Eigenheiten) festlegen. Eine andere Datenquelle benennt die EPG Infos für den Sender "tf1.fr" evtl. nicht "C1.tetepoche.com" sondern mit "825".


    cu

  • ludi


    Quote

    Außerdem, welchen Sinn macht es für einen grabber, Angaben, die für seinen internen Gebrauch sind, in eine Steuerdatei zu schreiben, dessen Ziel das "externe" xmltv2vdr plugin ist.

    Diese Datei gehört eigentlich zum Grabber, die Datei ist ja auch grabberspezifisch. Warum also nicht auch grabberspezifische Angaben dort reinschreiben? Mein tvm2xmltv-Grabber z.B. verwendet diese Steuerdatei um nur genau so viele Daten herunterzuladen wie nötig (also nur die Kanäle mit * vorne dran).


    Ich weiss aber worauf Du hinaus möchtest, nämlich den Zwischenschritt "irgendeine ID von einer schon bestehenden xmltv-Quelle auf die xmltv2vdr-KanalIDs" zu sparen. Aber genau den Zwischenschritt sollte ja der xmltv2vdr-Grabber machen.


    xmltv2vdr liest keine Dateien (einfach so) vom xmltv-Projekt ein, sondern liest Dateien im xmltv-Format ein. Und zwar mit fester Kanal/EPG-ID.


    Quote

    Wie müssten merge und append eigentlich richtig funktionieren?


    merge = mischen, d.h. vorhandene EPG-Enträge erweiteren (bei Ausfall des Grabbers werden trotzdem noch Aufnahmen gemacht, da das Sender-EPG greift)
    append = hinzufügen, d.h. neue EPG-Einträge erstellen (geht aber nur wenn es entweder kein EPG gibt oder der Kanal mit dem noEPG-Plugin/Patch gesperrt wurde, bei Ausfall des Grabbers wird nichts aufgenommen!)


    Gruß


    Joe_D


  • xmltv2vdr liest keine Dateien (einfach so) vom xmltv-Projekt ein, sondern liest Dateien im xmltv-Format ein. Und zwar mit fester Kanal/EPG-ID.


    Jup, ich denke hier ist das Missverständnis.


    xmltv2vdr ist ja kein Importfrontend für xmltv, sondern es nutzt nur das xmltv Datenformat. Das xmltv Projekt und das dort verwendete Datenaustauschformat sind ja zwei verschiedene Sachen. Evtl. kommt das nicht klar genug rüber?


    Wobei man natürlich auch einen generischen xmltt Grabber schreiben könnte (was ja ludi anscheinend hier getan hat), der dafür gedacht ist den xmltv Output xmltv2vdr zur Verfügung zu stellen. Dar braucht halt nen Mappingfile (csv bietet sich an) und die Infos zum Shellaufruf (halt um xmltv vorher zu starten). Dann könnte man xmltv direkt als Grabber nutzen.



    BTW: Ich habe mal gerade deinen Grabber richtig für meine Wünsche eingerichtet, nun stürzt xmltv2vdr ab wenn ich im Setup was ändere was dazu führt das das /var/lib/epg... File neu geschrieben werden soll.
    Der User VDR kann das File schreiben (als VDR eingeloggt und mit vi getestet), das VDR Log sagt nix dazu. Hat evtl. was damit zu tun das ich vorher bei gestoppten VDR alles mit xmltv2vdr aus der setup.conf rausgelöscht habe (um alte Testmappings loszuwerden)? (habe mir gestern die aktuelle GIT Version gezogen)


    cu