Archiv verlassen und diese Seite im Standarddesign anzeigen : Neues Tool: Viewer für EPG-Daten auf der Box
Ich konnte es nicht lassen und hab mir das Format der EPG-Daten, die auf der Box unter /data/SI liegen, angesehen.
Scheint nicht allzu komplex zu sein. Drum schrob ich kurzerhand ein kleines Windows-Programm, das diese Dateien schön anzeigt.
Damit die Sender zugeordnet werden können, ist zwingend notwendig, dass die /etc/services.txt ebenfalls vorhanden ist. Da stehen alle Sender mit ihren IDs drin, die dann den entscheidenden Hinweis auf die richtigen EPG-Dateien geben.
Damit das Tool funktioniert, muss im SI-Unterordner der gesamte Inhalt von /data/SI und /etc/services.txt vorhanden sein. Im ZIP sind als Beispiel die Dateien von meiner Box enthalten.
http://www.quadhead.de/download.php?fname=EPGReader.zip
(863 KB)
Probierts mal aus, da könnte man sicher noch was draus machen.
Meine Frage: Wie bekommt man wohl am elegantesten die EPG-Dateien von der Box herunterkopiert? Über telnet selbst kenne ich keine Methode, die Binärdateien transferiert. Es sollte möglichst automatisch aus meinem Programm heraus funktionieren, ansonsten ist das Programm ja nicht wirklich gut benutzbar.
Später sollte dann über so eine Oberfläche die Timerprogrammierung stattfinden können. Da ist das Tool hier ja schon mal ein Anfang.
Ciao,
tier.
bebibaer
06.01.2005, 15:24:37
Ich konnte es nicht lassen und hab mir das Format der EPG-Daten, die auf der Box unter /data/SI liegen, angesehen.
Scheint nicht allzu komplex zu sein. Drum schrob ich kurzerhand ein kleines Windows-Programm, das diese Dateien schön anzeigt.
Es wäre schön, wenn du deine Erkenntnisse über den Dateiaufbau veröffentlichst.
Meine Frage: Wie bekommt man wohl am elegantesten die EPG-Dateien von der Box herunterkopiert? Über telnet selbst kenne ich keine Methode, die Binärdateien transferiert. Es sollte möglichst automatisch aus meinem Programm heraus funktionieren, ansonsten ist das Programm ja nicht wirklich gut benutzbar.
Solange es keiner schafft, irgendeinen kleinen Dämon für HTTP oder FTP auf der Box zu kompilieren, bleiben nur TELNET und TFTP übrig.
Es wäre schön, wenn du deine Erkenntnisse über den Dateiaufbau veröffentlichst.
Au ja:
Für jeden Sender gibt es immer drei Dateien eit_????????????, eit_????????????_idx und eit_????????????_long.
In der ersten ist eine Kurzübersicht drin, die nur Anfangszeiten und Titel der Sendungen enthält. Ist wohl dafür gedacht, damit man schnell eine Liste anzeigen kann auf der Box. Da alle Daten in dieser Datei aber auch in den nächsten beiden vorkommen, lasse ich diese mal links liegen.
"eit_????????????_idx" ist recht simpel aufgebaut: Lauter Datensätze à 8 Byte. Die ersten 4 Bytes sind die Startzeit der Sendung als Unix-Timestamp, die zweiten 4 Bytes sind der Offset der Details zu dieser Sendung in "eit_????????????_long".
In der "eit_????????????_long"-Datei springt man zum richtigen Offset aus der idx-Datei und kann ab da die drei Strings für Titel, Art/Herkunft und Beschreibung auslesen. Jeweils vor dem String ist die Länge desselben als Word (2 Bytes) codiert.
Ist doch recht übersichtlich...
Wie findet man nun raus, welches Dateientripel zu welchem Sender gehört?
Dazu nimmt man die /etc/services.txt und schaut sich die ersten 24 Bytes jeder Zeile an, da steht nämlich der Sendername drin. Weiter hinten in jeder Zeile stehen 3x4 Buchstaben, jeweils durch Space getrennt. Hängt man Zeichen 113-116, 103-106 und 108-111 aneinander, hat man die 12 Fragezeichen, die den Dateinamen komplettieren.
Jetzt n Bier...
Manos
07.01.2005, 10:19:42
Die Idee finde ich klasse... mir wäre eine übersichtichere Programmierung von Sendungen vom PC aus auch viel angenehmer :)
noch ein Paar Anregungen wonach man in diesem Zusammmenhang noch suchen könnte:
- Auslesen der bisherigen Programmierungen und Berechnung des Speicherbedarfs.
- Manuelle Programmierung z.B. bei Programmverschiebungen (hatte ich leider in letzter Zeit häufiger :( ). Wenn aus dem EPG feste Werte in die Aufnahmedatei übernommen werden (feste Start- und Stopzeit) vielleicht noch eine Editiermöglichkeit basteln dass man eine Sendung z.B. 20 min länger laufen läßt.
- Prüfung, ob programmierte Sendung auf das Speichermedium noch drauf passt und ggf. Warnmeldung ausgeben.
- Ändern des Speicherziels (wenn dann irgendwann mal Zeit ist nach sowas unbedeutenden zu suchen - denn dann kann man auch ein PC-Programm schreiben weches vom PC aus die gesamte Konfiguration ermöglicht :p)
Da ich von Linux leider keine Ahnung habe und auch sonst nicht so der Top-Programmierer bin kann ich leider nur (mehr oder weniger gute) Vorschläge machen :D
Lemmi
08.01.2005, 00:26:30
Update 2005-01-08 11:43
Ich habe ein kleines Script (siehe Anhang) erstellt, welches die EPG-Daten alle 5 Minuten in ein Zielverzeichnis freier Wahl kopiert. Einfach nach /var/etc kopieren und ans Ende der Datei /var/etc/start.sh (ersatzweise /var/etc/rc) die Zeile '/bin/sh /var/etc/export-epg &' schreiben. Sobald das Script ohne tadel läuft, werde ich es in mein telnet-Tool mit verpacken.
Alles auf eigene Gefahr. Bitte Anmerkungen lesen!!! :eek:
Die Datei info.txt enthält weitere Infos:
info.txt
Diese Datei
export-epg
Das Export-Script. Das Script wird nach /var/etc kopiert und
mit '/bin/sh /var/etc/export-epg &' gestartet.
Dieses Script ist auch in etc.tar.bz2 enthalten.
start.sh etc.tar.bz2
Zwei Dateien zur Modifizierung meines Telnet-Patches.
Die beiden Dateien müssen nach /var/etc kopiert werden.
Beim nächsten Start wird 'export-epg' automatisch gestartet.
Das Script export-epg sieht nun so aus:
#!/bin/sh
dest='/var/media/PC1/EPG'
source=/data/SI
services=/var/etc/services.txt
home="`pwd`"
mask='20[0-9][0-9]-[01][0-9]-[0-3][0-9]-[0-5][0-9][0-5][0-9][0-5][0-9]'
while true ; do
if test -d "$dest" ; then
cd $dest
if test "`pwd`" == "$dest" ; then
n=$((`ls -d $mask|wc -l` - 2))
if (( $n > 0 )) && test "`pwd`" == "$dest" ; then
rm -r `ls -dtr $mask | head -n $n`
fi
mkdir -p temp
cp -p $source/eit_* $services temp
mv temp `date +%Y-%m-%d-%H%M%S`
fi
cd $home
fi
### 10 Minuten warten
sleep 600
done
Anmerkungen:
dest=/var/media/PC1/EPG
Dieses ist das Zielverzeichnis, indem gemäß der Variable 'mask' gelöscht wird. Deshalb sollte das Verzeichnis mit Bedacht ausgesucht werden. Am besten sollte es keine anderen Daten enthalten!
Der folgende Zyklus wird alle 10 Minuten durchgeführt.
Das Zielverzeichnis muß existieren, sonst wird weiter gewartet. Damit wird auf dei Verfügbarkeit des Ziellaufwerkes reagiert.
Alle alte Dateien und Verzeichnisse gemäß 'mask' werden entfernt. Zurückbleiben die zwei jüngsten Unterverzeichnisse.
Dann wird das Verzeichnis temp erzeugt und die EPG-Daten (/data/SI/eit_*) kopiert.
Auch die Datei /var/etc/services.txt wird kopiert.
Erst wenn alle Daten enthalten sind, dann erhält das Verzeichnis temp seinen endgültigen Namen.
Ein externes Programm sollte wie folgt vorgehen:
Das jüngste Verzeichnis mit Zeitstempel als Namen heraussuchen und die Daten auswerten.
Bei einer verkrüppelten Datei kann es auf das zweitjüngste Verzeichnis als Erssatz zurückgreifen.
Alles auf eigene Gefahr. Bitte Anmerkungen lesen!!! :eek:
bluescreeny
01.02.2005, 09:02:44
Hi ;)
Finde ich TOP , wie hier geschafft wird ! ! ! ! Ob das Siemens irgendwann anerkennt ? Wäre nur gerecht ! ! ! :)
bluescreeny
01.02.2005, 09:32:43
Damit die Sender zugeordnet werden können, ist zwingend notwendig, dass die /etc/services.txt ebenfalls vorhanden ist....
Es ist die /var/etc/services.txt gemeint ?
Es ist die /var/etc/services.txt gemeint ?Genau die.
kiskadee
25.09.2005, 09:50:09
Wie sieht es denn mit dem umgekehrten Weg aus? Könnt man nun nicht Daten aus einem anderen EPG konvertieren und der Box unterjubeln? Insbesondere für die Sender der RTL-GRuppe wäre das doch interessant...
Michael
Thorvard
25.09.2005, 16:00:05
Meine Frage: Wie bekommt man wohl am elegantesten die EPG-Dateien von der Box herunterkopiert? Über telnet selbst kenne ich keine Methode, die Binärdateien transferiert.
Kompliziert aber möglich: x-modem oder z-modem protokoll über telnet benutzen, so hab ich früher per modem dateien von der RS6000 der Universität zu mir nach hause gezogen... mit 300 Baud Akkustikkoppler :D
Quellcodes dafür sollte man er-googlen können.
PS: Nachdem der Nasa-hack über meine Uni gelaufen war, brauchte man ein Login für die Modem zugänge... heutzutage undenkbar das es sowas mal gab :D
Powered by vBulletin® Version 4.1.9 Copyright ©2012 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.