Protocol information for ReplayTV from http://www.wirns.com/twiki/LanVideoSharing :
Discovery is done via UPNP's SSDP protocol.
Publication of shows available is done via the HttpReplayGuide protocol; the result is a GuideSnapshot.
Actual video streaming is done via the HTTPFS protocol; the files named by the GuideSnapshot are all exposed in HTTPFS's /Video export.
GuideSnapshots are also available via HTTPFS, in the /SnapshotDir export. This appears to be leftover from debugging, and isn't used by the ReplayTVs themselves. The local snapshots available there are outdated; any remote snapshots being used are also available.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The HttpReplayGuide protocol is an over-HTTP interface to the ReplayGuide?.
HttpReplayGuide URLs are in the form http://address/http_replay_guide-command?arguments.
There are three commands in the HttpReplayGuide protocol common to 4.1, 4.3, 4.5 and 5.0: get_snapshot, is_show_in_use and delete_show.
In addition HttpReplayGuide protocol is extended to seven commands with 5.0 which adds: get_play_position, change_record_options, get_manual_record_slots, and get_record_slots.
get_snapshot
get_snapshot is used to retrieve a GuideSnapshot.
A sample request looks like:
http://192.168.117.3/http_replay_guide- … 1AA5000149
It takes two arguments: guide_file_name and serial_no. guide_file_name is actually a TimeT timestamp of the latest version of the GuideSnapshot already retrieved; use 0 if there isn't one already on-hand. serial_no is the serial number of the Replay making the request.
The response, content-type text-plain, consists of a protocol single status line, followed by a body. The status line is a hexadecimal number, followed by a newline; if no errors are encountered, the value will be 0.
The body consists of either the single line guide_file_name=upToDate, or an ASCII header, a GuideSnapshot, an an ASCII footer.
The ASCII header is a series of tag=value lines, terminated by newlines, and the string #####ATTACHED_FILE_START#####. The current tags are guide_file_name, RemoteFileName and FileLength; presumably the guide_file_name value is the value to use in future guide_file_name arguments; the RemoteFileName value seems to always be the same. The FileLength value is the actual length of the GuideSnapshot.
The GuideSnapshot is sent straight, no encoding -- the text/plain claimed content-type is incorrect.
The ASCII footer is simply the string #####ATTACHED_FILE_END#####.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
HTTPFS URLs are in the form http://address/httpfs-command?arguments.
arguments are one or more arguments, separated by ampersands, each of the form name=value.
value may be contained in double quotes, which will be stripped off; these should be used for arguments that may contain special characters, such as filenames. Numeric arguments can be expressed in any format interpretable by strtoul(...,...,0); that is, decimal, octal starting with 0, or hexadecimal starting with 0x.
Vice President of Duane's Chumby Buddies Inc, Pro-Clock faction Clocks are life; we all expire sometime.
http://forum.chumby.com/viewtopic.php?id=2565