pyTivo is both an HMO and GoBack server. Similar to TiVo Desktop pyTivo loads many standard video compression codecs and outputs mpeg2 video to the TiVo. However, pyTivo is able to load MANY more file types than TiVo Desktop.
Pytivo is great. I've used it for many years and only had a few problems with it. Most of my problems were really problems with ffmpeg, the video converter program that does the heavy lifting; not the pytivo authors' fault. updating ffmpeg if you have issues is a good first step. I have one complaint that is really also not the pytivo authors' fault but is frustrating. Downloading HD content to my TivoHD takes forever - can't watch in real-time, or you get lots of pauses. the CPU on the PC is not maxed out, and the tivo is on a wired network to the PC. Based on my chat with the developers on the forums, it seems that the issue is that the tivo's just too slow. It may work better to "push" because you can then send (smaller) mpeg-4 files. I gave up and built a xbmc machine (another great open source project); i've had fewer issues with that. This is OT but getting it working in the first place was a bit of a challenge (hint, if "live" doesn't work for you, and you are at all linux savvy, look for XBMCbuntu instructions for building your own xbmc-specific ubuntu box from the ground up).
works great for pushing many video files back to your tivo. Must have if you download mkv files and want to watch them through the tivo.