[ANNOUNCE] xmltv2vdr 0.1.0

  • Hallo,


    hier nun das dritte 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 epgdata2vdr eine Quelle epgdata2xmltv geschrieben - die im dist-Verzeichnis enthalten ist.


    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.


    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 NEU: mit EpgHandler nun statt nur 1 Tag beliebig viele Tage
    • feingranulierte Auswahlmöglichkeit welche Daten aus der Source ins EPG sollen (Untertitel, Beschreibung, Ort, Jahr, Mitwirkende, Freigabe, Kritik, ...) NEU: nun mit Video,Audio,StarRating-Tags
    • liest jede standardkonforme xmltv-Datei
    • Ausführungszeit einstellbar (bei Start, zu gewisser Zeit mit und ohne Aufwachen oder über svdrp) NEU: nun für jede Quelle einzeln
    • Unterstützung von eplists, damit werden die Einträge Staffel und Episode hinzugefügt, falls Kurztext und Liste vorhanden. Mit epgsearch lassen sich dann bestimmte Staffeln aufnehmen (siehe auch diesen Beitrag)
    • NEU: Quellen können nun sortiert werden und ein- und ausgeschaltet (mit 0 auf der jeweiligen Quelle)
    • NEU: Unterstützung von EpgHandler ab vdr1.7.26 oder mit beiliegendem Patch auch für vdr1.6.0-3


    offene TODOs:

    • Mapping von Kategorien auf Contentdescriptoren (vdr >1.7)
    • Unterstützung des ParentalRating Felds (vdr >1.7)


    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


    Achtung: xmltv2vdr benötigt ab jetzt sqlite und libpcre - Dies wurde nötig wegen des EpgHandlers, der asynchron zu jeder Zeit Daten abfragen kann. Diese Daten müssen aber irgendwo zwischengespeichert werden - deshalb sqlite. Vor allem, da es schon sehr zeitintensiv war den Ablauf von "Quelle aufrufen -> Events mischen" zu ändern in "Quelle aufrufen -> in Zwischenspeicher ablegen -> aus Zwischenspeicher lesen -> Events mischen". Grundsätzlich hat dies (aber nur mit EpgHandler) den Vorteil das ein Kanal-EPG komplett gelöscht werden kann und wenn es wieder vom VDR gefüllt wird ist es automatisch wieder gemischt. Zudem kann Teil 2, also "aus Zwischenspeicher lesen -> Events mischen" so oft ausgeführt werden wie man will ohne dabei die Quelle ständig zu "belästigen" ;)


    Gruß


    Joe_D

  • Moin!


    Joe_D
    Cool, muss ich jetzt endlich mal ausprobieren. Jetzt ist es so, wie ich es mir vorstelle... :)


    Da es weder hier in Announcement noch im Wiki erwähnt wird: Funktioniert xmltv2vdr nun wieder ohne SQLite?


    Nee jetzt, wirklich? Die Argumente im anderen Thread hast du überhaupt nicht verstanden, oder?


    Lars.

  • Hmm der epgdata grabber scheint mir noch sehr vereinfacht :(


    - hat jemand eine richtige/vollständige map ?
    - ist das wirklich alles an xslt ? da scheint mir doch noch was zu fehlen (parental rating, rating, Bilder, Videoformat, Tonformat, Category ? ) - muss es mir mal in Ruhe zu Hause anschauen.
    - der Download prüft AFAICS nicht ab ob die Daten die man runterladen kann neuer sind als das was man schon hat.


    Vielleicht hat da ja schon jemand was gemacht und ist da weiter als das git ?

  • Hmm der epgdata grabber scheint mir noch sehr vereinfacht

    Na irgendwas müssen ja auch noch andere machen ;) 
    Den epgdata2xmltv-Grabber habe ich nur geschrieben weil so ein paar Miesepeter meinten das Plugin wäre ohne beigepackten Grabber total wertlos :rolleyes: Ich selbst habe gar kein epgdata2xmltv-Abo, deshalb ist das Parsing auch noch sehr rudimentär. Du hast aber in Deinem epgdata2vdr-Plugin einige interessante Mappings drin (z.B. Kategorien auf interne Contentdescriptoren). Aber Contentdescriptoren werden vom xmltv2vdr-Plugin noch nicht unterstützt. Desweiteren werden Bilder nicht behandelt (weder vom Grabber noch vom Plugin) - aus einem ganz einfachen Grund: Ich verwende einen VDR mit STTNG-Skin das zeigt nirgends Bilder an. Irgendwo hört bei mir aber die verfügbare Zeit auf und vieles was jetzt schon im Plugin drin ist ist reiner Altruismus. An meinem VDR lasse ich bei ca. 10 Kanälen gerade mal den Serientitel einfügen, dazu die Season und Episode. Das wars auch schon wieder.


    Gruß
     
    Joe_D

  • Jop passt schon - ich dachte nur vielleicht hat ja jemand mit Abo schon was dran gemacht und nur noch nicht veröffentlicht.


    Ich bin ganz ehrlich - ich wollte jetzt so langsam auf dein Plugin um in Zukunft weniger Arbeit zu haben und natürlich vom neuen EPG Handler zu profitieren.


    Das Mapping auf die internen Contentdeskriptoren habe ich eingebaut nachdem winni das im epgsearch eingebaut hatte. Im Text steht es auch nochmal, da es nicht verlustfrei zu übersetzen war.
    Vielleicht mach ich einfach nochmal einen seperated Thread auf wegen des epgdata grabbers. Die Motivation geht da bei mir grade gen 0 (da der Dienst mal wieder nicht geht) Ansonsten will
    ich zukünftig eigentlich eben nicht den Grabber pflegen, oder zumindest nicht alleine.


    Alles an Logik ist in meinem Addon schon vorhanden, wenn auch vielleicht nicht in der schönsten vorstellbaren Form (Downloadlogik im bashscript, Übersetzung in ins VDR Format in C).


    Die Bilder nutze ich halt gern, da sie das Live Plugin aufwerten, das Skin die ich verwende, zeigen sie auch in der Info an.


    Bezgl deines Plugins wäre es sicher noch nett, wenn man noch eine standardisierte Schnittstelle anstelle der EP-Lists hätte, dann könnte man für Beschreibungen und weiteren zusätzlichen Content
    auch anderen Seiten ala thetvdb anzapfen. Ist jetzt aber nur eine Idee - ich weiss nicht ob das wirklich dann jemand so nutzt.

  • ich hab das mal für ubunutu precise verpackt:
    https://launchpad.net/~yavdr/+…stable-vdr/+build/3383710
    epgdata grabber ist auch dabei :


    vdr-plugin-xmltv2vdr_0.1.0-0yavdr0~precise_amd64.deb
    vdr-plugin-xmltv2vdr-grabber-epgdata2xmltv_0.1.0-0yavdr0~precise_amd64.deb


    wer kein precise hat :
    dget -xu https://launchpad.net/~yavdr/+…1.0-0yavdr0%7Eprecise.dsc


    und selber bauen :)


    ich würde das gerne selber mal testen mit dem bösen tvm, ich geb aber zu mir fehlen die netten bilder (epgimages) :whatever

  • So, da mich das Plugin mit der "epghandler" Schnittstelle sehr interessiert hat, habe ich es mal ausprobiert.


    Der ersten Versuche mit 0.1.0 waren vorsichtig formuliert verheerend, mein Test-VDR war quasi nimmer brauchbar damit. Aber nach ein wenig Erfahrungsaustausch mit Joe_D und eine wenig Nacharbeit durch ihn, gefällt mir sehr was ich inzwischen sehe.


    Daten kommen böse, böse von t*m, das konnte ich gut mit entsprechendem Plugin letzter Stand 0.6.0 vergleichen, Z.B. keine doppelten Einträge mehr beim Mischen des EPG, man kann Auswählen welche Infos kommen sollen, sehr schön.


    Offen gestanden weiß ich nicht ob das alles im GIT gelandet ist, ich denke schon, aber für den Fall das nicht, haben wir die Version:

    • vdr-plugin-xmltv2vdr - 0.1.0.git20120412-0yavdr0~..."

    in die aktiven unstable-/testing-vdr Repositories für Precise, Natty, Lucid gepackt.


    Ich selbst habe das Plugin mit Lucid und Precise am laufen und bin sehr angetan. Die DB kann jetzt auch auf HDD liegen und man merkt ausser etwas Disk-Aktivität nix negatives.


    Regards
    fnu

    HowTo: APT pinning

  • Hallo fnu,


    Abgesehen davon dass sich die Version mit 0.1.1pre (ArchVDR) meldet und nicht mit 0.1.0. Wozu lässt Du ein Verzeichnis /var/lib/epgsources/epgdata2xmltv anlegen? Bisher dachte ich die Steuerdateien werden alle unter /var/lib/epgsources/ mit dem jeweiligen Grabbernamen abgelegt.


    MfG
    wino

    MSI H55M-E33 |Intel Core i3 530| 4 GB RAM | TT DVB-S2 6400 | Ubuntu 12.04 | Kernel-3.5.0-28 | VDR-2.2.0 | v4l-dvb| eigene Distri.
    ProLaint: Ubuntu Server 12.04.5 auf HP ProLiant ML330 G6, Xeon E5506 2.13-GHz, 16GB ECC DDR3, Digital Devices MaxS8, Samsung 840 EVO 120GB, 4x WD Red WD30EFRX 3TB in HP P410 Raid6, Zotac GT730 1GB

  • Es ist jetzt etwas besser, dafür stürzt der VDR jetzt unregelmäßig ab.


    Hatte ich auch zwischendrin auch, aber nur mit Precise (Linux 3.2.0). Sehr ärgerlich dabei, der VDR stürzte so ab, das er die DVB Devices nimmer freigeben konnte ... und natürlich ohne brauchbare Meldung im syslog ... ?(


    Bau mal die epg.data (pure DVB EPG) und dann die epg.db komplett neu auf.


    Regards
    fnu

    HowTo: APT pinning

    Dieser Beitrag wurde bereits 3 Mal editiert, zuletzt von fnu ()

  • Im GIT gibt es jetzt eine fehlerbereinigte/verbesserte Version. Der EpgHandler läuft nun auch wie das initiale Auslesen in Transaktionen die das Einlesen und Ändern der Datenbank erheblich beschleunigt haben. Ich werde fürs Housekeeping noch einen eigenen Thread erstellen, hier könnte es sein das das VACCUM-Kommando den VDR zu lange anhält.


    Gruß


    Joe_D

  • Jetzt ist es gut, ich kann keine Verzögerung mehr feststellen.


    Dafür habe ich jetzt ein Problem mit dem Zeichensatz. Ich übernehme die Description bei Prosieben HD und füge nur die Shorttexts hinzu.


    In der Sender-Description verhaut mit xmltv2vdr dann alle Umlaute. VDR läuft mit ISO.

  • Ich hab die neue Version jetzt auch endlich mal ausprobiert.
    Nur so richtig sauber läuft die nicht...
    Er baut nach dem Einstellen der Option die epg.db auf und der vdr läuft dann auch sauber.


    Allerdings funktioniert ein Neustart nicht mehr. Der Vdr startet, lädt seine Plugins und dann probiert wohl das plugin auf die db zuzugreifen. Anschliesend kommt ein Crash.
    Und das ist dann eine schöne endlos Schleife bis ich die epg.db wieder lösche ;)
    Hat das Problem sonst nicht jemand?


    I

    Code
    1. Apr 15 19:58:05 darkage kernel: [ 5602.892836] section handler[19968]: segfault at 0 ip 00007f64edc680d1 sp 00007f64db7fc3c8 error 4 in libc-2.13.so[7f64edbe5000+18a000]
    2. Apr 15 19:58:06 darkage init: vdr main process (19715) killed by SEGV signal
    3. Apr 15 19:58:06 darkage vdr-crash: vdr exit with signal SEGV . Restarting


    Die Eingesetzte Version:

    Code
    1. apt-cache policy vdr-plugin-xmltv2vdr
    2. vdr-plugin-xmltv2vdr:
    3. Installiert: 0.1.1pre.git20120415-0yavdr0~natty
    4. Kandidat: 0.1.1pre.git20120415-0yavdr0~natty
    5. Versionstabelle:
    6. *** 0.1.1pre.git20120415-0yavdr0~natty 0
    7. 500 http://ppa.launchpad.net/yavdr/testing-vdr/ubuntu/ natty/main amd64 Packages
    8. 100 /var/lib/dpkg/status
    9. 0.0.2~pre.git20111214-0yavdr3~natty 0
    10. 500 http://ppa.launchpad.net/yavdr/stable-vdr/ubuntu/ natty/main amd64 Packages


    @yavdr team
    Wie wäre es wenn ihr die epg.db default mässig auch nach /var/cache/vdr schreiben lässt damit es am gleichen Ort ist wie die epg.data?