TiVo

Our TiVo

 
Tworoads Home
Our Home
News and Events
Photo Galleries
Reviews
Scott's Page
• Palm Pilot
Paul's Page
Yukon's Page
Scout's Page

Home Automation
• Weather Station
• Temp. Readings
Home Network
• Precision 420
• Cisco 675
Our Tivo
Tworoads Software
• HelioStat
• Loc Notes
• MoonCal
• GPS Find

Useful Links:
TiVo Hack FAQ
TiVo Community Forum
9thTee:
TiVoNet
Extraction Info
PVR Underground
TiVo Web Project
More Tivo Information

Networked TiVo

I purchased a Stand Alone (SA) TiVo, a Phillips HDR212 off of E-Bay in October 2001. I made the choice to purchase a TiVo instead of a Replay, or Ultimate TV because I wanted the ability to "play" with the unit, and I read that TiVo ran Linux. I was able to backup the drive and get a shell login to the unit without problem, and pretty quickly I determined that I'd like to have this on our network, partially because I've always been interested in "networked" appliances, and mostly because of the TiVo Web Project.

At this point I determined that I could go with a ppp connection across the serial line, or I could add an ethernet connection also known as TiVoNet. I chose TiVoNet because that would leave open the possiblity of extracting video, and I was already setup for ethernet in that room.

To understand the TiVo operation and databases a little better, I wrote a module for TiVoWeb, spaceused (current version: 1.9), that provides an accounting of the current space used in the "Now Showing" category. To use it, transfer the spaceused.itcl file to your tivo and place it in the 'modules' directory of your TiVoWeb installation, likely: "/var/hack/tivoweb-tcl/modules" Then quit, and relaunch TiVoWeb, or choose "Full Restart" from the TiVoWeb menu. See also the RCS log for spaceused for a log of the changes. Spaceused is dependent on tzoffset, but it it should not be load order dependent because tzoffset itsn't asked for until ui.itcl has been loaded and init_db() called.

NEWS: For the full release of Tivoweb 1.9.4, an abbreviated form of space used is incorporated into the "info" page. I have stopped using my spaceused module and depend on the one incorporated into the "info" page to get data, via a preparation script appropraite for MRTG.

For tivoweb 1.9.4 beta versions and older: spaceused 1.10 is TiVo 3.0 ready. Just drop it in the "/var/hack/tivoweb-tcl/modules" of tivoweb 1.9.4. (tested so far with 1.9.4 beta3). Please let me know of any problems... it should work under older versions of TiVo OS as well. If you already got 1.8, please get 1.9 or better. 1.9 does the accounting correctly for 1.9.4 beta2. If you have tivoweb-tcl 1.9.4.beta3 get spaceused 1.10

An example of output for space used is here:

Quality By Name Season Pass Total Actual Hrs Capacity Hrs
Basic 3284 (4.4 hrs) 1465 (2.0 hrs) 4749 6.4 6.4
Totals 3284 1465 4749 6.4 6.4

Quality Current Expired Save Until Delete
Basic 1100 (1.5 hrs) 1825 (2.4 hrs) 1824 (2.4 hrs)
Totals 1100 1825 1824

The tables tally recording quality against reason for recording, and expiration status. The numerical values are in Mb of disk space, and in capacity hours (disk space converted to time assuming Basic Quality), and in actual hours (viewing hours). The modules draws heavily from "Now Showing in the "User Interface" section of TiVoWeb. Finally, I have made no attempt to correct for variable bit rate compression techniques. If you have VBR turned on, this will probably not reflect reality for you.

The module will only display rows and columns for which there is data, but if you want the entire table, request the URL with a path argument (e.g. http://my-tivo.mydomain/spaceused/1). I use this technique to supply the entire table of data so that it could be parsed via a script.

I could then turn the data into a MRTG page which reports the number of capacity hours of recording time used (blue), and the actual hours of recordings on the machine (green). (as you can see we're sort in a low usage mode right now).

Be aware, I make no claims to the accuracy of these measurements, indeed I know them to be inaccurate under certain circumstances. This module should be used for amusement purposes only, not for recording planning, or any other critical decision making process.

Video Extraction (as of Feb. 12th, 2004)

There are several parts to this. Basically, you need to

  1. Extract an "elementary stream" from the TiVo...
  2. Ship it to another machine for storage/viewing
  3. Translate (transcode) it into MPEG or some other video format.

I have now reviewed a handful of tools for extracting and editing the tivo streams, I will cover those I played with. This is also covered in some more detail at the 9thtee Extraction README

Stream Extraction:

I tried stream extraction and transport via:

They seem equally capable, however I had trouble with TyStudio's indexer causing my TiVo crash. My current recommendation is to use mfs_ftp.

Data transport:

Once again I would recommend mfs_ftp: I found it easy to setup, and intuitive, atleast if your a command line interface user. CLIs for this application are good for me since I can then arrange to pull or push streams or .tmf files between hosts when I'm away from my home network, but YMMV. Netcat needs to be available on the tivo (see the ExtractStream tarball for the tivo version), and on the client host. For Unix, netcat seems easy enough to find for Linux. I run NetBSD, and it was in the package system for NetBSD. I'm not sure about windows.

Editing and MPEG transcoding:

Many of the READMEs describing video extraction TiVos describe extracting the audio and video streams separately, shipping them to the client separately and then combining them on the client using mplex or netmplex. I think that was because at the time, there were no tools which could utilize the timestamping information inside the raw Tivo stream, but now there are. :-)

Using ExtractStream or sendstream, one can extract the primary, muliplexed, stream and ship to the client whole (use the "-s" flag to either ExtractStream and sendstream). On the client I have found other useful programs for conversion of the streams into mpeg format.

  • For Unix (Linux but also NetBSD with Linux emulation), tyc acts as a filter (e.g. ./tyc < my.stream > my.mpeg, If the above link is broken try also this local copy).
  • For Windows there is a combination of, selector, data transport and conversion in TivoApp (for more details scan the ptvupgrade bulletin board, an enhanced version of ExtractStream for the Tivo can also be found in that .zip archive)
  • (I understand that for Windows, TyConvert on which tyc above is based, is also a very good tool.)
  • TyStudio provides editing and MPEG conversion for Windows and Linux.
  • TyTools also provides editing and MPEG conversion, albeit with a less intuitive interface.

I had problems getting TyStudio to create a edited stream that would transcode into mpeg, and occasionally even an unedited stream would not transcode (read the transcoder crashed). Under the same circumstances with the same streams, TyTool and my old standby tyc would transcode the streams edited (tytool), or not (tyc). In earlier testing I found TivoApp very usable and convenient as well.

Viewing:

  • The current version of mplayer plays both tivo streams and mpegs. There is also a windows installer version, which installs, assoicates with .ty extensions and runs well. If you don't store your streams locally, note that it needs drive letters rather than network locations.

On the unix side I use mplayer 1.0rc3. Both mpegs and ty streams! are now viewable under mplayer. In addition, mplayer is smart enough to expand the doubly scanned (352x480) stream so that the correct aspect ratio (4:3) is mainained. Finally, mplayer allows one to adjust the A/V sync, which is a really handy feature. Contrary to my earlier reviews, I found that windows media player and WinDVD do not expand the stream to 4:3 as mplayer does now.

Misc:

Under WinME, had some network problems caused by my VPN client insisting on a maxMTU of 1400, this made a significant impact on data transfer rates. At an MTU of 1500, a 30 minute show can be transported and converted in around 10 minutes. I found that SpeedGuide has some detailed information on possible adjustments to networking registry entries for various versions of Windows.

I am currently using mfs_ftp on the TiVo and TyTools or tyc for converting streams.

TiVo is a trademark of TiVo Inc. This site is in no way affiliated with TiVo Inc.



Scott Presnell
Last modified: Thursday, May 22, 2008 16:42 PDT