[ANNOUNCE] xmltv2vdr 0.0.1

  • Hallo,


    hier nun das erste Release von xmltv2vdr. Das xmltv2vdr Plugin importiert EPG-Daten im xmltv-Format in den VDR. Die EPG-Daten müssen von externen Programmen im xmltv-Format bereitgestellt werden.


    Die externen Programme sind nicht Bestandteil des Plugins, ich selbst habe aus dem Plugin tvm2vdr eine Quelle tvm2xmltv geschrieben.


    Warum xmltv2vdr?


    Da rumwursteln mit EPG-Quellen beim VDR scheinbar zum Standard gehört und jeder, der eine neue Quelle verwenden will gleich ein nur exakt für diese Quelle zugeschnittenes Plugin benötigt (siehe auch http://vdr-wiki.de/wiki/index.…s_f.C3.BCr_den_EPG_import) habe ich mir überlegt wie man diesen Wildwuchs beenden könnte und heraus gekommen ist xmltv2vdr. Ganz geil finde ich auch diese abstrusen Listen wie bei tvmovie2vdr die man erstmal ausserhalb des OSD einstellen muss (siehe http://vdr-wiki.de/wiki/index.…annels.7B.2C_wanted.7D.pl) in der die Zuweisung der Quellen-Kanal-ID zur VDR Kanal ID drin steht. Gibt es auch beim tvm2vdr-Plugin (siehe http://vdr-wiki.de/wiki/index.…n#IDs_f.C3.BCr_Channelmap)


    Bei xmltv2vdr gibt es nur noch einheitliche Kanalnamen (http://vdr-wiki.de/wiki/index.…ltv2vdr-plugin#Kanalliste). Die Liste kann jederzeit erweitert werden. Egal von welcher Quelle der Kanal sat1.de kommt, er wird immer Daten für Sat1 enthalten (sofern der Quellenauthor sich daran hält)


    Vorteile von xmltv2vdr:

    • einheitliche Kanalliste, für alle Sourcen gleich, kein externes Zuweisungsgebastel
    • Zuweisung der xmltv2vdr Kanäle zu den eigenen VDR-Kanälen komplett innerhalb des OSD
    • ein Sourcenkanal kann zu mehreren VDR-Kanälen gemappt werden (z.B. auf Sat1 und Sat1HD)
    • mischen des Sender EPGs mit dem aus der Source möglich
    • feingranulierte Auswahlmöglichkeit welche Daten aus der Source ins EPG sollen (Untertitel, Beschreibung, Ort, Jahr, Mitwirkende, Freigabe, Kritik, ...)
    • liest jede standardkonforme xmltv-Datei
    • Ausführungszeit einstellbar (bei Start, zu gewisser Zeit mit und ohne Aufwachen oder über svdrp)


    Wie funktionierts?


    xmltv2vdr liest in /var/lib/epgsources Steuerdateien der einzelnen Sourcen und ruft je nach Konfiguration die Source auf oder erwartet in /var/lib/epgsources eine xmltv-Datei die verarbeitet wird.


    Weitere Infos im Wiki: http://vdr-wiki.de/wiki/index.php/Xmltv2vdr-plugin


    aktuelle Version: http://projects.vdr-developer.…jects/plg-xmltv2vdr/files


    Git: http://projects.vdr-developer.…n-xmltv2vdr.git;a=summary


    Bugreports: http://projects.vdr-developer.…ects/plg-xmltv2vdr/issues


    Gruß


    Joe_D

  • Moin Joe_D,


    das Ganze klingt ja gar nicht mal so schlecht! Vorausgesetzt, die Probleme die ich / wir beim Import der Daten von epgdata.com haben (bzw. hatten - zur Zeit ist es bei mir recht problemfrei) sind hiermit nicht mehr vorhanden...


    Ein paar Fragen:

    • Was ist mit EPG-Bildern? Werden die weiterhin verfügbar gemacht?
    • Was ist mit "doppelten Einträgen"? Ursprünglich hatte ich das Problem, dass ein mehrfacher Import der selben Sendung/Daten dazu geführt hat, dass die Sendung doppelt mit einem 5 Minuten Versatz im EPG angezeigt wurde - dies führte dann zu Problemen mit epgsearch und den Suchtimern...
    • Wie gut funktioniert xmltv2vdr mit epgdata.com? (Auch wenn dieser Import nicht von diesem Plugin erledigt wird - hast Du da "fertige Scripte" oder muss da jeder selber Hand anlegen?)
    • Wie gut kommt das Plugin mit unter Umständen nicht ganz fehlerfreien xml-Dateien klar? Dabei denke ich wieder an epgdata.com...


    Gruss,
    Mario

    - VDR-Server: yavdr 0.5 * DELL PowerEdge T20 Server PC Xeon E3-1225v3 8GB RAM * DigitalDevices Cine S2 Rev. 5.5 + V6.5
    - VDR-Reserve: yavdr 0.5 * GA-MA785GMT-UD2H mit AMD AD235EHDGQ * 2GB (KVR1333D3N9K2) * DigitalDevices Cine S2 Rev. 5.5 & DuoFlex S2 Erweiterung
    - VDR-Wohnzimmer: yavdr 0.5 * Xtreamer Ultra 2 Deluxe * 4GB Ram * 32GB SSD * GeForce 520M

  • Oswald-Kolle


    Quote

    Was ist mit EPG-Bildern? Werden die weiterhin verfügbar gemacht?

    xmltv2vdr importiert "nur" Daten in die epg.data, dort gibt es keine Bilder. Bilder müssen demnach vom Skript verwaltet werden.


    Quote

    Was ist mit "doppelten Einträgen"

    Doppelte Einträge kann es eigentlich nicht geben. Das xmltv-Format erlaubt keine doppelten Einträge ohne die Validität zu brechen. Mehrfacher Import führt (wenn ich das alles so programmiert habe wie ichs mir gedacht habe) nicht zu mehrfachen Sendungen.


    Quote

    Wie gut funktioniert xmltv2vdr mit epgdata.com?

    Keine Ahnung, da ich keinen Account für epgdata.com besitze und bislang nur mit tvm experimentiert habe... Wenn es ähnlich wie mit tvm2vdr läuft, kann ich natürlich anbieten dafür mein tvm2xmltv umzubasteln. Dann bräuchte ich aber xml-Dateien von epgdata.com.


    Quote

    Wie gut kommt das Plugin mit unter Umständen nicht ganz fehlerfreien xml-Dateien klar? Dabei denke ich wieder an epgdata.com

    Naja, wenn epgdata.com kein richtiges xml sendet wird daraus ja auch kein richtiges xmltv-Format. Was dazu führt, das dann eben nichts eingelesen wird. Ist aber nicht so schlimm, denn man kann das EPG ja mit dem Sender-EPG mischen, d.h. das Sender-EPG bleibt vorhanden und es entgehen einem keine Sendungen. Was auch noch möglich ist, ist die Verwendung von mehreren Quellen. Wenn eine Quelle dann eine Sendung nich mit Informationen auffüllt, macht es vielleicht die nächste...


    Gruß


    Joe_D

  • Ist hier auch die Problematik mit doppelten Einträgen bei leicht unterschiedlichen Sendezeiten gelöst?
    Das letzte mal als ich TVM Daten in vdr importiert hatte, gab es dann (hauptsächlich bei Pro7) doppelte Sendungen z.B. einmal vom "regulären" EPG um 20:14 und vom Import dann um 20:15 was dazu geführt hat, das auto-timer doppelt angesprungen sind...

  • Quote

    Originally posted by C-3PO
    Könnte bitte Jemand den Punkt "Aufbau der Steuerdatei" im Wiki näher erklären?
    Ich habe die Syntax, vorallem von "pipe" und "file", noch nicht begriffen. :schiel


    Mir geht es ähnlich: ich habe den Zusammenhang von der xmltv Datei bis zum EPG des VDR auch noch nicht richtig verstanden:


    Nehmen wir an, ich habe eine xmltv Datei mit den Sendungen für Rai, Rai2 und Rai3. (Das sind die italienischen öffentlich rechtlichen Fernsehsender.)


    Die id der Sender in der xmltv Datei geben keinen Rückschluss auf den Sender; aber es gibt ja auch noch den <display_name> Tag.


    Wie kann ich die id aus der xmltv Datei den Sendern auf dem VDR zuordnen? Dabei kommt noch, dass in der channels.conf die Rai Sender mehrfach vertreten sind: zum Beispiel eine Version vom Satelliten Astra und eine zweite vom Satelliten Hotbird...


    Vielen Dank im Voraus für jegliche Hilfe.


    MfG

  • Quote

    Originally posted by ludi
    Die id der Sender in der xmltv Datei geben keinen Rückschluss auf den Sender


    Wo kommt diese Datei her?


    Korrekt wäre es einen Grabber dafür zu schreiben der ein korrektes XMLTV daraus herstellt. Der ID des Sender ist dann die "genormte" Bezeichnung für diesen Sender. Diese Bezeichnung verwendet dann auch das Plugin, in diesem musst du dann einmalig diese Bezeichnung einem Sender in deiner Senderliste zuordnen.


    Quote

    Originally posted by ludi
    Wie kann ich die id aus der xmltv Datei den Sendern auf dem VDR zuordnen?


    Das machst du dann im Setup des Plugin.



    Das Pluginkonzept basiert darauf das es für jedes Datenquelle einen Grabber (also ein Datenquellenplugin für das Plugin) gibt.
    Im einfachsten Fall ist das ein kleines Shellscript was einfach einen XSLT Transform durchführt.


    Also die Benutzung ist dann für Enduser, die Erstellung des Grabbers (das was du jetzt willst) ist nur was für Developer.


    D.h. du wartest darauf das jemand nen Grabber für DIESE Datenquelle schreibt, oder du machst das selbst.
    Zum selbermachen schaue mal hier http://de.wikipedia.org/wiki/XSL_Transformation


    cu

  • Hallo,


    Erstmals vielen Dank für deine Antwort, die mich etwas weitergebracht.


    Quote

    Originally posted by Keine_Ahnung


    Wo kommt diese Datei her?


    Ich habe ein wenig mit den tv_grab_XX herumexperimentiert, die im xmltv Packet von Ubuntu sind.


    Quote


    Korrekt wäre es einen Grabber dafür zu schreiben der ein korrektes XMLTV daraus herstellt. Der ID des Sender ist dann die "genormte" Bezeichnung für diesen Sender. Diese Bezeichnung verwendet dann auch das Plugin, in diesem musst du dann einmalig diese Bezeichnung einem Sender in deiner Senderliste zuordnen.


    Also gibt es zwei Zuordnungen:
    1) Eine Zuordnung von den genormten Sendern zur channels.conf, die vom Benutzer gemacht werden muss. Leider kann ich es im OSD des Plugins nicht finden. (Ich benutze das xmltv2vdr Packet aus dem VDR PPA.)
    2) Eine Zuordnung von den genormten Sendern zu den ids in der xmltv Datei; diese wird vom Entwickler gemacht und befindet sich in der Kontrolldatei.
    Habe ich es richtig verstanden?


    Woher weiß ich, dass die Sender die mich interessieren schon in der Liste der genormten Sender vorhanden sind? Falls diese Sender noch nicht darin vorkommen, was mich ich tun damit sie hinzugefügt werden? (Ich gehe davon aus dass die Entwickler des xmltv2vdr es machen müssen.)


    Könnte ich zum Beispiel einige Sender hier hinzufügen?


    Könntest du mir bitte auch noch mitteilen, was das "automatic wakeup" und "text mapping" im den Optionen sind?


    MfG

  • Quote

    Originally posted by ludi
    Ich habe ein wenig mit den tv_grab_XX herumexperimentiert, die im xmltv Packet von Ubuntu sind.


    Das ist doch schon mal gut, die schreiben ja schon mal anständige XMLTV XML Dateien ;)


    Quote

    Originally posted by ludi
    1) Eine Zuordnung von den genormten Sendern zur channels.conf, die vom Benutzer gemacht werden muss. Leider kann ich es im OSD des Plugins nicht finden. (Ich benutze das xmltv2vdr Packet aus dem VDR PPA.)


    Erstmal brauchst du die passende Steuerungsdatei, dann kennt das Plugin deinen grabber und welche Kanäle er zur verfügung stellt. Und dann siehst du die Einträge im Plugin auch.


    Zu diesem Plugin gibts nen weiteren Thread (zur Planung des Plugins), da steht alles ausführlich drin. Such den mal, der hilft ungemein.


    Quote

    Originally posted by ludi
    2) Eine Zuordnung von den genormten Sendern zu den ids in der xmltv Datei; diese wird vom Entwickler gemacht und befindet sich in der Kontrolldatei.


    Jein ;)


    Das Plugin erwartet einfach das das ALLE Grabber für die selben Sender die selben Bezeichnungen verwenden (also z.B. "ARD.de" für "Das Erste", nicht das ein grabber "ARD" verwendet und der andere "Das Erste". Alle grabber nennen den Sender "ARD.de").
    Wie der Grabber das macht (also von der Datenquellen Senderbezeichnung auf die "genormte" Bezeichnung umzusetzen) bleibt dem grabber überlassen.


    Ferner müssen sich alle Grabber Authoren da irgendwie einigen, weil es gibt keine verbindliche Liste. Denn welche "genormten" Bezeichnungen für die Sender letztendlich verwendet werden ist egal, es ist nur wichtig das alle Grabber für die selben Sender identische Bezeichnungen verwenden (weil man kann ja auch mehere grabber gleichzeitig nutzen, und dann gibts Probleme wenn sie da unterschiedliche Bezeichnungen für die selben sSnder nutzen).


    Quote

    Originally posted by ludi
    Woher weiß ich, dass die Sender die mich interessieren schon in der Liste der genormten Sender vorhanden sind? Falls diese Sender noch nicht darin vorkommen, was mich ich tun damit sie hinzugefügt werden? (Ich gehe davon aus dass die Entwickler des xmltv2vdr es machen müssen.)


    Das ist ne rein fiktive Liste ;)


    Ich war der Meinung man sollte irgendwo ne verbindliche Liste hinlegen. Aber die Idee fand keinen Zuspruch ;) Also denkt sich jetzt jeder selber was aus und man hofft das sich das irgendwie von selber koordiniert.


    Quote

    Originally posted by ludi
    Könnte ich zum Beispiel einige Sender hier hinzufügen?


    Tja, wenn das jetzt die verbindliche Leiste werden soll.... Dann immer rein damit.


    Quote

    Originally posted by ludi
    Könntest du mir bitte auch noch mitteilen, was das "automatic wakeup" und "text mapping" im den Optionen sind?


    Ich bin da aktuell nicht genug drin um das zu beantworten. Erstmal schließe ich meine VDR Neuiunstallation ab, und dann schreibe ich endlich mal meinen TVMovie Grabber fertig (seit Monaten ohne EPG, das nervt).


    cu

  • ludi


    Quote

    Woher weiß ich, dass die Sender die mich interessieren schon in der Liste der genormten Sender vorhanden sind? Falls diese Sender noch nicht darin vorkommen, was mich ich tun damit sie hinzugefügt werden? (Ich gehe davon aus dass die Entwickler des xmltv2vdr es machen müssen.)


    Könnte ich zum Beispiel einige Sender hier [im Wiki] hinzufügen?

    Ja, gerne! Einfach im angegebenen Format hinzufügen...


    Quote

    Könntest du mir bitte auch noch mitteilen, was das "automatic wakeup" und "text mapping" im den Optionen sind?

    Automatic Wakeup heisst, das der VDR zur eingestellten Zeit aufwachen soll. TextMapping ist eben eine Liste von Bezeichnern für erweiterte EPG-Informationen die man dort benennen kann wie man will (z.B. für die Jahresangabe, entweder Jahr oder Year oder Yr. oder was auch immer).


    Keine_Ahnung

    Quote

    Ich war der Meinung man sollte irgendwo ne verbindliche Liste hinlegen. Aber die Idee fand keinen Zuspruch. Also denkt sich jetzt jeder selber was aus und man hofft das sich das irgendwie von selber koordiniert.


    Wie meinen? Zitat 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: Sender gefolgt von einem Punkt und der Länderkennung, z.B. rtl.de oder orf.at"


    @C-3PO


    Quote

    Könnte bitte Jemand den Punkt "Aufbau der Steuerdatei" im Wiki näher erklären?
    Ich habe die Syntax, vorallem von "pipe" und "file", noch nicht begriffen.

    File bedeutet das von der Source eine xmltv-Datei in /var/lib/epgsources abgelegt werden muss, Pipe bedeutet das das Plugin das Source-Skript/Programm selbst aufruft und die xmltv-Datei per Pipe einliest.


    Gruß


    Joe_D

  • Quote

    Original von Joe_D
    [...] Zitat 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: Sender gefolgt von einem Punkt und der Länderkennung, z.B. rtl.de oder orf.at" ...


    Ist der "Punkt" unbedingt erforderlich? Ich habe hier ein Script, das sie Sendernamen so parsed:


  • @C-3PO


    Quote

    Ist der "Punkt" unbedingt erforderlich?

    Für eine Austauschbarkeit der Skripte untereinander ist es absolut erfolderlich sich an die verbindliche Kanalliste zu halten!


    Quote

    Ich habe hier ein Script, das sie Sendernamen so parsed

    Solche Kanalnamen führen nur zu Wildwuchs und ständiger Bastelarbeit.


    Bedenke: Wenn nun jemand anderes ein Srkipt für puls4.at (bei Dir PULS_4) schreibt und dann Deines verwenden möchte fällt er auf die Schnauze.


    Deshalb habe ich ja eine verbindliche Kanalliste eingeführt! Um die Austauschbarkeit unter den Skripten zu gewährleisten...


    Gruß


    Joe_D

  • OK, das ist natürlich schade, denn ann kann ich xmltv2vdr leider nicht verwenden, da meine EPG-Quelle leider keine Auskunft über die Herkunft der Sender liefert. :(


    Werde halt dann dann bei meiner bisherigen externen EPG Methode bleiben. ;)

  • @C-3PO


    Quote

    da meine EPG-Quelle leider keine Auskunft über die Herkunft der Sender liefert

    Und wie kommt das Zeug dann in den VDR?


    Wenn Du im Stande bist ein Skript zu schreiben, dann könntest Du z.B. eine Umsetzung von PULS_4 nach puls4.at machen und "fertig" wäre das xmltv2vdr-fähige Skript.


    Quote

    Werde halt dann dann bei meiner bisherigen externen EPG Methode bleiben.

    Kein Problem. Muss ja keiner verwenden und die Hauptsache ist ja, das es mindestens meinen Ansprüchen genügt ;)


    Gruß


    Joe_D

  • Quote

    Original von Joe_D
    [...] Wenn Du im Stande bist ein Skript zu schreiben, dann könntest Du z.B. eine Umsetzung von PULS_4 nach puls4.at machen und "fertig" wäre das xmltv2vdr-fähige Skript...



    Das Problem ist nicht "PULS_4 nach puls4" sondern "PULS_4 nach puls4.at", da, wie schon bereits gesagt, die Quelle keine Senderkunft liefert. Ich könnte höchstens mein Script so anpassen, dass immer ".tv" liefert, - aber das ist ja wohl auch nicht der Sinn und Zweck der Übung, oder. ;)


    Quasi so:


    Code
    1. nrw.tv.tv
    2. sky_port_hd_2.tv
    3. puls_4.tv
    4. ard.tv
    5. zdf.tv
    6. ......


    oder von mir aus auch ohne "_":


    Code
    1. nrw.tv.tv
    2. skyporthd2.tv
    3. puls4.tv
    4. ard.tv
    5. zdf.tv
    6. ......
  • @C-3PO


    Quote

    Das Problem ist nicht "PULS_4 nach puls4" sondern "PULS_4 nach puls4.at", da, wie schon bereits gesagt, die Quelle keine Senderkunft liefert

    Man weiss es doch bei den meisten Sendern selbst? Oder eben bei Wikipedia schauen (http://de.wikipedia.org/wiki/Puls4, http://de.wikipedia.org/wiki/NRW.TV oder http://de.wikipedia.org/wiki/L…Sky-Deutschland-Plattform)


    Oder meinst Du es gäbe ein puls4.at und ein puls4.de?


    Also anstatt

    Code
    1. nrw.tv.tv
    2. skyporthd2.tv
    3. puls4.tv
    4. ard.tv
    5. zdf.tv
    6. ......

    besser und vollständig xmltv2vdr kompatibel:

    Code
    1. nrwtv.de
    2. skysporthd2.de
    3. puls4.at
    4. ard.de
    5. zdf.de
    6. .....

    Gruß

    Joe_D

  • Quote

    Originally posted by Joe_D
    Keine_Ahnung


    Wie meinen?


    Ich meinte damit das das nicht verbindlich genug ist.


    Wobei ich gerade gesehen habe das das wiki da jetzt strenger ist. Ich hatte noch den alten Stand im Kopf. Also ziehe ich hiermit meinen Einwand zurück.


    BTW: Evtl. wäre es schön die Liste auf ne extra Seite auszulagern? Weil die wird dann noch ziemlich lang werden.


    cu

  • Quote

    Original von Joe_D
    Oder meinst Du es gäbe ein puls4.at und ein puls4.de? ....


    Sicherlich nicht. Aber esgibt z.B. servusTV in A und in D und die Adresse ist www.servustv.com. Bei Sky ist es noch extremer, da sind alle unter www.sky.de.


    In deinem Beispiel hast Du "Sky Sport HD2" als "skysporthd2.de" benannt.
    Das ist ja soweit schon OK, aber ich denke malk, dass an geeignerter Stelle (z.B im Wiki) eine Liste gepostet werden sollte, wie denn die einzelnen Sender nun "xmltv2vdr konform" heisen sollen.


    Mein externes EPG bringt für ca. 190 Sender EPG, für diese könnte ich ja mal, falls gewünscht, eine Liste erstellen?

  • Wie wäre es, neue Namen per shell script aus der channels.conf zu generieren. Damit wäre der neue Name eindeutig und die Liste unnötig.