Streambaby has the same issues dealing with push (and in fact stole the size estimation code from pyTivo), but I also wanted to mention one other thing I was fooling around with dealing with push. In certain circumstances streambaby can't even estimate the final video size. In particular when it uses the "-sameq" parameter with ffmpeg and doesn't specify any bitrate paramters, streambaby can't estimate the size. (It may be more accurate to say I don't know how to estimate the size...) In this case streambaby passes a size of "-1" to TiVo. When a push is done in this way, the TiVo code to determine when to allow someone to start viewing the video seems to behave very erratically. If you try to play the video it may say "1 minutes until"... If you hit back, and then try immediately to play again it may say "60 minute until..". If you hit back again and select play, it may actually allow you to start playing. I am not sure how in this case TiVo is determining whether or not to allow you to play or the minutes remaining (current network speed/movie duration?), but it seems that if you hit back & play enough it will eventually let you play. The biggest downside is that even if you have 95% of the movie downloaded, TiVo still acts as above. Note: I am not recommending the above, and in fact I am thinking about eliminating the use of -sameq from streambaby so I can always estimate the size and pass it to the TiVo during the push. I just wanted to get the results of my playing around out there.