EPG zu deutschen Sendern in tvtime einblenden

Avatar von Christoph Langner

3 Min. Lesezeit

9 Aufrufe

Bei mir ist die Zeit noch etwas stehen geblieben. Fernsehen kommt noch aus der Wand und ist analog 😉 Daher muss ich auf schicke Dinge wie beispielsweise den elektronischen Programmführer via DVB, kurz EPG, verzichten. Dennoch gibt es Wege und Mittel das gute analoge Fernsehen noch etwas komfortabler zu gestalten. tvtime kann EPG-Daten in das Bild…

tvtime mit EPG Daten

Bei mir ist die Zeit noch etwas stehen geblieben. Fernsehen kommt noch aus der Wand und ist analog 😉 Daher muss ich auf schicke Dinge wie beispielsweise den elektronischen Programmführer via DVB, kurz EPG, verzichten. Dennoch gibt es Wege und Mittel das gute analoge Fernsehen noch etwas komfortabler zu gestalten. tvtime kann EPG-Daten in das Bild einblenden, doch leider gibt es kaum kostenlose legale Quellen. TV-Sender betrachten ihre Programminfos als wertvolles Gut und lassen Seiten, die von ihren Webseiten zusammengesammelte Programminfos automatisch aufbereiten, schnell aus dem Web verbannen.

Einen legalen und kostenlosen Weg geht xmltv.info. Hier werden die Informationen laut Homepage aus dem Videotext geholt und dann als EPG aufbereitet. Um rechtlichen Problemen aus dem Weg zu gehen, werden jedoch nur die Namen und Zeiten der einzelnen Sendungen genutzt und keine Beschreibungen der Programme.

Um xmltv.info nun mit einem Linux-System benutzen zu können gibt es ein Skript, das man erst herunterladen und entpacken muss. Zuvor muss man jedoch noch die Basis xmltv des Ganzen aus der Paketverwaltung heraus installieren.

$ sudo apt-get install xmltv-util

Anschließend kann man das Skript herunterladen und installieren.

$ wget -O /tmp/grabber-py.tar http://static.xmltv.info/grabber-py.tar
$ cd /tmp
$ tar -xf grabber-py.tar
$ sudo mv tv_grab_de-py /usr/local/bin

Nun kann man sich daran machen tv_grab_de-py zu konfigurieren. Über

$ tv_grab_de-py --configure

stellt man ein welche Senderinformationen abgerufen werden sollen. Die Konfiguration wird dann in der Datei ~/.xmltv/tv_grab_de-py.conf abgelegt. Ab jetzt kann man die Programminfos abrufen. Der Befehl

$ tv_grab_de-py > ~/.xmltv/listings.xml

startet bspw. den Abruf und speichert die Programminformationen in der Datei ~/.xmltv/listings.xml. Damit tvtime nun die Informationen einbindet muss man einmalig…

$ tvtime-configure --xmltv=~/.xmltv/listings.xml

…ausführen. Von jetzt an lädt tvtime die Infos aus der listings.xml und zeigt sie auch automatisch beim Programmwechsel oder beim Klick mit der linken Maustaste in das Fernsehbild an. Damit die Programminformationen automatisch aktualisiert werden, muss man noch einen Job für anacron erstellen. Dies geht am einfachsten mit einem Editor. Über bspw…

$ sudo gedit /etc/cron.daily/tv_grab

…legt man die Datei /etc/cron.daily/tv_grab an und fügt den Inhalt

#!/bin/sh
tv_grab_de-py --config-file=/home/<benutzername>/.xmltv/tv_grab_de-py.conf > /home/<benutzername>/.xmltv/listings.xml

ein. Dabei ersetzt man <benutzername> bitte mit dem eigenen Benutzernamen. Dies ist nötig, weil Anacron mit Root-Rechten ausgeführt wird. Ohne die Angabe der Pfade würde Anacron die Daten nach /root ablegen. Nun fehlt nur noch das Recht das kleine Skript auszuführen, das man via

$ sudo chmod +x /etc/cron.daily/tv_grab

setzt. Von nun an sieht man was man sieht 🙂 Noch ein Hinweis: Die in tvtime eingetragenen Sendernamen müssen zu den durch xmltv gelieferten Namen passen. Sonst werden die Programminfos nicht angzeigt. Wahrscheinlich muss man daher die ~/.tvtime/stationlist.xml noch von Hand anpassen.

Ähnliche Beiträge

37 Kommentare zu „EPG zu deutschen Sendern in tvtime einblenden“

  1. Avatar von Wolfgang
    Wolfgang

    Hey! Vielen Dank für den Tipp. Das kannte ich ja gar nicht. Hatte mich mal mit nextvpg (oder wie auch immer das heisst) rumgeschlagen, konnte es aber nie wirklich zum laufen bekommen.

  2. Avatar von Christoph

    Kleiner Tip zum cronjob: Erst in eine temporäre Datei schreiben und nach erfolgreichem Grabben nach listings.xml verschieben. Das Grabben dauert oft sehr lange und wenn du während dessen Deinen Rechner runterfährst, hast Du beim nächsten Mal eine nicht zu kaputte xml-Datei.

  3. Avatar von Christoph

    Bei mir dauert das Laden der .xml Datei weniger als 15 Sekunden. Liegt wahrscheinlich daran, dass ja nur Titel und Zeiten heruntergeladen werden. Die .xml Datei ist auch nur ein paar kb groß. Von daher lohnt sich der Aufwand eigentlich nicht.

  4. Avatar von Johannes
    Johannes

    Super, danke für die Anleitung.

  5. Avatar von Julius

    ich erinner mich noch schwach das zeug mal mit nxtvepg aus der austastlücke gezogen zu haben. ärgerlich war dabei aber, dass nur noch kabel1 die daten übertrug. so ists natürlich netter.

  6. Avatar von jug

    Netter Tipp, jetzt müsste ich nur noch herausfinden, warum die Zeiten nicht stimmen. Sämtliche Sendungsdaten sind eine Stunde verschoben. Es scheint fast so, als würde die Sommerzeit nicht berüchsichtigt.

    ~jug

  7. Avatar von Christoph

    @Jug
    Grummel… jetzt merke ich, dass auch ich hier das Problem habe. Schau mal ins Forum von xmltv, da wird darüber diskutiert. Siehe http://forum.xmltv.info/viewtopic.php?f=2&t=10

  8. Avatar von jug

    Mein vorläufiger Würgaround, die Zeitzone mit sed im Cronjob anpassen:

    tvgrabde-py –config-file=/home/ … /.xmltv/tvgrabde-py.conf | sed „s/+0100/+0200/g“ > /home/ … /.xmltv/listings.xml

  9. Avatar von Christoph

    @jug
    Vielen Dank für den Tipp, das behebt das Problem (bis zur nächsten Zeitumstellung 😉 )

  10. Avatar von Nabo

    Kann es sein das xmltv zur zeit nicht geht? bei mir steht bei jedem sender „Keine Programminformation verfügbar“.
    Oder ist das eine Einstellung bei mir?

    Gruß
    nabo

  11. Avatar von Christoph

    Nabo, sieht leider so aus. Wenn man einfach nur


    tvgrabde-py

    aufruft, dann kommen nur die Sendernamen rein, aber keine Sendungen… Ich schau mir das mal die nächsten Tage an…

  12. Avatar von Nabo

    Super danke!
    Dachte schon ich mach was falsch…

    Gruß
    Nabo

  13. Avatar von atalod

    Ein kleiner Hinweis zum Problem mit der Zeitzone:

    Auf http://xmltv.info/xw/default/wiki/Grabber gibt es eine verbesserte Grabber-Version. Sie wurde um die Funktion erweitert einen Offset auf den Start- und Endezeitpunkt jeder Sendung hinzuzuaddieren. Durch die Variable “’HOUR_OFFSET“‘ am Anfang des Grabbers kann eingestellt werden, wie viele Stunden zum Start und Ende hinzugezählt werden sollen.

    Leider gibt es noch keine aktualisierten EPG-Daten auf http://static.xmltv.info/zeitschrift.

    Gruss,
    atalod

  14. Avatar von Nabo

    Gibt es denn, da es ja immer noch nicht funktioniert, eine andere Möglichkeit EPG Daten einzublenden? Außer die hier Beschriebende und mit nxtvepg?

    Gruß
    Nabo

  15. Avatar von atalod

    Hi Nabo,

    tvtime kann die Daten von http://www.tvprog.org/tv.xml lesen und darstellen.

    Konfigurationsbeispiel:

    • tv.xml in /home/{user}/.xmltv kopieren
    • tvtime.xml anpassen:

    option name=“XMLTVFile“ value=“/home/{user}/.xmltv/tv.xml“
    option name=“XMLTVLanguage“ value=“de“

    Gruss,
    atalod

  16. Avatar von Nabo

    leider kann ich die seite nicht aufrufen… „Verbindung fehlgeschlagen“
    Ist das nur temporär?

    Gruß
    nabo

  17. Avatar von Christoph

    Hallo Nabo, anscheinend hatte xmltv.info ein paar Probleme mit der Hardware…


    Wer xmltv.info schon laenger nutzt, wird sich fragen was aus den alten Seiten und vor allem dem Forum geworden ist. Wie schon auf der neuen Homepage erwaehnt habe ich meinen alten Server gekuendigt und nicht rechtzeitig die Forum-DB oder selbst deren Backups auf den neuen Server kopiert. Entschuldigt bitte, denn da waren sehr gute Beitraege dabei.
    Jetzt laeuft alles unter web2py.com einem Python-basierten Framework, das ich auch gerne in meinen anderen Projekten nutze. Ausserdem muss ich jetzt fuer einen Rootserver weniger zahlen.
    Alles sollte funktionieren, wie bisher auch wenn ich es selber leider nicht testen kann, da mein Mythtv in DE ich aber in Suedafrika bin.

    http://forum.xmltv.info/pyforum/default/index

    Der Link oben ins Forum ist leider futsch, der Beitrag gibt es nicht mehr. Schade…

  18. Avatar von Nabo

    Danke! Werde ich mir gleich mal näher angucken.

  19. Avatar von stefan

    Hi,
    also bei mir funktioniert das grabber skript so nicht richtig.
    Die XML von http://www.tvprog.org/tv.xml lässt sich aber genauso gut auch durch das tvgrabde-py Skript laden.
    am besten durch das verbesserte von http://xmltv.info/xw/default/wiki/Grabber
    mit HOUR_OFFSET=-2 für Mitteleuropäische Sommerzeit

    Naja einige Anpassungen des Skripts sind notwendig:
    1. natürlich die url ersetzen Zeile 29

    SOURCES = (
    'http://www.tvprog.org/tv.xml',
    )

    2. da sie nich gezippt ist lassen wir das zippen einfach weg:
    doDownload() brauch nur noch res.read() zurückgeben (Zeile 72).
    3. wenn man jetzt –configure durchführt kommt ein Fehler wegen UTF8 in Zeile 228, die Zeile ersetzen durch:
    use = raw_input('Use channel %s (%s)? [y/N]' % (channel[1].encode( "utf-8" ), channel[0].encode( "utf-8" )))
    4. dann kommen nochmal Fehler wegen einem nicht existenten Attribut group oder so. (im Ernst keine Ahnung warum aber wenn man die Variablen einfach weglöscht macht das nix)

    So das is meine kleine Lösung. Sicher nicht unbedingt ausgefeilt (siehe Punkt 4) aber es funktioniert.
    Ich habe jetzt EPG Informationen mit der richtigen Uhrzeit 🙂

    Vielen Dank für die Anleitung und die Hinweise aus den Kommentaren.

  20. Avatar von nabo

    super gleich mal testen 🙂

    Danke Stefan

  21. Avatar von Nabo

    Ich nochmal…
    Stefan könntest du bitte einen Quelltext irgendwo pasten… die Änderung klappen bei mir nicht ganz…
    Danke.

    Gruß
    Nabo

  22. Avatar von atalod

    Hallo Stefan,

    Danke für Deine Lösung, Klasse! Könntest Du Deine gepatchte Version zur Verfügung stellen (z.B. über http://freetexthost.com/ )? Vielleicht bin ich zu blöd dafür. Hab’s leider nicht hinbekommen, das tvgrabde-py Skript anzupassen.

    Würde mich darüber sehr freuen.
    Klappt es bei Dir, NABO?

    Gruss,
    atalod

  23. Avatar von stefan

    Habe wohl doch noch etwas vergessen.
    Ich vermute mal es liegt an der doDownload Funktion.
    hier nochmal komplett:
    def doDownload(source):
    host = urlparse(source)[1]
    url = urlparse(source)[2]
    log.info(‚Downloading data from %s…‘ % host)
    h = httplib.HTTPConnection(host)
    headers = {
    ‚User-Agent‘: ‚%s %s‘ % (NAME, VERSION),
    ‚Accept-encoding‘: ‚xml‘,
    }
    h.request(‚GET‘, url, headers=headers)
    res = h.getresponse()
    if res.status != 200:
    return False
    log.info(‚Done‘)

    return res.read()

  24. Avatar von stefan

    ok habs da mal hochgeladen.
    (danke für Tipp)
    http://freetexthost.com/j6r0rr3w0e

    was ich vorher noch weggelassen habe:
    das Skript ersetzt bei mir das vom Artikel und ich nutze
    den selben anacron job.
    man muss nochmal
    tvgrabde-py –config
    ausführen
    Die Sendernamen in der XML von tvprog.org sind anders also mussten die ebenfalls angepasst werden.

  25. Avatar von Nabo

    Leider geht es immer noch nicht… er findet immer wieder fehler und wenn ich diesen beheben konnte, kommt ein neuer…
    Auch dein gehostetes geht nicht.
    Dort kommt ein:
    File „/home/nabo/bin/tttttv“, line 42
    try:
    ^
    IndentationError: expected an indented block

    Dann hab ich noch probiert die Änderungen einfach bei mir zu übertragen, dort kommt dann allerdings:

    Traceback (most recent call last):
    File „/home/nabo/bin/ttvgrabde-py“, line 263, in
    doc = ElementTree.parse(StringIO(text)).getroot()
    File „“, line 45, in parse
    File „“, line 32, in parse
    SyntaxError: not well-formed (invalid token): line 1, column 0

    Ich vermute mal deine Version geht nicht, weil nichts eingerückt ist.

    Gruß
    nabo

  26. Avatar von Nabo

    Nachtrag: 🙂
    Paste es vielleicht einfach mal bei paste.ubuntuusers.de
    ich hab mal meins gepastet: http://paste.ubuntuusers.de/396464/

    Gruß
    nabo

  27. Avatar von stefan

    hi,
    das mit dem einrücken habe ich nicht bedacht.
    python eben.
    bin gerade nicht zu hause, werde es heute abend noch mal dort
    posten.
    das einzige was ich bei deiner version als unterschied erkennen kann ist der header beim download:
    zeile 61: aus ‚gzip‘ habe ich in ‚xml‘ geändert.
    das hatte bei mir einen Fehler behoben.
    ich weiss aber wirklich nicht ob es daran liegt.
    kenne mich auch nicht so gut mit python aus.
    cu
    stefan

  28. Avatar von Nabo

    Das hört sich doch super an, bei mir ist nämlich schon wieder ein Fehler -.-

    Traceback (most recent call last):
    File „/home/nabo/bin/ttvgrabde-py“, line 285, in
    time.strptime(start_time, ‚%Y%m%d%H%M%S‘)
    OverflowError: mktime argument out of range

    Aber mal sehen ob deine Version dann funktioniert.

    gruß
    nabo

  29. Avatar von stefan

    http://paste.ubuntuusers.de/396468/

    hier eine nochmals gepatchte version.
    bei mir kam der Fehler nie.
    Grund war die Zeitangabe.
    in der tv.xml ist nicht nur das programm für heute
    es sind so gar einträge für das Jahr 2038 drin ????
    naja eingefügt habe ich einfach eine Abfrage in Zeile 289, die prüft ob die Startzeit im Jahr 2010 liegt. Dann bricht er ab.
    also muss man nächstes Jahr mal ändern.

    komischerweise hat mein Rechner zu Hause das verkraftet, kann das am 64Bit Ubuntu liegen,
    hier habe ich gerade ein 32Bit debian und hatte den selben Fehler wie du.

    grüße
    stefan

  30. Avatar von stefan

    autsch mein Fehler:
    in zeile 283 muss das print weg
    war zum testen.
    und nochmal:
    http://paste.ubuntuusers.de/396469/

  31. Avatar von Nabo

    1000 Danke Stefan!
    Es funktioniert.

    gruß
    nabo

  32. Avatar von Christoph

    Hi stefan! Auch von mir ein dickes Dankeschön. Das tut nun auch wieder bei mir.

  33. Avatar von atalod

    Mensch, ich bin begeistert. Es läuft..

    Danke, Stefan!

  34. Avatar von Ben1000

    Hallo,

    Ich benutze das modifizierte Skript von Stefan mit Mythtv. Das läuft eigentlich auch ganz gut. Allerdings habe ich ein Problem Aufnahmen mit den EPG Daten zu händeln. In der „title“ Zeile ist immer der Wochentag der Sendung angegeben. Dieser ändert sich am Tag der Sendung auf „Heute“, also z.B. von Donnerstag auf Heute. Dadurch erkennt Mythtv die Sendung nicht mehr, weil ja der Titel verändert wurde und nimmt nicht auf.

    Leider kann ich kein Python um mich dem Problem anzunehmen. Im Grabber Code habe ich auch nichts in Richtung „title“ gefunden. Vielleicht kann mir jemand von euch ein kleines Workaround zukommen lassen, um die Infos in der Klammer beim Titel auszublenden. Ich wäre sehr dankbar :).

    Gruß, Ben

  35. Avatar von stefan

    http://paste.ubuntuusers.de/397098/

    hier hab mal das script verändert.
    bin auch kein python-profi aber so sollte funktionierts bei mir.

    Die Änderung befindet sich in Zeile 309-313
    die schleife durchläuft alle child elements.
    und bearbeitet dann den Title (subelement.text)

    ABER:
    Der Titel wird einfach an der ersten ‚(‚ zerschnitten.
    (siehe stringfunktion split)
    Also Vorsicht wenn der Titel wirklich eine Klammer enthält bzw. enthalten soll. Falls du es anders machen willst -> jetzt weisst du wo der Titel ist 😉

    Viel Spass damit
    stefan

  36. Avatar von Paul

    Danke für die Anpassungen im Skript. Nach den Beschreibungen hier ist es genau das, wonach ich suche. Leider funktioniert es bei mir nicht.
    Kann es sein, dass das daran liegt, dass ich einen Proxy Server benutze?
    Ich habe im Code keinen Hinweis auf dergleichen gesehen und weiß nicht ob Python HTTP_PROXY ausliest oder nicht.

    Vielleicht wisst ihr das ja zufällig. Ich würde mich über eine Antwort freuen.

    schönen Sonntag noch!

    Paul

  37. Avatar von stefan

    Hi,
    das sollte eigentlich keine probleme machen.
    ich benutze auch einen proxy.
    und bei mir gehts.
    kommt bei dir irgendwo ein fehler?
    hast du alles genauso gemacht wie chris es beschrieben aht?

    grüße
    stefan

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Markdown wird unterstützt: **fett**, _kursiv_, [Linktext](URL), `Code`, Zeilen mit - für Listen, 1. für nummerierte Listen, dreifache Backticks für Codeblöcke.

Über den Blog

Linux und Ich ist ein unabhängiger Blog rund um GNU/Linux-Distributionen, freie Software, Raspberry Pi, Android und Hardware für Bastler und Umsteiger.

Zuletzt auf Mastodon

Gesten Abend noch schnell verbloggt: tfm bringt Seitenleiste, Tabs, Zwei-Fenster-Ansicht und Mausbedienung ins Terminal – ein Dateimanager für alle, die dort ohnehin am liebsten arbeiten. Noch mit kleinen Beta-Macken, aber…

Kategorien

Blog unterstützen

Gefällt dir der Blog? Mit einer kleinen Spende hilfst du, Hosting und neue Testgeräte zu finanzieren.

Linux und Ich — EPG zu deutschen Sendern in tvtime einblenden
https://linuxundich.de/gnu-linux/epg-zu-deutschen-sendern-in-tvtime-einblenden/ — gedruckt am 17. September 2026