Goal: Stream the contents of Tivo’s “Now Playing” to any machine on the network (wireless too!).
Tools needed: A network enabled Tivo (telnet, FTP, Tivoweb), the Tivo vstream binaries. A copy of VLC for your OS of choice, the tystream plugins for your version of VLC.
Bonus Settings: Configure “1-click” playback from your browser (IE on Windows).
I’m assuming at this point that you’ve already installed a network card in your Tivo, and that you can telnet to a bash prompt, FTP to Tivo, and have got Tivoweb installed. If not, go and read this excellent guide.
On the Tivo
You need to install the vserver software. You can get this from the tivo-mplayer sourceforge page.
I used this link: http://prdownloads.sourceforge.net/tivo-mplayer/vserver-1.2.tar.gz
Installing vstream:
- Uncompress the archive and copy the vserver binary to /var/hack on the Tivo (or wherever your hacks live).
- Configure vserver to run on tivo startup by editing your rc.sysinit.author (or if you’re brave, the rc.sysinit file directly):
I just added /var/hack/vserver & to the end of the file.
- Execute the binary:
# ./vserver
Hacking Tivoweb:
Tivoweb is great, and you can use it to work out which ty stream to connect to (vstream takes urls of the format: tivo://tivo.ip.addr.ess/tystreamid) but wouldn’t it be nicer to just click a link in Tivoweb and have VLC just load and start playing? Of course it would!
In your tivoweb-tcl/modules directory you’ll have a ui.itcl file - this contains the code we need to mess with - specifically the code that generates the nowshowing list. Somewhere around row 2880 is a line:
if {$manual || $watchonly} {
You need to add a line before that. This whole chunk is towards the end of a function, the next function is action_nowshowing, if it helps you find it! So, the line you’re adding before that if statement is:
set delete_td “$delete_td [td [html_link "tivo://192.168.0.240/$fsid" "View"]]”
Note where I’ve lazily hard coded my Tivo’s IP address. I could have done this properly with a variable, but really couldn’t be arsed. Change this to whatever IP your Tivo has!
Save ui.itcl, and do a full restart of Tivoweb - the now showing list should have your View link now:

On your PC
- Install VLC - it is available for multiple platforms.
- You’ll need the VLC vstream binaries - these enable tivo streaming in VLC. They’re available for OS X, Windows and Linux. They need dropping into the plugins directory in the VLC installation folder.
You’re now in a position to test it. Open Tivoweb and the Now Showing page. Right click the View link and copy the link to the clipboard. Open VLC and hit open file, paste the URL (It should start tivo://). Click Open, and it should start streaming video to your machine! Horrah!

Finally:
- Configure IE to launch VLC from tivo:// urls
Here’s the registry settings to get Internet Explorer to open “tivo://” links in VLC. Double-click the .reg file to import it into the registry. Restart IE, and now clicking that View link will launch an instance of VLC and play your chosen video. Yay! Job’s a good’un. If anyone can work out how to configure helper actions for Safari or Firefox on OSX, let me know!
Update 15/11/2006:
Thanks to helpful folks in the comments, I realised that in cutting and pasting the example Tivoweb code above, I made an error (now fixed). Hope that didn’t cause too many people any hassle!
Recent Comments