[Proof of Concept] [WIP] easyepg als Addon

  • Hallo zusammen,

    aktuell arbeite ich an der neuen Version von easyEPG. Mit einer neuen Variante des Skripts lassen sich bereits die EPG-Daten für bis zu 14 Tage von Gracenote (TMS) beziehen. Der Anbieter pflegt eine große Datenbank mit einer Vielzahl an TV- und Radio-Kanälen aus Europa, Amerika und Australien. Für mich ist TMS quasi ein "offizielles" Rytec, daher die "lite"-Bezeichnung. Das Skript dient als Basis für die kommende Version von easyEPG (ohne "lite") mit den üblichen Quellen aus dem Web (Magenta, Horizon etc.). Wer möchte, kann das Skript als Standalone via Python oder als Kodi-Addon ausprobieren. Man wird merken, dass zahlreiche Anbieter wie Zattoo und Horizon die Gracenote API als Datenquelle nutzen. Außerdem setzen Emby und Plex für die TV EPG-Funktionen ebenfalls Gracenote ein.

    Features:

    • Webinterface zur Konfiguration des Grabbers
    • Zusammenstellung einer Kanalliste, die zum Grabben genutzt wird
    • Manuelles Hinzufügen der EPG-IDs, M3U Upload-Funktion für eine schnellere Zuordnung der IDs
    • Such-Funktion für Kanäle und komplette Lineups (TMS)
    • Diverse Einstellungen (Rating Mapper, Anzahl der Tage, Bildschirmformat etc.)

    To do:

    • Einbindung der üblichen Quellen aus dem Web
    • Nutzung von externen XML-Quellen
    • Nutzung von TMDb zur Aufwertung der EPG-Daten
    • Replace-Tool, um mehrere Sender innerhalb der Liste ersetzen zu können (falls ein Anbieter ausfallen sollte)
    • Support mehrerer Sprachen im Webinterface
    • ...

    Docker (danke an @DeBaschdi und @dlueth)
    [docker] NEW easyepg
    [Docker] telerising.minimal

    GitHub + Hinweise zur Installation:
    https://github.com/sunsettrack4/script.service.easyepg-lite

    Download:
    https://github.com/sunsettrack4/s…/heads/main.zip

    Bitte beachten:

    Spoiler anzeigen


    Bei Aufforderung zur Eingabe des Keys den folgenden Wert nehmen.

    [ea]
    API-Key
    n829qtk58c7ym5pxdch5smup
    Source (öffentlich): https://mobile.twitter.com/DailyNickNews/…291520962437122

    Viel Spaß beim Testen wünscht

    easy4me

  • Anleitung:

    Hinweis beim Starten des Skripts: siehe Spoiler oben. Wie das Skript in Python gestartet wird: siehe Readme-File.

    Kanal-Liste (oben):

    • Zu Beginn sieht man direkt eine Liste mit allen aktuell konfigurierten Sendern.
    • Um zu einem Kanal zu springen, gibt man den Namen in das Suchfeld ein und drückt ggf. (mehrfach) Enter. Sämtliche Listen sind alphabetisch sortiert.
    • Um die Infos zu einem Sender zu erhalten, oder um die ID zu bearbeiten, klickt man auf das Stift-Symbol des dazugehörigen Kanals.
    • Um mehrere Sender auszuwählen, klickt man jeweils auf den Namen/auf das Logo. Unten findet man dann die Funktionen (Löschen, alles auswählen/abwählen).

    Buttons unten (von links nach rechts):

    1) Grabber: Darüber kann man den Grabber starten und die XML-Datei herunterladen, bzw. sich den Link herauskopieren.

    2) Add new channels: Dort öffnet man die Kanalsuche. Damit besteht die Möglichkeit, komplette Lineups (z.B. Zattoo) als Liste abzurufen, oder nach bestimmten Sendern zu suchen. Durch Anklicken der Sender-Logos wählt man mehrere Kanäle aus und fügt sie zur Liste hinzu. Für einzelne Channels klickt man auf das jeweilige Plus-Symbol.

    Hinweis: Beim Öffnen eines Lineups kann es etwas dauern, bis alle Details nachgeladen wurden. Beim zweiten Mal geht es schneller.

    3) In den Settings (Zahnrad unten) können diverse Grabber-Einstellungen vorgenommen werden.

    4) Zum Mappen kann man eine Datei (UTF-8) hochladen oder den Link zu einer M3U-Playlist angeben. Anschließend öffnet sich eine separate Liste unterhalb der Kanal-Liste. Zum Mappen wählt man aus beiden Listen jeweils den korrekten Kanal aus und klickt auf "Map Channel".

    5) Allgemeine Infos zum Skript.

    Es kann durchaus noch Bugs geben, bin kein gelernter Entwickler und beziehe mein Programmierer-Wissen von Google/Stackoverflow. Aber die wesentlichen Funktionen haben in meinen Tests funktioniert. :D

  • Startet hier leider nicht.

    Beim Aufruf des WebIF kommt das hier im Terminal (WebIF bleibt leer bis auf blauen Hintergrund und oben das Easy-EPG Logo)

    Spoiler anzeigen
  • requests ist Installiert.

    Python Version ist..

    Code
    Python 3.9.2 (default, Mar 12 2021, 04:06:34)
    [GCC 10.2.1 20210110] on linux

    Das ganze ist auf einen PI3 mit aktuellen Raspbian OS installiert.

    Ich habe mal den Link aus deinen Twitter Link in einen Webbrowser auf den Server eingegeben, da werden die Daten abgerufen.

  • Auf meinem Raspberry Pi4 mit Buster läuft Python 3.9.13, der Server startet problemlos. Selbst Python 3.7 funktioniert.

    Ich habe mal den Link aus deinen Twitter Link in einen Webbrowser auf den Server eingegeben, da werden die Daten abgerufen.

    Das muss nichts heißen, da es ja auf deinem Raspberry nicht geht, oder läuft der Browser auch auf dem Raspberry?

  • Mich macht auch stutzig, dass in deinem Log simplejson auftaucht, ich habe explizit json bei den Modul-Importen genannt... Vielleicht hilft ein Update des requests-Moduls. Installiert ist bei mir requests 2.28.1 (Python 3.9) bzw. 2.21.0 (Python 3.7).

  • Der Browser läuft auf den PI.

    Ich habs gerade nochmal auf einen PI4 probiert, einziger Unterschied 64Bit Raspbian OS und ein anderer Internetanschluss, leider exakt die gleichen Fehlermeldungen.

    Edit: Auch mit geupdateten requests keine Änderungen.

  • @HypsterX Ich weiß nicht, warum simplejson bei dir installiert ist. Ich konnte dein Problem nachstellen, es liegt daran, dass simplejson anstelle von json genutzt wird, und dieses Modul verursacht bei mir nachweislich das von dir genannte Problem. Bitte deinstalliere das simplejson-Modul und probiere es erneut. So konnte ich den Fehler beheben.

    python3.9 -m pip uninstall simplejson

  • prima, ein Docker folgt dann in Kürze:)

    Auf den sollte ich bei UnRaid wohl besser warten [ag] sonst mach ich mir wieder alles kaputt ;(

    Spoiler anzeigen

    Client: Nvidia Shield 2019 Pro Kodi 20.1, AVR Sony STR-DN 1080, Nubert NuBox Series 5.1, LG TV 55SM8600 Nanocell
    Musik über Pi4 mit Picore 8 und LMS am AVR.
    Gästezimmer:Shield TV 2017 Kodi 20.1
    Server: unRaid; Fractal Des. Define 7;Asrock B365M PROF-4, Intel i3-8100, 16GB RAM und 20TB Platten,
    Arbeitstier: DeepSilence 4, AX370M, AMD Ryzen 5 2600X; 8GB RAM, Samsung M2 970EVO 500GB, RX560 Grafik

  • Ich verwende Kodi 19.4 auf Libreelec 10.0.2.
    Leider habe ich auch das Problem, das ich beim Aufruf der Konfigseite (http://XXX.XXX.X.XX:4000) nur eine hellblaue Seite mit dem Easy Lite Logo angezeigt bekomme.
    Daraufhin habe ich mich mit Putty über SSH mit Librelec verbunden.
    Gebe ich dort python – version ein, kommt leider nur ein "python: can't open file '–': [Errno 2] No such file or directory".
    Heißt das, dass das Tool nicht über Libreelec läuft?

    P.S.: Im Log fimnde ich irgendwie nur folgende Angaben:

    Code
    2022-10-23 10:59:07.237 T:808     ERROR <general>: Bottle v0.12.18 server starting up (using WSGIRefServer())...
                                                       
    2022-10-23 10:59:07.237 T:808     ERROR <general>: Listening on http://0.0.0.0:4000/
                                                       
    2022-10-23 10:59:07.237 T:808     ERROR <general>: Hit Ctrl-C to quit.
  • @easy4me
    python-requests kann ich nicht installieren auf Debian 11

    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)

  • Habe eine Kanalliste hochgeladen. Hänge jetzt an der Stelle "Missing EPG ID Mappings". Wenn ich einen Sender anklicke, ist dieser grün hinterlegt, aber ich sehe nicht, wie ich tatsächlich mappen kann. Es werden keine weiteren Buttons angezeigt. Übersehe ich was?

  • Wie oben beschrieben, bitte sowohl aus der Kanal-Liste oben als auch aus der Auflistung der Missing EPG ID Mappings immer jeweils den passenden Kanal markieren, dann wird der Button "Map Channel" freigegeben, anschließend kann man die ID mit dem Kanal verknüpfen.

Jetzt mitmachen!

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