achtnullzwei / A1TV_EPG

EPG to XMLTV via A1 TV Mobile API
1 stars 0 forks source link

Danke und Anregungen #12

Open ghost opened 4 years ago

ghost commented 4 years ago

Many thanks for your A1TV_EPG!!!

I'd like to give some feedback (which is not an issue at all). I will do it in German, since it's easier for me and the aim of this tool is just useful for the Austrian company A1.

Vielen Dank für dieses Tool, mit dem man recht einfach die EPG-Daten für A1 TV als XMLTV bzw. für Tvheadend verwenden kann.

Kurz zu meinem Einsatzzweck: Ich habe nun einen zweiten Tvheadend-Server in Betrieb genommen. Zukünftig werde ich meine beiden Server auf einer Instanz zusammenfassen, aber vorerst ist es passender für mich, zwei Instanzen zu betreiben. Meine erste Instanz habe ich manuell und mit Hilfe von Bronkoknorbs a1tv-helpers aufgesetzt, mit EPG-Daten von xmltv.se. Auf xmltv.se sind jedoch nicht alle notwendigen EPG-Daten verfügbar. Ich wollte irgendwann auf A1Json2Xmltv wechseln, habe das aber nie gemacht.

Auch wenn die Installation und Einrichtung von Tvheadend für A1 TV nicht sonderlich kompliziert ist, so gibt es doch einige Punkte zu beachten bzw. man muss schon wissen, was man tut. Die Doku von Tvheadend hilft leider auch nicht immer weiter.

Ich habe A1 TV nun als Automatic IPTV Network in Tvheadend eingerichtete und dafür das m3u-File direkt von A1 genommen. Was mir da schon nicht gefällt: Es wird offensichtlich der Dateiname (service.plus.m3u) zu den Namen der Muxes vorne hinzugefügt. Das gefällt mir nicht, ist unnötig und sogar etwas verwirrend. Hier würde ich das File besser downloaden und umbenennen (z.B. in "MUX", ohne Erweiterung) womit dann die MUX-Namen kürzer und passender sein sollten. Auch sollte man das M3U-File anpassen, denn das File von A1 ist nicht ganz korrekt. So ist z.B. seit Langem der Sender 530 "Havoc" enthalten, diesen gibt es wohl aber nur in einem Zusatzpaket. Den könnte man also einfach entfernen. In der Vergangenheit gab es auch Probleme mit einigen Sendern, die über den RPT-Stream nicht funktionierten, über den UDP-Stream hingegen schon (einfach Protokoll ersetzen). Ich meine, das Problem besteht nicht mehr, aber falls doch, könnte man es mit lokalem File lösen. (Natürlich könnte man das auch nachträglich in Tvheadend bereinigen, man dürfte dann aber nicht die MUX-Seetings automatisch mit Daten vom A1-File überschreiben). Ganz nebenbei hätte man mit einem lokalen File auch ganz einfach die Möglichkeit, Senden, die einem absolut nicht interessieren, einfach zu entfernen. Oder wer schaut denn wirklich "Juwelo HD"? Dieses Tool sollte dann aber idealerweise auch die Modifikationen aus dem lokalen M3U-File (bzw. einem zugehörigen XSPF-File, welches offensichtlich verwendet wird, berücksichtigen).

Die Einrichtung hat jedenfalls automatisch funktioniert, jedoch haben die Sender keine Channel-Number und auch keine Logos.

Mit A1TV_EPG konnte ich (via Socket-Kommunikation) die EPG-Daten bereitstellen. Weder Sortierung noch Logos hatte ich damit aber anfänglich hinbekommen (obwohl ich "Update channel icon" in unter "EPG Grabber" aktiviert hatte). Sortierung/Channel-Numbers wird wohl durch das Tool nicht gemacht. Die Kanalnummern (A1-Standard) habe ich dann mit dem Scripts create_channummap.rb und create_channummap.rb (Bronkoknorbs a1tv-helpers) gesetzt. Senderlogos, die gestern nicht funktionierten, sind heute auf einmal da (sowohl im Tvheadend als auch im Kodi). Warum, weiß ich nicht. Die Senderlogos werden leider in Kodi nicht ganz so schön dargestellt (wegen Skalierung). Bei meiner alten Lösung habe ich daher die Logos lokal gespeichert und lokal skaliert (mit etwas Blur, meine ich), so dass es schöner ausschaut. Ich muss mir das dort nochmals im Detail anschauen. Wenn man es hier steuern könnte, ob und welche Logos verwendet werden, wäre das natürlich fein.

Da ich, wie oben erwähnt, derzeit zwei unabhängige Instanzen betreibe, wäre es natürlich schön, die EPG-Daten der neuen Instanz auch auf der alten Instanz zu haben. Ich verwende hier derzeit die Socket-Variante. Würde ich XML-Files verwenden, wäre das natürlich leichter, denn dann könnte ich die Files einfach von einer Instanz auf die andere kopieren. Warum eigentlich Socket-Kommunikation? Bringt das Vorteile, und wenn ja, welche? Stehen die Daten etwa schneller zur Verfügung? Hier wäre es schön, wenn das Tool beide Varianten gleichzeitig ausgeben könnte. Da scheint mir aber nicht zu funktionieren, denn die übergebenen Argumente werden nicht alle verwendet (weil alles in einen IF-ELSEIF-Block) verarbeitet wird. BTW: Kann es sein, dass im Tool generate_xmltv auch ausgeführt wird, obwohl es nicht notwendig ist (bei Argument u)?

Noch ein paar Überlegungen zur Optimierung des Tools (und um den A1-Server nicht zu sehr zu stressen): Etliche Sender gibt es als HD und in SD (z.B. "ORFeins" und "ORFeins HD"). Die EPG-Daten sind jedoch gleich. Hier wäre es wohl möglich, die EPG-Daten nur einmal vom Server zu ermitteln, und entweder für beide Channels auszugeben oder Re-Use von EPG-Daten im Tvheadend zu machen. Ähnliches gilt auch für die EPG-Daten der lokalen Varianten von Sendern, vornämlich ORF 2. Ich bin mir nicht sicher ob die Daten wirklich überall 100 % gleich sind, aber sicher beinahe. "Bundesland heute" heiß in den EPG-Daten aller Sendern gleich nur das Programm ist dann unterschiedlich: "Wien heute", "Burgenland heute", etc.). Möglicherweise gibt es in den EPG-Daten leichte Unterschiede für die Minderheitsprogramme (z.B. Sendungen auf Ungarisch, Kroatisch, Slowenisch für z.B. Burgenland, Kärnten), doch weiß ich gar nicht, ob diese in den EPG-Daten von A1 überhaupt vorhanden sind. Ich persönlich könnte darauf verzichten und mir wären die EPG-Daten eines ORF2-Senders für alle anderen (alle Bundesländer, SD und HD) ausreichend.

Problem: Mir fällt gerade auf, dass die EPG-Daten alle verschoben sind, und zwar um 2 Stunden. "Bundeland heute" ist überall um 21:00 Uhr, statt um 19:00 Uhr; "Zeit im Bild" um 21:30 Uhr, statt 19:30 Uhr! Die Daten sind sowohl in der Tvheadend-Weboberfläche als auch in Kodi falsch. Hier scheint ein Problem zwischen UTC und MESZ vorzuliegen. Die aktuelle Uhrzeit auf meinem System (Linux Mint) ist korrekt. Was hat es da? Wo muss man das korrigieren?

Sender ohne relevante EPG-Daten: Es gibt etliche Sender, die nur Dummy-Daten liefern (z.B. jeweils einstündige "Sendungen", die nur den Namen der Senders, ohne Zusatz " HD", haben), z.B. ÖAMTC, HT 1, etc. Hier könnte man sich die Bereitstellung der EPG-Daten auch gleich sparen. Ein Opt-Out für derartige Sender in diesem Tool wäre eine Überlegung. Wenn man will, könnte man dann auch die Verarbeitung von EPG-Daten für andere Sender unterbinden, wo man zwar die Sender haben will, einem die EPG-Daten aber nicht interessieren.

EPG-Daten, weiter in der Zukunft: Das Tool liefert standardmäßig die EPG-Daten für die nächsten 26 Stunden. Manch einer hätte aber gerne die Daten für einige Tage in der Zukunft. Jetzt wäre das nur möglich, wenn man die 26 Stunden erhöhen würde und damit die Last am A1-Server entsprechend steigern würde. Denkbar wäre aber auch (und die API scheint dies zu unterstützen), dass man einen definierten Anfangszeitpunkt übergibt. So könnte man die EPG-Daten auch nur jeweils für einen Tag laden, aber nicht beginnend mit jetzt, sondern z.B. erst mit morgen oder übermorgen. Man könnte also die Daten für einige Tage in der Zukunft laden, ohne die tägliche Last am Server zu erhöhen (außer beim initialen Lauf, wo die Daten für die benötige Zeitspanne in der Zukunft geladen werden müsste, was aber auch mit mehreren Läufen gemacht werden könnte).

Detail-Daten (descriptions) für die Programme werden derzeit nicht unterstützt. Das ist zwar nachvollziehbar, aber auch doch etwas schade. Mich persönlich interessieren nur ca. eine Hand voll Sender, und auch da nur in einem gewissen Zeitfenster (z.B. von 20:00 Uhr bis 02:00 Uhr). Natürlich wäre es da schön, auch Detail-Daten zu haben. Eventuell könnte man kurze Sendungen (bis ca. 15 Min.) auch ausnehmen. Eigentlich würde es mir riechen, wenn ich z.B. in Kodi auf Knopfdruck die Daten für die jeweilige Sendung sehen könnte. Das ist aber in Kodi nicht implementiert (und in diesem Sinne) auch nicht wirklich relevant für dieses Tool.

Insgesamt würde ich es begrüßen, wenn man einiges mehr parametrisieren könnte, ab liebsten in einem eigenen Config-File.

So, Schluss jetzt. Ich wusste es wird lang, zu lang.

Fazit: Ist es einfach, A1 TV mit z.B. Kodi und Tvheadend zu empfangen? Naja, nicht ganz. Viele ONU sind damit sicher überfordert, vor allem wenn man alles schön integriert und mit EPG-Daten haben will. Dieses Toll hilft sicher, hier einiges zu erleichtern, aber zum Kinderspiel wird es dennoch nicht, vor allem, wenn dann etwas nicht so ist, wie es sein sollten (z.B. Zeitdifferenz +/-2 Std. in den EPG- Daten).

Nochmals: Danke für das Tool! Vielleicht lässt sich ja noch einiges erweitern und optimieren. Einiges von dem, das ich oben angesprochen habe, ist aber auch gar nicht im direkten Einfluss dieses Tools.

achtnullzwei commented 4 years ago

Hi! Vielen Dank für die Anregungen und das Feedback!

Fun-fact: Sollte Github Notifications schicken, habe ich die übersehen und bin jetzt nur durch Zufall darauf aufmerksam geworden, dass hier Issues eröffnet worden sind. Ich werde mir die nächsten Tage die offenen Punkte genauer anschauen und kann dir in diesem hier dann auch etwas ausführlicher Antworten. :-)

ghost commented 4 years ago

Danke mal, für deine Änderungen/Fixes!


Was mir gerade auffällt: In Kodi (Sprache: Englisch) scheint als Genre im EPG immer "Other/ Unknown" auf. Auch im Web-Frontend von Tvheadend ist "Content Type" leer. Genres werden von der API geliefert und landen auch im XML.

Es scheint so zu sein, dass Tvheadend bzw. der XML-Grabber hier nur englische Standard-Genres kennt, und den Rest einfach ignoriert. Hier könnte man ggf. ein Mapping der deutschen Genres vornehmen. Ich bin da noch am Anfang und muss schauen, ob ich da noch Konkretes finde. Siehe z.B. https://tvheadend.org/boards/12/topics/301

Die möglichen Geres der A1-API sind wohl – neben den bereits aufgeschlüsselten Werten in den Programm-Data – auch in der Stations-Daten enthalten: {"1":"Film","2":"Serie","3":"Musik","4":"Dokumentation","5":"News","6":"Kinder","7":"Show","8":"Sport"}

Siehe auch https://tvheadend.org/projects/tvheadend/repository/tvheadend/revisions/master/entry/src/epg.c: **_epg_genre_names

(Ich wollte es einfach mal, als Reminder, hier festhalten.)