TiVoCommunity.com
(c)opyright 1995-2005 All rights reserved
indexcheckTC
This area is a static history of posts in the TiVo Community Forum Archive.
This archive history was made for the simple indexing of search sites like
Google.
Pages:1
Scripting Tivo with TCL or C
(Click here to view the original thread with full colors/images)
Posted by: Fideist11
I'm a computer science major at Va Tech and I was hoping to find some documentation or even rudimentary help as to how to programmatically control the features of Tivo through TCL or C. I am experienced with development in TCL and C, so I don't need any basic program-tutorial but rather some code libraries or simple documentation. It would be *so* nice to have some scripting access to the basic abilities of tivo, instead of being trapped in the crappy MyWorld tivo gui.
Imagine being able to pad a program with 1 minute and *then* to be able to actually record a different program with the remaining 29 minutes instead of having to wait for the next :30 or :00 time-interval.
Or if two season-passes conflict, but the program with higher priority is being rerun again later that evening, wouldn't it be sweet if the software could detect this, and intelligently record the lower-priority program first, with the aforeknowledge that it can get the higher-priority program later. (Southpark conflicts with Samurai Jack on wednesday nights this way...I'd like it to take Samurai Jack at 10pm, since it only comes on once a day, and to grab the new southpark at midnight, or 4am, or any of the next 8 times they get run each week.)
Or how about the ability to actually *specify* what shows are new and which are "reruns" since the Tivo software doesn't seem to do a very good job of it. It records "The Daily Show" on Comedy Central 3 times a day!
I would be happy to ditch MyWorld altogether and have Tivo boot-up to my own Shell-Based interface if only the code libraries were available for me to get to all the same data and functionality MyWorld has access to.
There is some fascinating program examples at:
http://www.allaboutjake.com/tivo/
especially the Tic-Tac-Tivo program. But there is no source-code provided, and the programs are only supposed to work on Tivo 2.5 and not the newer 3.2 or 4.0 versions. The page refers to a "LoveTivo" library being released shortly, but I can find nothing about it on google.
TivoWeb seems to be the most advanced program available at the moment, with sourcecode. But even it doesn't seem to be able to actually respond to tivo remote-control events the way this Tic-Tac-Tivo program claims to.
Can anybody help me?
Posted by: azitnay
I can't help you, but if you really want to ditch myworld entirely I'd recommend looking into building a box that runs MythTV (http://www.mythtv.org/) or something. I've never dealt with it directly, but I know someone who has a box up and it looked to me like it has a lot of the same features TiVo has, and you should have direct access to all source code if I'm not mistaken.
Drew
Posted by: Fideist11
I agree if i had it to start over i'd build a box from scratch. But I already own the tivo, i bought it about 8 months ago, without pondering building my own box.
It really baffles me how slow MyWorld can be. It really isn't doing anything very complex at all, from a programmatic point of view. I can't imagine what rationale Tivo had for building the MyWorld program with TCL instead of an actual compilable language with 10 times the runtime efficiency (like C...perhaps? :eek: )
they should go back and start over from scratch. And build the program on top of C/GTK or something a bit better than TCL/TK. (i am assuming they use TK on top of the TCL).
The saddest part is that MyWorld is, as far as i can, tell the only contribution Tivo has made to the entire process. They don't gather the guide data (someone else does), and it looks like Phillips and Sony builds all the hardware. Tivo may have *designed* the hardware of the boxes but this doesn't take a genius to achieve.
I'm afraid in 5 years when the concept of a PVR is prevalent, if Tivo remains in existence and manages to gain a majority of the marketshare many people will start to bemoan it's "bloatware", "instability", and "unjust monopoly" the same way they do with Windows now...They will say Tivo just got in at the right time, and had the right marketing, but isn't really technically superior...just like dos.
i'm sure the tivo community agrees. :rolleyes:
Posted by: avhokie
Hey Hokie! Though TCL is not as runtime efficient as C, I don't believe that MyWorld is a processor intensive application. I bet you'd never notice the difference if it was written in C. The major factor in the slowness of the program is that the hard drive is being accessed continuously for the video stream. MyWorld has to get it's data from the HD without interrupting the stream. There is actually a cache card that someone on this forum is working on that will cache most or all of the non-video data. This should boost performance quite a bit.
Posted by: Fideist11
great so myworld is c++ with support for TCL scripting. can anybody help me with my original question as to where there's any documentation on how to *use* this TCL scripting?
how can i actually load a tcl script that accesses functions like
begin_recording_on_channel(int channel_num);
or
set_record_quality(ENUM ['Basic', 'Normal', 'Best']);
or something along those lines.
and speaking of MyWorld being hindered because the harddrive is constantly being written too (an excuse for it's slowness)...that's just another *amazing* ( and wildly difficult to program i'm sure :p ) feature they are lacking...the ability to have it stop recording 'live tv' and focus it's CPU on my season-pass changes and such.
that'd be nice so that my harddrive, which has a MTTF (mean time to failure) like all harddrives, could get a chance to sit idle instead of looping the last 30minutes of nick-at-nite all evening.
Why must we go to such lengths to find "backdoor" passwords, and enter archaic long codes to change features of our tivo? Why can't these features simply be offered in a menu somewhere? They can still be set to default, and those that don't want to fool with them can still leave them be, and others like me can toy with them.
What is Tivo's motivation to go to lengths to actually prevent us from achieving more detailed control over our recording preferences?
Posted by: avhokie
You're not going to get any help like that
Posted by: Fideist11
lol "silver platter". A link would've sufficed. I guess the "Tivo Community Forum" would be the wrong place to search for such a thing...haha
In most any other project or program *with* scripting abilities built on top of it, there's documentation on how to use it. Take, Gaim/Perl Scripts...or a proprietary example: MsAccess, Excel, or Word. (with VB Macros)...It's easy to find websites for documentation to these things, straight off google. So where's any documentation for TCL scripting on top of myWorld?
Why does Tivo choose to limit our control over recording options?
If an option like the jumpback time for each of the three fast-forward speeds is saved on the system why can't we as users be allowed to change it? Why has Tivo tried to prevent this, and other features, from being exploited?
I can't find any documentation on the TCL scripting. All I can hope to do is examine the code already in existence (either on the Tivo right now, or off the web) and try to extrapolate it's use...which sucks. Does nobody truly know of anywhere to get any information on the libraries/functions available?
Posted by: azitnay
quote:
Originally posted by Fideist11
If an option like the jumpback time for each of the three fast-forward speeds is saved on the system why can't we as users be allowed to change it? Why has Tivo tried to prevent this, and other features, from being exploited?
I believe you can set values like these through backdoors. I haven't tried yet, but I plan to eventually.
quote:
I can't find any documentation on the TCL scripting. All I can hope to do is examine the code already in existence (either on the Tivo right now, or off the web) and try to extrapolate it's use...which sucks. Does nobody truly know of anywhere to get any information on the libraries/functions available?
I've always learned more by playing with examples than by reading documentation, personally.
Drew
Posted by: avhokie
You don't get it, do you? Tivo is proprietary. They don't have to give us ANYTHING.
Posted by: avhokie
Hey! I was a CS major at Virginia Tech (but made the switch to computer engineering :D)
Posted by: Fideist11
Haha the old stance of referring to personal insults.
The answer to why tivo keeps these features from us? Because they're "Proprietary"...
Tivo already has a TCL scripting library built on top of MyWorld, presumably just for their own convenience in quickly adding features.
I didn't say Tivo had to go to lengths to provide support for 3rd party applications..in fact i'm sure they could set up some licensing system where nobody would be allowed to ever *sell* software for their system. Further I'm sure they could prevent library access to the few dangerous features, like the ability to gather guide data from somebody other than Tivo, or the ability to compress the video and put it on your computer (pisses of the Government apparently). But why do they go to lengths to prevent the normal subscription-paying user from having greater control over their recording options? If providing the code-libraries is *still* too dangerous for some reason, they could have at least provided these features under an additional menu on the system. I mean features like changing your fast-forward "jump-back" time are clearly in there somewhere...Why did tivo have to try and make it *harder* to change it? Lucky Tivo engineers are at home freely changing these options on their home box, what would it hurt to let us all do it? There's no fancy "multi-threaded execution" or special leap-of-ability to adding a way to alter the integer value representing the number of seconds the system jumps back after fast-forwarding. they could throw that in a menu in no time at all, i'm _sure_.
MuscleNerds statement, "reverse engineered by hackers who didn't stubbornly insist that they be handed documentation by others" doesn't make Tivo sound like the "hacker-friendly" system it was supposed to be...The question isn't whether I can reverse engineer things, nor whether others have already done it...but rather why does anybody have to do it at all? Why can't tivo provide this information?
and those were "example" functions, not precisely what would exist. just like "change_cell_b4_to(value)" would be an example function for MSAccess scripting, but certainly not exactly it. Fancy terms like "queues...multi-threaded" don't have anything to do with scripting library functions. Just because mathematica has an ungodly number of software components, like "queues, linked-lists, threads, semaphores (wooo what a fancy word)"...doesn't mean i need to understand them to call a rand() function, or a sqrt() function in a mathematica module. We call this idea "abstraction" (woo another fancy word).. it's where you can get something done without having to see all the guts of the internal implementation...perhaps thinking of it in terms of object-oriented-programming will help you with that concept.
I understand, in fact get paid for, programming/scripting for these MS programs, along with many others...along with graduating in 2 weeks with a CS degree so I'm pretty sure i understand the concepts of software engineering. But other than that i'm not going to continue defending my own personal-knowledge nor will i jump in trying to insult you in return.
funny how questions and a few jabs at a SOFTWARE PRODUCT ends in insults towards me as an individual....
Since Series 1, Tivo has only taken further steps to prevent backdoor passwords from being discovered, and to prevent remote login...
what is tivo's motivation to prevent power-users?
WHY DOES TIVO HAVE A BUSINESS MODEL THAT WANTS TO KEEP US FROM THESE FEATURES? Is the management of Tivo just idiotic?
How could it possibly HURT tivo to allow us the ability to do all of these features i've mentioned above?
Do they plan to SELL these features to us at a later date? like with "Home-Media Option?"...this is an unwise decision I feel because their upcoming competition is going to be more than happy to provide the features they are holding out on. Certainly it's not because TIVO hasn't gotten around to adding these features yet, after 5+ years in business?
Posted by: embeem
I'll agree with MuscleNerd, you really aren't getting it. I don't recall tivo's advertising ever saying that it was supposed to be a hacker friendly system.
Why doesn't TiVo allow third party development on their machines? One good reason would be the number of people we have in the underground posting "help I screwed up my tivo"; imagine the support headaches that go along with hacking, people calling tech support and not wanting to admit they broke their unit by hacking it, people returning tivos after breaking them, etc -- Anyone notice how they've taken steps to keep us out of the series2?
Try to deal with the fact that the tivo wasn't designed with third party access in mind, all the data structures are private and there's no simple interface or scripting language for them.
Tivosh isn't designed as a scripting language for the user interface; tivosh is just TCL with a handful of extra functions to modify MFS values. It can't control the interface any more than a text editor can control windows.
Posted by: Fideist11
Ok so the argument about why we can't have code access has been answered thoroughly.
I didn't understand that was all the TCL part was for, thanks for that clarification.
If it all closed and compiled then so be it.
But please notice again that Embeems focus was on "3rd party software"...does this mean "any software written by anybody even for their own personal use?"...i thought it had to do simply with software-for-profit...or at least, software-for-distribution.
But the question as to why we as users are so totally hindered from any "power user" features is still ignored.
Why does tivo retard our control so much?
Posted by: StanSimmons
Since you are graduating in two weeks, why don't you go apply for a job at TiVo, then you will have the documentation you seek...
Of course, if your interview skills are on par with your skill at asking for information you should have a job in no time... :rolleyes:
Posted by: Fideist11
Ha, right on. I'd love the job at tivo as much for the access to their documentation as for the opportunity to actually implement all the features i wish i had.
I'll just ignore the sarcasm over my "interview skills". ;)
Posted by: avhokie
My VCR doesn't give me power user options! My Microwave doesn't either. My stupid garage door opener refuses to give me an API into their system. Why are these companies so freaking stupid? :mad:
Posted by: cwingert
This thread amuses me. Especially the people with the superiority complex, picking on people who obviously don't have a lot of experience. If you don't like the question, don't answer it, no need to be an ass.
Real simply, MyWorld is slow because it is a low priority task on a 50 MHz processor.
You don't need to use MyWorld to schedule recordings. In fact I have a TCL script to do such a todo recording and you can schedule down to the minute if you want.
One final thing, after having quite a few years experience with programming. I seriously doubt the core hackers (ie Tridge), didn't have any help from TiVo the company. If they didn't, I am certainly impressed.
The rest of us are all leaches off of vplay.
Posted by: bsnelson
cwingert: Interested in sharing that script? :)
Fideist11: If you want one very concise reason (among many) why TiVo keeps the software closed: Because doing anything with the software requires opening the box, and the box is TECHNICALLY a "no user servicable parts inside" unit. Releasing anything officially regarding software would thus open them up to legal liability.
Also, and please note that I'm being sincere and actually trying to help, but: Come back and visit us after you've been working in the "real world" for a few years. I was once a hot shot grad like you, and thought I had the world by the tail with my big CS degree (University of Texas, 1988). The real world is not like this. Things don't go like they do in textbooks.
Brad
Posted by: avhokie
quote:
Originally posted by cwingert
no need to be an ass.
LOL! Did you read the thread at all? We're not the ones being an ass.
vBulletin Copyright ©2000 - 2009,
Jelsoft Enterprises Limited.
vB Easy Archive Final ©2000 - 2009
- Created by Stefan "Xenon" Kaeser
Modified by Adam J. de Jaray