[Howto] IPTV (Entertain) über Kodi/Libreelec (17.0/8) mit Rpi (2 und 3 getestet) und TvHeadend

  • Geiles HowTo...


    Hab einen TVHeadend internal EPG Grapper wieder zum Laufen gebracht. Möglicherweise interessiert das den ein oder anderen, der das TVHeadend als stand alone host laufen lassen will oder einfach nur von einem zweiten Endpoint mit Kodi auf das gleiche Backend zugreifen zu können.


    Hier mein addon, habs jetz net nochma übersetzt:


    1. I used TVHeadend 4.2 since it's the first version having the external XMLTV grabber already in it.

    2. Get all the channels running as above (Part 1).

    3. Activate "External: XMLTV" Grabber Module via Configuration --> Channel / EPG --> EPG Grabber Modules. Don't forget to save.

    I rebooted the VM (Server) afterwards, maybe someone can tell if this is really necessary.
    You might want to check the /home/hts/.hts/tvheadend/epggrab/xmltv.sock is created using the command:

    Bash
    ls /home/hts/.hts/tvheadend/epggrab

    4. Check if an XML for your country exists on http://http://http://koditvepg.com/epg/ . Get the name. I used the German one in my example, so replace it with your country's filename everywhere below.

    5. I built a script to grab the EPG:

    Bash
    #!/bin/bash
    rm /home/hts/xmltvlog/xmltv.[definition='1','0']log[/definition]
    rm /home/hts/ger.xml*
    echo "Download starting..." >> /home/hts/xmltvlog/xmltv.[definition='1','0']log[/definition]
    echo "Time: $(date)" >> /home/hts/xmltvlog/xmltv.[definition='1','0']log[/definition]
    wget http://koditvepg.com/epg/ger.xml -P /home/hts -nv -a /home/hts/xmltvlog/xmltv.[definition='1','0']log[/definition]
    cat /home/hts/ger.xml | sudo socat - UNIX-CONNECT:/home/hts/.hts/tvheadend/epggrab/xmltv.sock
    echo "" >> /home/hts/xmltvlog/xmltv.[definition='1','0']log[/definition]
    echo "Time: $(date)" >> /home/hts/xmltvlog/xmltv.[definition='1','0']log[/definition]
    echo "EPG Updated successfully." >> /home/hts/xmltvlog/xmltv.[definition='1','0']log[/definition]

    Copy & paste this into a file of your choice. I used /home/hts/epggrab and my favorite editor:

    Code
    vim /home/hts/epggrab

    Make it executeable:

    Code
    chmod a+x /home/hts/epggrab


    6. Get the script running periodically by crontab. I just added these two lines to /etc/crontab . Will run at 2 am and 2 pm. Make sure to use tabs as in the lines above, as far as I have it in mind crontab will not work without:

    Code
    00 2    * * *   root    /home/hts/epggrab
    00 14   * * *   root    /home/hts/epggrab

    7. You might want to run the srcipt once now or wait until it's run by cron.


    8. Comment this in case there is a typo or it does not work...


    I have a screenshot from my TVHeadend here, too. Not easy to upload...


    Cheers,
    Nic

  • wie geht wenn man DE, UK, IT epg braucht

    Externer Inhalt beta.speedtest.net
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    Verkaufe mein beide Dreambox bei interesse bitte melden
    Dreambox DM8000 HD PVR Dreifach Tuner: 2x DVB-S (Sat) 1x DVB-C (Cable)
    Dreambox DM800 HD PVR 1x 1x DVB-C (Cable)

  • Roby: Bekommst du DE, UK und IT IPTV auf einmal?

    Aber selbst wenn hab ich keine Ahnung um ehrlich zu sein, da müsstest du schauen, was der socat Befehl genau mit der Socket Datei macht. Hab an der Stelle leider auch nur abgeschrieben und mich mit oberflächlicher Erklärung zufrieden gegeben...

  • Ja da bekomme ich

    Externer Inhalt beta.speedtest.net
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    Verkaufe mein beide Dreambox bei interesse bitte melden
    Dreambox DM8000 HD PVR Dreifach Tuner: 2x DVB-S (Sat) 1x DVB-C (Cable)
    Dreambox DM800 HD PVR 1x 1x DVB-C (Cable)

  • Das oben aufgeführte Skript habe ich auch bereits unter: http://forum.koditvepg.com/thread.php/gui…end_iptv_epg_.1 gefunden.

    Leider ist dieses aber nicht mit LibreElec 8.0.2 / Kodi 17.3 auf dem Pi, umsetzbar, da es zum einen kein /home verzeichnis gibt
    und somit die Pfade nicht passen. Zum anderen fehlt es auch an "socat".

    Von daher habe ich die XML mit wget in /storage/donwnloads/ geladen und XMLTV unter den Addon Einstellungen,
    entsprechend eingestellt. Somit liest tvheadend die Daten dann ein, die Verarbeitung dauert jedoch einige Zeit.

    Somit würde mir nun ein Skript ausreichen, welches alle 4-6 Stunden die ger.xml neu herunterlädt bzw. auf Updates prüft.

  • Hi Jung,

    du hast vollkommen recht. Wenn es Verzeichnissprobleme gibt natürlich in anderen arbeiten... Hochgeladen hab ich das Script genau dort auch ;)

    Ich hatte es bisher zweimal am Tag nur laufen, das hat auch immer völlig ausgereicht.

    Wie hast du das Problem mit socat gelöst? Nur falls es andere interessiert...

    Leider musste ich jetz aber feststellen, dass unter der angegebenen Quelle keine aktuellen EPG Daten mehr zur finden sind. Neues Script folgt zeitnah, bin grade im letzten Test. Ich habe eine andere Quelle gefunden, dort wirds aber komplizierter, wenn man nicht Geld bezahlen will, um eine fertige Datei zu erhalten. Umsonst bekommt man dort leider nur eine Kanalliste und für jeden Kanal jeweils EPG Dateien für einzelne Tage.

    Wird daher noch rechenintensiver leider...

  • So, hier nun das neue Skript:

    Was macht es? Was müsst ihr noch tun?

    Zunächst hab ich mal alle Pfade und Dateinamen oben gelistet und rufe sie nur über Variablen auf. So kann sich jeder selbige setzen wo er will. Den Dateinamen index.html durft ihr nicht ändern, die Datei wird so runtergeladen.

    Auf xmltv.xmltv.se gibt es die einzelnen Dateien für die Sender runterzuladen. Ihr könnt euch die Änderungsdaten ansehen wenn ihr wollt. Habe für mich entschieden, dass das Ausführen des Skripts einmal pro Woche reicht.

    Vortsicht: Das ganze ist ziemlich rechenintensiv. Bei mir hat das Durchlaufen mit meiner Senderliste knapp 45 Minuten gedauert.

    Zunächst wird eine Datei namens epg.xml erstellt mit dem Inhalt der raw-channels.xml. Wie ihr diese erstellt gleich.
    Dann wird die Dateiliste runtergeladen. Mit dem langen grep/sed Befehl wird nach den Kanälen gesucht und das ganze in ein benutzbares Format gebracht. Ihr könnt euch eine Liste mit euren basteln wenn ihr die raw-channels.xml bastelt. Beachtet nur die Syntax.
    Nun werden die Dateien runtergeladen.
    Jede der Dateien wird nun angefasst und entsprechend bearbeitet sowie der epg.xml angefügt.
    Zum Schluss wird die nun erzeugte Datei dem TV Headend EPG hinzugefügt.


    raw-channels.xml


    Auf xmltv.xmltv.se könnt ihr euch die Liste mit den ganzen Dateien durchschauen. Ihr findet auch Dateien der Form channels-X.xml.gz. Darin findet ihr die jeweiligen Kanäle für diverse Länder. Alles auch mischbar dann.

    Ich habe mir die Kanäle rausgesucht, die ich haben möchte, und alle weiteren aus der Datei gelöscht. Fertig ist eure raw-channels.xml.

    Hintergrund ist folgender: Es dauert ne Weile, bis das alles durchgelaufen ist mit dem Umwandeln der Dateien. Daher: Je weniger Kanäle desto schneller läuft das Skript.

    Zu jedem Kanal findet ihr eine Channel ID. Diese ist jeweils in der Liste für den langen grep/sed Befehl in Zeile 23 einzutragen. Nur die Dateien zu diesen Sendern werden entsprechend runtergeladen.


    Nacharbeiten auf dem System

    Natürlich müsst ihr das Skript irgendwo auf dem System speichern und ausführbar machen.


    Zeitgesteuertes Ausführen einmal die Woche habe ich per cron eingerichtet. Auch hier Vorsicht: Das Skript ist sehr rechenintensiv. Fernsehschauen war mit meiner VM nicht ordentlich möglich während es lief, trotz vier Kernen und vier GB RAM. Wählt daher einen sinnvollen Zeitpunkt.


    Die EPG Kanäle im TV Headend haben nun neue Namen und müssen den Kanälen nun zugeordnet werden. Es lassen sich sogar mehrere auswählen.


    Skript

    Und hier das Skript. Hängt aber auch nochmal an, leider als .txt, das solltet ihr noch ändern in .sh oder ganz weglassen, dass es schön aussieht.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!