PROGRAMMDATEN FÜR TV-BROWSER ANBIETEN

unter Verwendung der TV-Browser-Tools

Teil I

In Teil I des Tutorials verwenden wir fiktive TV-Daten, die von der TV-Browser-Website erzeugt werden. Diese Daten werden von den hier besprochenen Tools aufbereitet und dann auf einen Webserver geladen, auf den TV-Browser dann zugreifen kann.
Ziel von Teil I ist es, die Datenaufbereitung grundsätzlich zu verstehen und eine lauffähige Umgebung für die TV-Browser-Tools zu installieren.
Um das Tutorial kurz und einfach zu halten, werde ich hier nur das erklären, was für das Verständnis unbedingt notwendig ist.
Am Ende des ersten Teils werden wir eine neue Sendergruppe in TV-Browser einfügen, die die Daten von 3 fiktiven Sendern auf dem Webspace enthält.

Voraussetzungen:

Während des gesamten Tutorials benötigen wir die DOS-Box, Konsole, Terminal (oder wie immer man das Teil auf dem jeweiligen System nennen mag).
Öffnen wir also die Konsole und wechseln wir in das Verzeichnis workspace. Das ist das Verzeichnis, in dem wir nun arbeiten werden (die Bedeutung der restlichen Verzeichnisse werde ich im Laufe des Tutorials erläutern).
Wir sehen dort verschiedene Shell-Skripte - jeweils für Windows und die *nix-bash. Jedes Skript entspricht einem TV-Browser-Tool: PDSRunner, DataManager und MirrorUpdater. Sie werden uns einiges an Tipparbeit sparen.

Schritt 1: Rohdaten erzeugen mit PDSRunner:

Das erste Tool, das wir benötigen ist der PDSRunner. PDSRunner liest TV-Daten ein und konvertiert sie in ein eigenes Format für die spätere Weiterverarbeitung.

PDSRunner starten wir mit

pdsrunner

Als Ausgabe erhalten wir erstmal das hier:

usage: PDSRunner [-raw directory] [-log directory] pds ...

Was bedeutet das?
PDSRunner ist dazu da, TV-Daten "einzusammeln". Das macht er, indem er fremde "Module" (Java-Klassen) aufruft, die ihm die Daten zur Verfügung stellen.
Wir (die Entwickler) nennen diese Module PrimaryDataServices - kurz PDS. Der einzige Programmieraufwand, den ein TV-Daten-Anbieter zu leisten hat, ist die Entwicklung eines solchen PDS.
Hier kümmern wir uns aber nicht darum. Dem Tutorial liegt bereits ein PDS bei, das wir verwenden können.

Wir müssen dem PDSRunner also mitteilen, welches PDS er verwenden soll. Das machen wir so:

pdsrunner SimplePDS

SimplePDS ist ein sehr einfaches PDS. Es liest TV-Daten von einer Website und übergibt sie dem PDSRunner. Sowohl Sender als auch die Programmvorschau sind dabei frei erfunden. Es soll damit nur verdeutlicht werden, wie das Ganze grundsätzlich funktioniert. Das PDS befindet sich im Verzeichnis java.

Nachdem PDSRunner erfolgreich ausgeführt worden ist, finden wir ein neues Verzeichnis mit dem Namen raw im workspace-Verzeichnis. Dort befindet sich nun für jeden Tag und Sender jeweils eine Datei. Das sind erstmal die Rohdaten.

Die erhaltenen TV-Daten stammen von der TV-Browser-Website und sind vom Webserver automatisch generierte Programminformationen.
SimplePDS hat diese Daten von der Website ausgelesen.
PDSRunner hat SimplePDS angestoßen und die TV-Daten von SimplePDS in ein für unsere Tools verständliches Format gebracht und im Verzeichnis raw abgelegt.
Die ursprünglichen Daten können hier betrachtet werden.

Da die Rohdaten in einem binären Format und außerdem gepackt vorliegen, können wir uns den Inhalt nicht so ohne Weiteres ansehen. Zum Glück haben wir aber auch hierfür ein Tool :-)
Mit

dayprogramfiletranslator raw

werden aus den binären Daten im Verzeichnis raw Textdateien erzeugt, die wir im Verzeichnis raw/txt öffnen können um zu überprüfen, ob wir noch auf dem richtigen Weg sind...

DayProgramFileTranslator ist für die TV-Daten-Aufbereitung nicht notwendig. Es dient nur dazu, die Daten, die in einem binären Format vorliegen, darzustellen.

Schritt 2: Dateien für den Upload vorbereiten mit dem DataManager

Die Dateien können in dieser Form noch nicht verwendet werden. Der Grund dafür: TV-Browser benötigt für den Download noch weitere Informationen. Dazu gehören u.a.:

Damit sich TV-Browser auf dem Webservern zurecht findet, erstellt der DataManager nun weitere Dateien.
Vorher müssen wir den DataManager aber noch konfigurieren.

Dazu wechseln wir in das Verzeichnis config.
Dort befinden sich 3 Dateien:

Alle 3 Dateien lassen sich in einem Texteditor öffnen und bearbeiten.

Beginnen wir mit der Datei myfirstgroup.txt: Sie enthält den Namen und eine Beschreibung unserer Gruppe - das Ganze sogar mehrsprachig. Wir können die Texte (rechts vom '='-Zeichen) nach Belieben editieren.

myfirstgroup ist der Name unserer Gruppe. Dieser Name ist in SimplePDS festgelegt und soll uns hier nicht weiter stören. In Teil II werden wir einen selber ausgewählten Namen verwenden.

myfirstgroup_channellist.txt enthält eine Liste aller Sender die angeboten werden sollen (genauer: die Sender, die zur Gruppe 'myfirstgroup' gehören). Diese Datei müssen wir nicht verändern. Sie enthält bereits sinnvolle Testdaten.

myfirstgroup_mirrorlist.txt müssen wir unbedingt ändern. Sie enthält eine Liste der Server, auf denen wir die Daten unserer Sendergruppe ablegen. Üblicherweise sollte hier ein Eintrag genügen. Will man die Daten auf mehreren Servern spiegeln, so muß man in diese Datei auch alle Mirror-Server eintragen. Wie gesagt, ein Eintrag genügt erstmal.

Der Inhalt der Datei myfirstgroup_mirrorlist kann z.B. so aussehen:

http://www.tvbrowser.org/tv-daten-test/

Das Verzeichnis tv-daten-test muß dazu natürlich auf dem Webspace existieren.
Es ist unbedingt notwendig, auf dem Webserver ein eigenes Unterverzeichnis für die TV-Daten anzulegen. Das ist viel übersichtlicher. Außerdem wird später automatisch eine Datei index.html erzeugt - und wir wollen ja keine existierenden Dateien überschreiben ;-)

Jetzt ist ein guter Zeitpunkt, auf dem Webserver das Unterverzeichnis, in dem die TV-Daten abgelegt werden sollen, anzulegen.

Nachdem wir die beiden Dateien abgespeichert haben, können wir den DataManager starten:

datamanager myfirstgroup

Der DataManager muß wissen, für welche Sendergruppe(n) er die Daten aufbereitet. Wer mehrere Sendergruppen anbietet, kann alle Gruppen-IDs als Parameter übergeben (mit einem Leerzeichen getrennt).

Ist der DataManager fertig, so finden wir im Verzeichnis prepared viele neue Dateien. Das sind jene, die wir später auf den Webserver laden werden. Um Bandbreite zu sparen, sind alle Dateien komprimiert.

Was hat der DataManager genau gemacht?
Der DataManager hat die Dateien aus dem "raw"-Verzeichnis gelesen und neue Versionen davon im "prepared"-Verzeichnis erstellt. Zuvor hat er verglichen, welche Dateien bereits im "prepared"-Verzeichnis existieren und - falls nötig - Dateien für Programmänderungen erstellt. Der DataManager arbeitet bei jedem Durchlauf in diesem "prepared"-Verzeichnis.

DIE DATEIEN IM PREPARED-VERZEICHNIS DUERFEN NIEMALS GELOESCHT WERDEN. Der DataManager benötigt die Dateien im prepared-Verzeichnis um daraus die Programmänderungen zu erstellen.
Löscht man Dateien aus dem prepared-Verzeichnis, so stimmen die Daten nicht mehr mit denen zusammen, die der Benutzer bereits heruntergeladen hat. Folglich lädt TV-Browser keine Programmänderungen mehr für den entsprechenden Tag und Sender.

Damit ist alles für den dritten Schritt vorbereitet.

Schritt 3: Die Daten hochladen mit dem MirrorUpdater

Das dritte und letzte Tool - der MirrorUpdater - lädt nun die Dateien auf den Webspace hoch. Vorher müssen wir den MirrorUpdater aber noch konfigurieren; das machen wir, indem wir die Datei "mirrorupdater.ini" in einem Texteditor öffnen und anpassen. Das .ini-File habe ich schon soweit angepaßt, daß nur noch die Zugangsdaten zum FTP-Server angegeben werden müssen. "url" ist dabei der FTP-Server, "path" ist das Verzeichnis, in das die TV-Daten kopiert werden sollen (bitte unbedingt vorher händisch das Unterverzeichnis am Webserver anlegen, der MirrorUpdater macht das nicht automatisch). Außerdem braucht der MirrorUpdater natürlich Benutzername und Passwort für den FTP-Zugang. Die restlichen Zeilen müssen nicht geändert werden, trotzdem erläutere ich kurz deren Bedeutung:

dataSource.type=file
Die Dateien werden vom lokalen Dateisystem gelesen
dataSource.dir=prepared
Wir verwenden die Dateien vom Verzeichnis "prepared".
Der DataManager hat diese in Schritt 2 für uns erstellt.
dataTarget.type=ftp
Wir laden die Dateien auf einen FTP-Server.
groups=myfirstgroup
Uns interessiert nur die Sendergruppe "myfirstgroup"
mirror.weight=-1
Würden wir die Daten auf mehreren Servern spiegeln, so könnten wir hier die Gewichtung des Servers festlegen. Wir brauchen das aber hier nicht.

Nun starten wir den MirrorUpdater mit

mirrorupdater mirrorupdater.ini

Der MirrorUpdater erhält als Parameter die Konfigurationsdatei, die wir eben angepaßt haben.
Nachdem der MirrorUpdater die Dateien erfolgreich hochgeladen hat, müßten die TV-Daten nun eigentlich in TV-Browser sichtbar werden...

Schritt 4: Die neue Sendergruppe in TV-Browser aktivieren

Nachdem der MirrorUpdater seinen Dienst ohne Fehler beendet hat, vergewissern wir uns, daß die Dateien auch wirklich auf dem Server sind.

In meinem Fall öffne ich in meinem Webbrowser die URL http://www.tvbrowser.org/tv-daten-test/. Dort sollte nun eine Website sichtbar sein. Außerdem sieht man auf http://www.tvbrowser.org/tv-daten-test/myfirstgroup_info die von uns editierte Gruppen-Datei.

Die angegebenen Websites existieren natürlich nicht. Die URLs sind an den eigenen Webspace anzupassen.

Anschließend öffnen wir TV-Browser und fügen die Sendergruppe hinzu: Einstellungen --> TvDataServices --> TV-Browser --> Sendergruppen.
Auf "hinzufügen" klicken und die URL zur Sendergruppe eingeben. Wenn wir die TV-Daten zB. unter der URL http://members.meinprovider.de/myhome/tvdata erwarten, geben wir: http://members.meinprovider.de/myhome/tvdata/myfirstgroup ein.

Wenn alles geklappt hat, können wir nun die Senderliste aktualisieren und sehen dort unsere neuen Sender!

Fragen? Hat's doch nicht geklappt? Bei Problemen helfe ich gerne im Forum weiter.

Zurück zur Übersicht Weiter zu Teil II