Es folgt ein etwas längerer Beitrag, sorry schon mal im Voraus ;-)
Sicher bin ich nicht der einzige Dbox Besitzer, der sich an den vielen tollen und frei empfangbaren Programmen auf Astra 28,2° Ost erfreut. Leider stellt sich auf dieser Position ja das leidige Problem, dass alle Sender nur Current/Next senden. Sicher kann man sich mit Radiotimes.co.uk und ähnlichen Seiten behelfen, viel besser wäre es doch aber, wenn man auch hier einen vernünftigen EPG nutzen könnte.
Ich habe mir dazu mal einige Gedanken gemacht:
Lösung 1: Events von externer Quelle hinzufügen
Ich benutze hier schon seit mehreren Monaten einen etwas veränderten sectionsd. Und zwar habe ich meinen sectionsd um einen weiteren Thread erweitert, in dem ein kleiner TCP Server auf Verbindungen lauscht. Über Netzwerk lässt sich der sectionsd dann während des Betriebs mit Events füttern. Dazu habe ich auf dem PC ein Ruby-Script, das Radiotimes und co. abgrast und dem sectionsd dann täglich mit den EPG Informationen versorgt. Auf diese Weise habe ich nicht nur EPG für alle englischen Sender, sondern auch für ein paar weitere EPG-lose (Eurosport, CNBC, etc.). Funktionieren tut das alles eigentlich problemlos.
Lösung 2: für UK Boxen bestimmten EPG benutzen
Die schönere Lösung wäre es, wenn der sectionsd auch weiterhin alle seine Daten aus dem eigentlichen Datenstrom bekommt und nicht auf externe Quellen angewiesen ist. An den für Sky Boxen ausgestrahlten EPG auf OpenTV Basis kommt man wohl nicht heran. Allerdings ist ja inzwischen in England das Freesat Projekt der BBC und von ITV gestartet. Für diese speziellen Freesat Boxen wird natürlich auch ein EPG ausgestrahlt. Aber die Briten wären natürlich nicht die Briten, wenn sie sich nicht auf hierfür ein etwas „eigenartiges“ Format ausgedacht hätten ;-)
Der Freesat EPG wird als EIT gesendet, allerdings nicht wie normalerweise auf PID 18, sondern über PID 3842 und zwar auf allen Transpondern, die für Freesat benutzt werden. Viel interessanter ist aber die Tatsache, dass die Sendungstitel und Beschreibungen (nur short event description wird gesendet, keine extended) a) komprimiert und b) „verschlüsselt“ sind. Verwendet wird hierbei ein veränderter Huffman-Code, bei dem jeder Buchstabe vom jeweils vorherigen abhängig ist. Die Tabellen für diese Abhängigkeit sind zudem für Sendungstitel und Beschreibung unterschiedlich. Welche der beiden Tabellen zur Dekodierung verwendet werden muss, gibt das jeweils zweite Byte im komprimierten String an. Das erste Byte ist fest 0x1F.
Nun sind im unter GPL stehenden MythTV sowohl der verwendete Huffman Algo als auch (unvollständige) Dekodierungs-Tabellen enthalten. Ich habe also den sectionsd mal spaßeshalber so erweitert, dass auch auf PID 3842 Daten eingelesen und diese dann mit Hilfe der Informationen aus MythTV dekomprimiert werden. Ergebnis: Freesat EPG ist da ;-)
Da die Tabellen (die nur durch pure Beobachtung entstanden sind) leider nicht ganz vollständig sind bzw. es eigentlich auch nie werden können, gibt es leider hin und wieder Dekodierfehler. Gefühlte 95+% werden aber erfolgreich dekodiert.
Interessant ist noch die Beobachtung, dass für Freesat das Konzept verschiedener table_ids scheinbar komplett über den Haufen geworfen wurde. Alle Events für alle Sender und alle Transport Streams (egal ob actual oder other) kommen über table_id 0x60 und 0x61. Wobei scheinbar(!) 0x61 für die zeitlich weiter entfernten Events genutzt wird. Nach meinen Erfahrungen verlassen die sich auch voll und ganz auf ihr Current/Next, denn im Freesat EPG werden zwar fleißig die Daten für die nächsten Stunden und Tage gesendet, was im Moment läuft fehlt darin aber häufig.
Jetzt mal meine eigentliche Fragen: habt ihr an diesem oder einem ähnlichen Problem vielleicht auch schon was gebastelt? Oder besteht vielleicht bei irgendjemanden das Interesse, die Geschichte mal auszuprobieren? Hat vielleicht noch jemand weitere Vorschläge?
Ich weiß leider auch nichtmal, ob diese Freesat EPG Geschichte überhaupt rechtlich einwandfrei ist… da es die Infos aber frei im Netz gab und auch unter GPL stehender Code dafür veröffentlicht wurde, habe ich mir da erstmal keine weiteren Sorgen gemacht.

