Tivo Control over IP
JohnMichnr
Posts: 279
Hey - anybody out there doing any control of a Tivo unit over IP (port 31339)? I was just talking to a non-AV guy who said he was playing with it but was getting weird results.
Wondered if anybody out here was activley doing it or knows anythign about it.
Wondered if anybody out here was activley doing it or knows anythign about it.
0
Comments
http://tivocommunity.com/tivo-vb/showthread.php?t=392385
Don't know if that helps - not what you really wanted.
Unfortunately I've already been there and took whatever info was useful. I was just wondering if there was some sort of official documetation out there. It seems a little odd that TiVo will tells you this is possible, they gives you an onscreen prompt to permit remote access for this purpose and then they don't publish anything to expalin how to do it. Even if look at the link you provided they appear to be guessing and figuring things out via trial and error.
Here in the UK we're stuck on TiVo version one but many have added an ethernet card and Tivoweb modules that hen become a web interface to tivo. Once this has been done, opening an IP client to send these strings works like a charm. My home system has been running like this for several years.
You'll see at the bottom of this list some preset calls. These are not stored in tivo, its just another feature that some kind hacker included to make a direct channel selection without going through the on-screen menus.
I hope this is useful.
Jim.
DEFINE_CALL 'TIVO CONTROLS' (TIVO_BUTTON)
{
SELECT
{
ACTIVE(TIVO_BUTTON=1): TIVO_SEND='play' // PLAY
ACTIVE(TIVO_BUTTON=2): TIVO_SEND='pause' // PAUSE
ACTIVE(TIVO_BUTTON=3): TIVO_SEND='slow' // SLOW
ACTIVE(TIVO_BUTTON=4): TIVO_SEND='forward' // FWD
ACTIVE(TIVO_BUTTON=5): TIVO_SEND='reverse' // REW
ACTIVE(TIVO_BUTTON=6): TIVO_SEND='skipforward' // SKIP FWD
ACTIVE(TIVO_BUTTON=7): TIVO_SEND='exit' // RETURN
ACTIVE(TIVO_BUTTON=10): TIVO_SEND='num0' // 0
ACTIVE(TIVO_BUTTON=11): TIVO_SEND='num1' // 1
ACTIVE(TIVO_BUTTON=12): TIVO_SEND='num2' // 2
ACTIVE(TIVO_BUTTON=13): TIVO_SEND='num3' // 3
ACTIVE(TIVO_BUTTON=14): TIVO_SEND='num4' // 4
ACTIVE(TIVO_BUTTON=15): TIVO_SEND='num5' // 5
ACTIVE(TIVO_BUTTON=16): TIVO_SEND='num6' // 6
ACTIVE(TIVO_BUTTON=17): TIVO_SEND='num7' // 7
ACTIVE(TIVO_BUTTON=18): TIVO_SEND='num8' // 8
ACTIVE(TIVO_BUTTON=19): TIVO_SEND='num9' // 9
ACTIVE(TIVO_BUTTON=20): TIVO_SEND='select' // SELECT or Enter
ACTIVE(TIVO_BUTTON=21): TIVO_SEND='up' // UP
ACTIVE(TIVO_BUTTON=22): TIVO_SEND='down' // DOWN
ACTIVE(TIVO_BUTTON=23): TIVO_SEND='left' // LEFT
ACTIVE(TIVO_BUTTON=24): TIVO_SEND='right' // RIGHT
ACTIVE(TIVO_BUTTON=30): TIVO_SEND='tivo' // TIVO
ACTIVE(TIVO_BUTTON=31): TIVO_SEND='standby' // OFF
ACTIVE(TIVO_BUTTON=32): TIVO_SEND='livetv' // LIVE TV
ACTIVE(TIVO_BUTTON=33): TIVO_SEND='auxbypass' // AUX
ACTIVE(TIVO_BUTTON=34): TIVO_SEND='vcrbypass' // VCR
ACTIVE(TIVO_BUTTON=35): TIVO_SEND='surfup' // CH. UP
ACTIVE(TIVO_BUTTON=36): TIVO_SEND='surfdown' // CH. DOWN
ACTIVE(TIVO_BUTTON=37): TIVO_SEND='tivo tivo' // Now Showing
ACTIVE(TIVO_BUTTON=38): TIVO_SEND='pageup' // Page up
ACTIVE(TIVO_BUTTON=39): TIVO_SEND='pagedown' // Page down
ACTIVE(TIVO_BUTTON=40): TIVO_SEND='record' // Record
ACTIVE(TIVO_BUTTON=41): TIVO_SEND='1/0/1' // BBC1 Direct
ACTIVE(TIVO_BUTTON=42): TIVO_SEND='1/0/3' // ITV Direct
ACTIVE(TIVO_BUTTON=43): TIVO_SEND='3/0/1' // Movie Direct
ACTIVE(TIVO_BUTTON=44): TIVO_SEND='5/0/1' // Sky News Direct
}
CALL 'TIVO_CONTROL'
}
DATA_EVENT[dvTIVOWEB]
{
ONLINE: (* Socket connected *)
{
ON[TIVO_CONNECTED]
SEND_STRING dvTIVOWEB,"'GET /sendkey/',TIVO_SEND,' HTTP/1.1',13,10,13,10,'Host: 192.168.0.150',13,10,13,10"
}
OFFLINE:
{
OFF[TIVO_CONNECTED]
CLEAR_BUFFER TIVO_BUFFER
}
STRING:
{
}
ONERROR:
{
IF(DATA.Number <> 0)
{
SEND_STRING 0,"getSocketError(DATA.Number)"
}
}
}
DEFINE_CALL 'TIVO_CONTROL'
{
CLEAR_BUFFER TIVO_BUFFER
IP_CLIENT_OPEN(dvTIVOWEB.Port,'192.168.0.150',80,IP_TCP)
SEND_COMMAND dvDEBUG,"'Tivo send =',TIVO_SEND"
}
(copied from a TiVo forum link previously posted and placed in arrays)
DEFINE_CONSTANT //COMMANDS CHAR TiVo_CMD[][12] = { 'UP', //1 'DOWN', //2 'LEFT', //3 'RIGHT', //4 'SELECT', //5 'TIVO', //6 'LIVETV', //7 'THUMBSUP', //8 'THUMBSDOWN', //9 'CHANNELUP', //10 'CHANNELDOWN', //11 'RECORD', //12 'DISPLAY', //13 'DIRECTV', //14 'NUM0', //15 'NUM1', //16 'NUM2', //17 'NUM3', //18 'NUM4', //19 'NUM5', //20 'NUM6', //21 'NUM7', //22 'NUM8', //23 'NUM9', //24 'ENTER', //25 'CLEAR', //26 'PLAY', //27 'PAUSE', //28 'SLOW', //29 'FORWARD', //30 'REVERSE', //31 'STANDBY', //32 'NOWSHOWING', //33 'REPLAY', //34 'ADVANCE', //35 'DELIMITER', //36 'GUIDE', //37 'INFO', //38 'WINDOW', //39 '', //40 '', //41 '', //42 '', //43 '', //44 '' //45 can go up to and include button 80 } ; DEFINE_CONSTANT //COMMAND TYPES CHAR TiVo_CMD_TYPE[][12] = { 'KEYBOARD', //1 //KEYBOARD - The current purpose and syntax of this command is unknown. 'TELEPORT', //2 //TELEPORT <PLACE>- I'm not sure why this command exists, because I believe anything that //TELEPORT does can also be accomplished via IRCODE. That said, the four currently known //places you can "teleport" to are TIVO, LIVETV, GUIDE, and NOWPLAYING. 'SETCH', //3 //SETCH <CHANNEL> - This command will change the channel on the current tuner being watched //to the channel number defined. If the current tuner is recording a program, it will change the other tuner. //If both tuners are recording, the channel will not change and the TiVo will respond with //"CH_FAILED RECORDING "Show Title". Using this command when a recording is being played back will result in "CH_FAILED NO_LIVE". 'FORCECH', //4 //FORCECH <CHANNEL> - This command will force the current tuner to the tune the desired channel regardless //of what it's doing. If a recording is being recorded it will cancel the recording and change the channel without confirmation. 'IRCODE' //5 //IRCODE <COMMAND> - IRCODE seems to mimic the old "sendkey" command in almost every way. While it can't handle multiple commands on one line, //almost all of the commands listed in sendkey.tcl are valid and working. } ;For the most commands you'll need to create a string like 'IRCODE CHANNELUP'. The other type commands are for what they state in the comments. SETCH 305.
http://www.tivo.com/assets/images/abouttivo/resources/downloads/brochures/TiVo_TCP_Network_Remote_Control_Protocol_073108.pdf
dont know if anyone still wants this or needs it, but here is something I whipped together and tested on a series 3 tivo. It has everything you would expect + a keyboard for text entry.
Jimmy