TiVo Community
TiVo Community
TiVo Community
Go Back   TiVo Community > Underground Playground > TiVo Underground
TiVo Community
Reply
Forum Jump
 
Thread Tools
Old 04-30-2008, 10:36 PM   #1
Omikron
Registered User
 
Join Date: Feb 2006
Posts: 135
TiVo UI Control via Telnet - No Hacking Required!

As many of you may have already heard, TiVo added support for Crestron systems back in software version 9.1 but there isn't a whole lot of information available about from TiVo or from Crestron.

After thinking about it for a small while, my curiosity was piqued, and I decided to try and figure out the protocol Crestron was using to talk to an unhacked TiVo, and how we non-Crestron users could somehow harness it.

As it turns out both the TiVo HD and Series3 units now listen on port 31339 for connections from a Crestron device. What is really interesting about this discovery is that this service is enabled and accessible by default on a stock Series3 running software 9.1 and up. There is NO HACKING REQUIRED to use this interface.

The protocol and its commands aren't published, but some heavy digging on Crestron and debugging the tivoapp binary resulted in some interested finds.

If you telnet into your TiVo on port 31339, you will be presented with the following:

Code:
CH_STATUS <CHANNEL> <STATUS>
This prompt reflects the current status of the TiVo and will tell you the current channel being watched, and if it's being recorded.

Once the telnet session is started, the following commands are available:


KEYBOARD - The current purpose and syntax of this command is unknown.

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 <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 <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 <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.


The following is a list of IRCODE commands that I have verified as working:

Code:
UP
DOWN
LEFT
RIGHT
SELECT
TIVO
LIVETV
THUMBSUP
THUMBSDOWN
CHANNELUP
CHANNELDOWN
RECORD
DISPLAY
DIRECTV
NUM0
NUM1
NUM2
NUM3
NUM4
NUM5
NUM6
NUM7
NUM8
NUM9
ENTER
CLEAR
PLAY
PAUSE
SLOW
FORWARD
REVERSE
STANDBY
NOWSHOWING
REPLAY
ADVANCE
DELIMITER
GUIDE
If take too long to type a command, it will result in COMMAND_TIMEOUT since the interface was designed to receive whole and complete commands, and was not designed to be used manually via telnet.

That's all I've found for now, but I'll be sure to post updates as they come along.
Omikron is offline   Reply With Quote
Old 04-30-2008, 10:37 PM   #2
Omikron
Registered User
 
Join Date: Feb 2006
Posts: 135
[reserved Post]
Omikron is offline   Reply With Quote
Old 05-01-2008, 10:39 AM   #3
bdraw
Registered User
 
Join Date: Aug 2004
Location: Tampa, FL
Posts: 456
Wow, nice job!

Now why they hell didn't I ever think of that?
I just tried it and it works great, now we just need to figure out how to query information like current channel, current recording etc.
__________________
How good can it be, if it isn't HD?
Ben Drawbaugh
Engadget HD
bdraw is offline   Reply With Quote
Old 05-01-2008, 11:29 AM   #4
tivoupgrade
Sponsor
 
tivoupgrade's Avatar
 
Join Date: Sep 2000
Location: Chicago, IL USA
Posts: 2,494
Interesting info...

That is a really interesting discovery. Just played around with it a bit on one of my Series3 and it was simple and straightforward. Would be really interesting to see what additional information emerges and how this could be applied.

Perhaps a JAVA application to remotely control the TiVo?

Perhaps a TiVoWebPlus module would give folks in 'hybrid' environments the ability to remotely control unhacked TiVos in their environment?

Could be fodder for a 'bounty' somewhere down the line?

Lou
__________________




To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.



To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.



To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.



tivoupgrade is offline   Reply With Quote
Old 05-01-2008, 11:50 AM   #5
StanSimmons
Senior Moment Member
 
Join Date: Jun 2000
Location: Flower Mound, TX, USA
Posts: 4,717
Quote:
Originally Posted by tivoupgrade View Post
That is a really interesting discovery. Just played around with it a bit on one of my Series3 and it was simple and straightforward. Would be really interesting to see what additional information emerges and how this could be applied.

Perhaps a JAVA application to remotely control the TiVo?

Perhaps a TiVoWebPlus module would give folks in 'hybrid' environments the ability to remotely control unhacked TiVos in their environment?

Could be fodder for a 'bounty' somewhere down the line?

Lou
It works on prom-hacked TiVoHD's too.
__________________
Stan

"easy as 3.141592653589793238462643383279502884179"
StanSimmons is offline   Reply With Quote
Old 05-01-2008, 12:08 PM   #6
Omikron
Registered User
 
Join Date: Feb 2006
Posts: 135
It would appear that the <STATUS> field has 3 states: LOCAL, REMOTE, and RECORDING

It would appear so far that LOCAL refers to the current tuner being watched, REMOTE refers to the tuner not being watched, and RECORDING means that the current tuner is recording.

Can someone do some testing and confirm or refute this?
Omikron is offline   Reply With Quote
Old 05-01-2008, 12:53 PM   #7
Omikron
Registered User
 
Join Date: Feb 2006
Posts: 135
Quote:
Originally Posted by bdraw View Post
Wow, nice job!

Now why they hell didn't I ever think of that?
I just tried it and it works great, now we just need to figure out how to query information like current channel, current recording etc.
The current channel is automatically reported back anytime you connect or anytime the channel changes.
Omikron is offline   Reply With Quote
Old 05-01-2008, 01:40 PM   #8
StanSimmons
Senior Moment Member
 
Join Date: Jun 2000
Location: Flower Mound, TX, USA
Posts: 4,717
interesting datapoint:

Quote:
SETCH 333
CH_FAILED INVALID_CHANNEL
333 is an invalid channel.
__________________
Stan

"easy as 3.141592653589793238462643383279502884179"
StanSimmons is offline   Reply With Quote
Old 05-01-2008, 01:44 PM   #9
StanSimmons
Senior Moment Member
 
Join Date: Jun 2000
Location: Flower Mound, TX, USA
Posts: 4,717
Quote:
Originally Posted by Omikron View Post
It would appear that the <STATUS> field has 3 states: LOCAL, REMOTE, and RECORDING

It would appear so far that LOCAL refers to the current tuner being watched, REMOTE refers to the tuner not being watched, and RECORDING means that the current tuner is recording.

Can someone do some testing and confirm or refute this?
That looks to be the case:

Quote:
SETCH 357
CH_STATUS 0357 REMOTE
CH_STATUS 0357 LOCAL
IRCODE CHANNELUP
CH_STATUS 0363 LOCAL
SETCH 357
CH_STATUS 0357 REMOTE

__________________
Stan

"easy as 3.141592653589793238462643383279502884179"
StanSimmons is offline   Reply With Quote
Old 05-01-2008, 02:23 PM   #10
Omikron
Registered User
 
Join Date: Feb 2006
Posts: 135
Quote:
Originally Posted by StanSimmons View Post
interesting datapoint:



333 is an invalid channel.
I assume your TiVo doesn't have access to channel 333? It works fine on mine.

That said, here are some other possible responses I pulled from tivoapp:

Code:
INVALID_KEY
INVALID_COMMAND
MISSING_TELEPORT_NAME
CH_FAILED
MISSING_CHANNEL
MALFORMED_CHANNEL
LIVETV_READY
NO_LIVE
INVALID_CHANNEL
COMMAND_TIMEOUT

Omikron is offline   Reply With Quote
Old 05-01-2008, 02:25 PM   #11
windracer
joined the 10k club
 
windracer's Avatar
 
Join Date: Jan 2003
Location: St. Pete, FL
Posts: 11,222
/subscribe

Pretty cool stuff! I could really mess with my wife in the other room this way.
__________________
840~Roamio Pro (TA, MoCA) + two A92~Minis, 758~Premiere XL4 (TA, MoCA)
S/old: 746~S4, 658~HDXL, 648~OLED S3, 565~TX20, 230~S2, 140~S2

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
|
To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
windracer is offline   Reply With Quote
Old 05-01-2008, 02:40 PM   #12
davezatz
Funkadelic
 
davezatz's Avatar
 
Join Date: Apr 2002
Location: Northern Virginia
Posts: 4,247
Awesome find. I linked this thread and shot a quick video demo using my iPhone as a TiVo WiFi remote. Tons of potential here...

http://www.youtube.com/watch?v=HUPy-DPaXec

Last edited by davezatz : 05-01-2008 at 05:41 PM.
davezatz is offline   Reply With Quote
Old 05-01-2008, 02:52 PM   #13
StanSimmons
Senior Moment Member
 
Join Date: Jun 2000
Location: Flower Mound, TX, USA
Posts: 4,717
Quote:
Originally Posted by Omikron View Post
I assume your TiVo doesn't have access to channel 333? It works fine on mine.
333 is not an active channel on my setup.
__________________
Stan

"easy as 3.141592653589793238462643383279502884179"
StanSimmons is offline   Reply With Quote
Old 05-01-2008, 02:53 PM   #14
Omikron
Registered User
 
Join Date: Feb 2006
Posts: 135
Quote:
Originally Posted by StanSimmons View Post
333 is not an active channel on my setup.
Well then that makes sense. ;-)
Omikron is offline   Reply With Quote
Old 05-01-2008, 03:28 PM   #15
WinBear
Konner Kringle
 
WinBear's Avatar
 
Join Date: Aug 2000
Location: Carrollton, Tx, USA
Posts: 6,431
You could "page" the person watching the TiVo in another part of the house by sending a pause, a thumbs up, and a thumbs down or something like that.
__________________
Tommy in Carrollton
WinBear is offline   Reply With Quote
Old 05-01-2008, 03:35 PM   #16
Omikron
Registered User
 
Join Date: Feb 2006
Posts: 135
Quote:
Originally Posted by WinBear View Post
You could "page" the person watching the TiVo in another part of the house by sending a pause, a thumbs up, and a thumbs down or something like that.
That...would be incredibly lazy! ;-)

I imagine in most houses where such a feature would be remotely useful are already big enough where they have an intercom system installed.
Omikron is offline   Reply With Quote
Old 05-01-2008, 03:42 PM   #17
PaulS
Registered User
 
Join Date: Sep 2002
Location: Southern NH
Posts: 582
/subscribe

Really cool stuff!

Pumping commands through CURL would probably avoid the problems of having the commands time-out.

Paired with some guide data, you could completely replace the TiVo's own scheduling functionality with a PC-based version. Redundant, but interesting.
PaulS is offline   Reply With Quote
Old 05-01-2008, 03:57 PM   #18
KRKeegan
Im lost and confused
 
KRKeegan's Avatar
 
Join Date: Jul 2004
Location: Los Angeles, CA
Posts: 215
I am very interested in seeing how this develops. I agree with the general sentiment that there is probably some nice functionality that could be built using this, but I can't think of one yet.
__________________

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

A much better place to receive pyTivo help and updates.

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.

A python real time video transcoding server for TiVo.
KRKeegan is offline   Reply With Quote
Old 05-01-2008, 04:11 PM   #19
Omikron
Registered User
 
Join Date: Feb 2006
Posts: 135
Quote:
Originally Posted by KRKeegan View Post
I am very interested in seeing how this develops. I agree with the general sentiment that there is probably some nice functionality that could be built using this, but I can't think of one yet.
Well, the only functionality I can think of is just TiVo control over TCP/IP which is exactly what it was designed for. The main advantage here is that we are now able to create our own interfaces for it. I imagine it won't be long before someone develops a small iPhone app that mimics TivoWebPlus's WebRemote module.

Some might also be interested in a Mac OS X Widget or a Windows Vista Gadget that does the same.
Omikron is offline   Reply With Quote
Old 05-01-2008, 04:35 PM   #20
enthalpy
Registered User
 
enthalpy's Avatar
 
Join Date: Oct 2006
Location: NJ
Posts: 40
Nice. This makes so much sense. I can't wait to get home and try it.

But telnet? Will ssh work? telnet is so out of favor due to lack of security. My Nokia N810 doesn't have telnet built in.
__________________
- Series 2 for SD content
- Series 3 for cheap HD content on Comcast
- TTG w/Sonic burning DVDs
enthalpy is offline   Reply With Quote
Old 05-01-2008, 04:37 PM   #21
ashu
User title defunct
 
ashu's Avatar
 
Join Date: Nov 2002
Location: MD
Posts: 9,158
Wait ... CoOperative Scheduling (between multiple HD/S3 TiVos), perchance!?
Assuming access to the SP list, ToDo List et al can be wrangled. I don't see it yet in the above 'discovered' (?) set of commands
__________________

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.
(Too many TiVos!)

To view links or images in signatures your post count must be 10 or greater. You currently have 0 posts.


Ad hoc, ad loc, and quid pro quo!
So little time! So much to know!
ashu is offline   Reply With Quote
Old 05-01-2008, 04:38 PM   #22
enthalpy
Registered User
 
enthalpy's Avatar
 
Join Date: Oct 2006
Location: NJ
Posts: 40
Quote:
Originally Posted by Omikron View Post
That...would be incredibly lazy! ;-)

I imagine in most houses where such a feature would be remotely useful are already big enough where they have an intercom system installed.
Oh, I know: instead of "I've fallen and I can't get up", I can send a SETCH 911, and if my girlfriend sees that the TV is tuned to 911, she'll know that's there's an emergency. ;-)
__________________
- Series 2 for SD content
- Series 3 for cheap HD content on Comcast
- TTG w/Sonic burning DVDs
enthalpy is offline   Reply With Quote
Old 05-01-2008, 04:55 PM   #23
Omikron
Registered User
 
Join Date: Feb 2006
Posts: 135
Quote:
Originally Posted by enthalpy View Post
Nice. This makes so much sense. I can't wait to get home and try it.

But telnet? Will ssh work? telnet is so out of favor due to lack of security. My Nokia N810 doesn't have telnet built in.
SSH would definitely not work. In fact, I believe the actual protocol being used is RAW but Telnet is pretty darn close so that works too.

There is no security involved in this because, again, it's just remote control over TCP/IP. There is absolutely no reason to complicate matters by introducing authentication or encryption.
Omikron is offline   Reply With Quote
Old 05-01-2008, 05:10 PM   #24
StanSimmons
Senior Moment Member
 
Join Date: Jun 2000
Location: Flower Mound, TX, USA
Posts: 4,717
Quote:
Originally Posted by Omikron View Post
SSH would definitely not work. In fact, I believe the actual protocol being used is RAW but Telnet is pretty darn close so that works too.

There is no security involved in this because, again, it's just remote control over TCP/IP. There is absolutely no reason to complicate matters by introducing authentication or encryption.
Perhaps nc (netcat) should be used instead of telnet then. Or puTTY on Windows....
__________________
Stan

"easy as 3.141592653589793238462643383279502884179"
StanSimmons is offline   Reply With Quote
Old 05-01-2008, 05:16 PM   #25
Omikron
Registered User
 
Join Date: Feb 2006
Posts: 135
Quote:
Originally Posted by StanSimmons View Post
Perhaps nc (netcat) should be used instead of telnet then. Or puTTY on Windows....
If I recall correctly warewolf tried using netcat and it locked up the TiVo UI. puTTY works fine in RAW mode.
Omikron is offline   Reply With Quote
Old 05-01-2008, 06:04 PM   #26
PaulS
Registered User
 
Join Date: Sep 2002
Location: Southern NH
Posts: 582
Quote:
Originally Posted by ashu View Post
Wait ... CoOperative Scheduling (between multiple HD/S3 TiVos), perchance!?
Assuming access to the SP list, ToDo List et al can be wrangled. I don't see it yet in the above 'discovered' (?) set of commands
Probably won't see it either.

However, that doesn't rule out co-operative scheduling. You'd probably have to hand over complete recording and scheduling control to the computer, though. In order to ensure that the TiVo and computer wouldn't try to start conflicting or over-lapping programs, the computer would likely have to have complete control. That means no SeasonPasses or ARWL's on the TiVo's.

You'd have to modify a computer application that had access to guide data (MythTV or something similar) so that it would emit telnet commands to one of your TiVo's, rather than try to record the program direct to disk with a tuner. You'd then additionally have to feed it a list of usable TiVo's to use (including how many tuners they have), as well as a list of programs to record (similar to a Season Pass Manager).

So, it's possible, but would be a significant bit of work...
PaulS is offline   Reply With Quote
Old 05-01-2008, 06:47 PM   #27
Jasoco
Registered User
 
Join Date: Mar 2004
Posts: 116
Am I doing something wrong?

I'm on OS X. I open up my Terminal and type "telnet". I get the prompt.

>

What do I do from here? I try typing "open" and it asks for an IP. So I type "192.168.1.108:31339". Am I typing that wrong? 192.168.1.108 is my IP on my LAN, 31339 is the port. But it says "nodename nor servname provided, or not known".

If I leave off the port number it sits there "trying".

What exactly am I supposed to do? Do I have to turn something on first? Do I need to open a port on my router?
Jasoco is offline   Reply With Quote
Old 05-01-2008, 06:54 PM   #28
ThAbtO
TiVoholic by the bay
 
ThAbtO's Avatar
 
Join Date: Apr 2000
Location: SF Bay Area
Posts: 4,556
I was able to use this on my THD and if I sent 'SETCH 4' it switches to ch 4, while 'SETCH 4 3' goes to ch 4.3, but when I tried to use a period or dash to set the digital channel and that didn't work.

FYI, This didn't work for the S2 though.
__________________
Series 2 (Retired, sold)
TiVo HD 1TB (157 HD Hrs, PLS, "S3HD")
Roamio, Oh Roamio!

~~~~~

The TiVo Apocalypse begins on Sat 2013 Feb 16 00:00 GMT!

Last edited by ThAbtO : 05-01-2008 at 07:01 PM.
ThAbtO is offline   Reply With Quote
Old 05-01-2008, 06:57 PM   #29
ThAbtO
TiVoholic by the bay
 
ThAbtO's Avatar
 
Join Date: Apr 2000
Location: SF Bay Area
Posts: 4,556
Quote:
Originally Posted by Jasoco View Post
What do I do from here? I try typing "open" and it asks for an IP. So I type "192.168.1.108:31339". Am I typing that wrong? 192.168.1.108 is my IP on my LAN, 31339 is the port. But it says "nodename nor servname provided, or not known".

If I leave off the port number it sits there "trying".

What exactly am I supposed to do? Do I have to turn something on first? Do I need to open a port on my router?

Try using a space instead of a colon ':'
__________________
Series 2 (Retired, sold)
TiVo HD 1TB (157 HD Hrs, PLS, "S3HD")
Roamio, Oh Roamio!

~~~~~

The TiVo Apocalypse begins on Sat 2013 Feb 16 00:00 GMT!
ThAbtO is offline   Reply With Quote
Old 05-01-2008, 07:01 PM   #30
PaulS
Registered User
 
Join Date: Sep 2002
Location: Southern NH
Posts: 582
Crestron has a page up about this "module" of theirs. You need to have a login to download the module, but they do have a screen shot, which should illustrate the functions that are currently supported :



Looks like most of the bases have already been covered, but not all of them. For instance, the Crestron image shows an "aspect" and an "info" control.
PaulS is offline   Reply With Quote
Reply
Forum Jump




Thread Tools


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Advertisements

TiVo Community
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
vBulletin Skins by: Relivo Media

(C) 2013 Magenium Solutions - All Rights Reserved. No information may be posted elsewhere without written permission.
TiVoŽ is a registered trademark of TiVo Inc. This site is not owned or operated by TiVo Inc.
All times are GMT -5. The time now is 09:30 AM.
OUR NETWORK: MyOpenRouter | TechLore | SansaCommunity | RoboCommunity | MediaSmart Home | Explore3DTV | Dijit Community | DVR Playground |