PROGRAMMDATEN FÜR TV-BROWSER ANBIETEN

unter Verwendung der TV-Browser-Tools

Teil III

Autor: Til Schneider

Das ist Teil III des TV-Daten-anbieten-Tutorials. Es wird davon ausgegangen, daß Teil I und II erfolgreich durchgearbeitet worden sind. Wir werden wieder die selben Tools verwenden.

In Teil I wurde ein Java-Programm genutzt, um die TV-Daten von der eigentlichen Quelle einzusammeln (PrimaryDataService oder kurz PDS genannt). In Teil II wurden die Daten von Hand eingegeben. Dieses Tutorial ist für diejenigen gedacht, die einen Datensammler schreiben wollen, jedoch in einer anderen Sprache als Java.

Die Aufbereitung mit einem Nicht-Java-Datensammler erfolgt in zwei Phasen:

  1. Der Datensammler erzeugt eine XML-Datei mit allen Programmdaten.
  2. Die XML-Datei wird mit Hilfe eines PDS, das diese Datei lesen kann, wie gewohnt verarbeitet.

Da wir mit einer bereits fertigen XML-Datei arbeiten und uns nur auf die zweite Phase konzentrieren, ist auch in diesem Teil - wie in den vorherigen - keine Programmierarbeit erforderlich.

Wie die XML-Datei erzeugt wird, ist allein Sache des Programmierers des Datensammlers. Zur Not kann die Datei auch von Hand erstellt werden. Aber wie gesagt: Es gibt bereits eine fertige Datei, die wir nutzen können.

Die Datei TvData.xml

Als XML-Format wird XMLTV eingesetzt. An manchen Stellen, wo TV-Browser Informationen unterstützt, die in XMLTV kein Äquivalent haben, wurde das Format etwas aufgebohrt. Diese Zusatzmöglichkeiten müssen jedoch nicht genutzt werden, so dass für die TV-Daten auch gültiges XMLTV genutzt werden kann.

Das ist die Datei, die vom Datensammler automatisch erstellt werden soll. Hier werden alle Programmdaten abgelegt.

Wir öffnen nun die Datei TvData.xml in einem Texteditor. Diese Datei enthält für jede Sendung ein <programme>-Tag. In welcher Reihenfolge diese Tags in der Datei stehen ist dabei vollkommen egal.

Das erste Beispieltag hat wieder vor jedem Tag einen Beschreibungskommentar. Dieses erste Tag zeigt alle Informationen, die man zu einer Sendung angeben kann. Aber keine Angst: So viel muss man nicht angeben, aber man kann es. Alles was man auf jeden Fall angeben muss, ist in der Beschreibung mit einem (required) gekennzeichnet. Das ist die Channel-ID, die Startzeit und der Titel der Sendung.

Ein minimales Sendungs-Tag sieht daher z.B. so aus:

<programme channel="test24_ch" start="200407101100">
  <title>Nachrichten</title>
</programme>

Die Channel-ID besteht aus zwei Teilen: der eigentlichen ID sowie einem zweistelligen Länderkürzel.

Alle Zeiten werden in XMLTV nach dem folgenden Schema angegeben:

200407101100 bedeutet daher: 10. Juli 2004 um 11:00 Uhr.

Momentan sind noch sehr wenige Sendungen eingetragen. Also ruhig noch ein paar mehr dazuschreiben, damit nachher ein bißchen mehr zu sehen ist. Dabei muss darauf geachtet werden, dass die verwendeten Channel-IDs auch in der [gruppenID]_channels.txt (im config-Verzeichnis) definiert wurden!

Wenn genug Datenmaterial zusammen ist, speichern wir die Datei ab. Auch die Änderungen in der TvChannels.xml müssen gespeichert werden.

Jetzt können wir einen ersten Probelauf wagen. Wir starten also wie auch in Teil I und II den PDSRunner mit

pdsrunner XmlTvPDS

Wie gewohnt finden wir eventuelle Fehlermeldungen im Verzeichnis pdslog. Wenn alles funktioniert hat liegen die Rohdaten im Verzeichnis raw. Jetzt müssen die Daten nur noch vom DataManager aufbereitet und vom MirrorUpdater hochgeladen werden. Diese müssen jedoch wieder zuerst konfiguriert werden. Das wird genauso gemacht, wie in Teil II im Abschnitt Konfiguration von DataManager und MirrorUpdater beschrieben. Statt dem ExcelPDS muss natürlich das XmlTvPDS verwendet werden.

Regelmäße Aktualisierung

Wie immer müssen die Daten auf dem Server regelmäßig aktualisiert werden. Dazu müssen wir bei jeder Aktualisierung zuerst den Datensammler ausführen, der die neue TvData.xml erstellt. Danach werden die TV-Daten-Tools ausgeführt:

pdsrunner XmlTvPDS
datamanager [mychannelgroupID]
mirrorupdater mirrorupdater.ini

Wichtig: Damit verhindert wird, daß TV-Browser auf Server zugreift, deren TV-Daten veraltet sind, wird auf jedem Server eine Datei mit dem Namen lastupdate gespeichert (dies übernimmt der MirrorUpdater für uns).
TV-Browser lädt keine Daten von Servern, die länger als 5 Tage keine neuen Daten erhalten haben. Ein Daten-Anbieter muß also mindestens alle 5 Tage aktualisieren.

Der DataManager benötigt die Dateien im prepared-Verzeichnis um daraus die Programmänderungen zu erstellen. Daher dürfen die Dateien im prepared-Verzeichnis niemals gelöscht werden.
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.

Zurück zu Teil II Übersicht