Thursday, August 25, 2011

TiVo Redux


One of gadgets that fascinated me in the USA is the TiVo, a device that can be described as a VCR without tapes, but TiVo is much more than that.


How would you like being able to watch live TV and then pause it to go bathroom? Or rewind it to see again details that you might have lost? TiVo allows you to do this and more.



If you live in a country in which TiVo CORP has activities, your TiVo will connect every night to one of their servers and download the TV programming guide for the following the 2 weeks.



With this information allows the device to do some really cool things: you can forget about specifying the channel and the time in order to record a program just browse the programming guide and select the program to record. Or just ask it to record all programs with “Star Wars” in the title, or any comedies staring “Jim Carey”, and TiVo will do it automatically.







The TiVo on the inside

Beyond the user interface, TiVo is just a computer.

It has a processor (RISC or MISP, depending on the model), a video interface, a power source, a hard drive, several serial ports, and a modem; some models include USB ports, and even a Network connector. The only thing missing is a keyboard! 

But this is not an ordinary computer. Every TiVo has an integrated TV tuner (similar to those found one any VCR), a MPG coder (turns the Video into MPG-2 files) and a MPG decoder (turns MPG-2 files into video).



One of the limitations of these units is the processor, which is old and slow. Since the unit contains dedicated circuits to handle the Audio and Video conversion, there was no reason to include a more powerful (and therefore expensive) processor.

Besides storing Video, the hard drive contains the operating system (a version of Linux). And this is one of the greatest news for computer geeks.



By using Linux OS, TiVo Corp. it is forced to freely share all the improvements that they make and distribute, and that greatly benefits the community.

TiVo has fulfilled that commitment (although they usually take their time), but have also generated a great debate by refusing to share those programs and libraries that they developed “from scratch”; some interpret that all improvement (including new libraries or programs that implement existing libraries) must be shared freely, whereas others maintain that only improvements to existing elements must be shared.



If this was not enough, TiVo Corp. restricts (by digital signatures) the software that can run on this equipment; Once again, some people interprets that this goes against the rules of GNU GPL (the license that regulates the use of Linux and other programs), while others interpret that it’s perfectly OK.



This is called Tivoization and a great debate has grown around it, to the point so that the Free Software Foundation has decided to publish an updated version of the GPL that clearly prohibits this activity.



TiVo is a not the only product of its kind, ReplayTV and the new DirecTV+ have similar characteristics. You can even grab a regular PC, add a TV or Audio/Video capture card and a specialized software (Windows' Media Center, and MythTV are some of them), and you have a DIY product with similar characteristics.

But TiVo was first to have a massive presence in the market, and one of simplest to use.



Cue the hackers.

As with most technological products, user groups soon formed, sharing knowledge, and trying to add functionality, discover hidden options, or simply to learn how things works. There are several such TiVo groups, but the 2 best known are TiVo Community (http://www.tivocommunity.com/) and Deal Database (http://www.dealdatabase.com/), this sites became forums for knowledge transfer and sharing, and the community soon started to adapt some common Linux applications to work on TiVo, and developed techniques to avoid the restrictions that TiVo CORP implemented to avoid external programs.

Soon a large number of applications were available for TiVo: FTP clients and servers, email readers, RSS clients, Caller ID, games, websites showing the recorded programs, and even tools to transfer recorded programs from TiVo to a PC.

One of the premises on “TiVo Hackers” communities is that their work should not be used to undermine TiVo Corp.’s income in countries where they offer service. We believe that TiVo is a magnificent product and nobody wants to damage TiVo Corp., for that reason we try to ensure that the information we share will not be used to use the product without paying in the markets that TiVo covers.


iVo's Internationalization:
T

But while TiVo works wonders in those countries in which it has service, in the rest of the world a TiVo device has few (or none) functionality.



At the beginning of its activities, TiVo Corp. provided services in the USA (NTSC) and UK (PAL).



Many Canadians watched with desire that pretty device that the users on the U.S.A. could enjoy and they couldn’t.

Since they use the same TV standard (NTSC) and the same channel frequency, some Canadians began to experiment for a way to “convince” a TiVo to work in that country.

Since the TiVo runs on Linux, they were able to even make great progress, finally developing an emulator (of the official TiVo server), so that (with simple changes) a TiVo “Yankee” could work in Canada.

The system retrieved the TV programming from different Web sites (Newspapers, Yahoo, TV guide, etc.) and formatted the data in a format that the TiVo accepted.

Following the philosophy of these groups, access to these programs was tightly controlled, but living in Argentina, I had the opportunity to participate in the forums (after all, TiVo does not have cover in this country), and I was overwhelmed by the amount of information.

Sadly, when TiVo decided to offer its service in Canada the group began to dissipate, and couple of years ago they closed their forums.



Similar groups arose in Australia (http://www.oztivo.net/), New Zealand (http://www.nztivo.net/), and South Africa (tivoza.nanfo.com), while in many other countries lonely hackers tamed their own TiVo (for example Javier A. Rodriguez was one of first using TiVo in Mexico).



The Australians were of first, and they faced an additional challenge, Australia uses PAL-I as TV standard, so they could only use a TiVo with a norm converter.

They attacked the problem in two fronts, some decided to replace the TV tuner, whereas others tried to find software (since the documentation of the hardware indicates that it would have to be able to handle other TV standards).

Finally, they ended up implementing a mixed solution, they replaced the original tuner with another one (common in the VCRs on that country) and developed a program that intercepts the calls to the original tuner, replaces them with calls compatible with the new tuner, and handles the local frequencies correctly.



Once they solved the problem with the TV standard, they concentrated on updating the TV programming on the TiVo.

They also took the programs developed by their Canadian colleagues and began to develop from there. Nowadays, Australia, South Africa, New Zealand and several others, have an impressive infrastructure that provides the TV programming not just in TiVo format, but also in standardized format XMLTV (more on this later) so that it can be used in other programs.

It is a true communitarian effort, where the members can so correct and update the information so which each iteration they database becomes more complete and exact. And of course, it is completely FREE.


Recently TiVo has extended its service to several of this pioneer countries, but only for the newewst models, so this communities are alive and working to give support and programming for the older models.

I’ll finish this history here … If you are wondering why I took the time to write (and you to read) all this: you will know soon, or the day after :-)

No comments: