# WHS Tradeoffs PyTivo, TDesktop, Publisher



## edarring (Sep 21, 2009)

I have been experimenting with streaming DVD content to my TiVo HDs from Windows Home Server. My primary application is ripped DVDs (yes, I own them all), played on the TiVo for convenience. I have researched all three of the most commonly referred applications, PyTivo, Tivo Publisher, and Tivo Desktop. Here's where I am:

1. I tested Tivo Publisher. I like the UI, I like the option to add metadata info about the movie, but Tivo Publisher insists on transcoding everything it plays. This is a problem because the transcoding on my HP Media WHS is too slow--about 1/2 normaly playback speed. That means we can't start playing the moving until some time has passed.

With my fair video compression background, it makes no sense to transcode video over and over again--get it in the mode Tivo requires and keep it there. All my DVD copies are MPEG2 format, exactly as they came off the DVD with no transcoding. They play on the Tivo perfectly without transcoding. Why is it necessary to transcode these?

I have sent emails to Rob Durfee to ask this question, but no response. Tivo Publisher is now removed.

2. PyTivo. Although I'm pretty well versed in video compression, I'm not really a detailed computer expert. I've read about everything on installing PyTivo, but too many complexities make me wonder if keeping it running will become a burden. Simple is always good and PyTivo doesn't appear to be simple. Haven't tried it.

3. TiVo Desktop. Looks great on the desktop, and now I've installed it successfully on WHS. Tivo Desktop does a nice job of just transfering the files without rencoding so the transfer is about 3x-4x real time, way more than enough to start the video immediately. And the quality is great. What I miss is the metadata that Publisher does such a nice job with. Also, TD doesn't run as a WHS addin, so I wonder what kind of risks I might be taking with my (extremely) precious WHS backups. So far so good, but I'm still a little nervous.

So, my preference would be TiVo Publisher, but that nagging reencoding is pointless, and a waste of network resources. And like it or not, it does affect video quality.

Does anyone have other suggestions? Is Rob Durfee still in the Publisher business? Has anyone seen him respond to emails? Would I pay $ for Publisher if it didn't transcode? Of course! I'm just looking for the right solution that won't require an IT department to run.


----------



## dlfl (Jul 6, 2006)

Not sure what complications WHS might add, but I would try pyTiVo. In my experience it's quite reliable and requires NO maintenance once you get it installed and configured correctly. I would recommend a zip of the latest snapshot from *wmcbrine*'s git.

Read the pyTiVo forum and post there if you have questions about installation and configuration.

You can use metagenerator to generate pyTiVo style metadata text files that will then cause pyTiVo to transfer metadata to the TiVo with the video. It will be practically indistinguishable from the NPL metadata that you get with an original TiVo recording.


----------



## windracer (Jan 3, 2003)

Definitely give pyTivo a chance. You might also want to check out streambaby. Both apps are "smart" enough to not re-encode video if it's already in a format the target TiVo understands.


----------



## westside_guy (Mar 13, 2005)

edarring said:


> 2. PyTivo. Although I'm pretty well versed in video compression, I'm not really a detailed computer expert. I've read about everything on installing PyTivo, but too many complexities make me wonder if keeping it running will become a burden. Simple is always good and PyTivo doesn't appear to be simple. Haven't tried it.


Just to be clear about this - pyTivo is very simple to set up and run, like most any python script (or scripts). If pyTivo is not simple to run under Windows, the problem is not really with pyTivo.


----------



## edarring (Sep 21, 2009)

With all the encouragement to try PyTivo, I decided to take the plunge. It remains a little daunting since I didn't even know what Python was (programming language of sorts). I loaded Python and then PyTivo as a service. Somewhere along the installation process I was asked about my videos folder. I entered it in the the form \\server\DVDs. So far, so good.

I then went to the web application http:\\localhost\9032 (or from another machine http:\\server:9032) and under "To Go" I added my Media Access Key. I don't know if that's required for playing videos from WHS to TiVo, but I put it there anyway.

And presto, on my TiVo, the DVDs showed up. Streaming is about 2x-3x real time, which is great. No waiting. No transcoding. The quality is perfect.

I also experimented with MetaGenerator as suggested. That worked as well (I've only done one movie so far).

Thanks to all for the encouragement. So far this setup is working very well!


----------



## edarring (Sep 21, 2009)

A couple days have passed. I have loaded a dozen or so DVDs onto my WHS server. The process I use, is to capture the video to my laptop using Magic DVD Copier. I capture just the main movie with no transcoding. This takes about 15 minutes depending on the length of the movie. The result is a set of 3 to 7 VOB files on my computer.

I wrote a simple batch file that simply concatenates the files into a big long file (using copy /b), renames the output to .mpg and stores the result on my video server.

Next, I use metagenerator to lookup the movie info and store the resulting txt file right with the mpg file itself.

Done. That's a few steps, and it does require some thinking, but it's not too difficult. The movie content is never transcoded, even when playing back through Pytivo. So far so good.

However, I've run into two annoying issues--not really problems, just annoying:

1. On my Tivo (through Pytivo), some movies show a playing time signficantly shorter than reality. Other movies are just fine. For example, one two-hour movie shows a playing length of 51 minutes. When the video gets to the 51st minute, it keeps transferring, so there's no problem with playback all the way through the movie. What I can't figure out is how the movie length is calculated and why it reports a number so incorrectly. Any ideas?

2. Because parental controls are set, the TiVo password is required to get access to the movies--even those movies that are within the parental control limits. I suspect this is a function of transferring and that movie ratings are not actually considered. Does anyone else see this and have a workaround?

Thanks!


----------



## windracer (Jan 3, 2003)

edarring said:


> What I can't figure out is how the movie length is calculated and why it reports a number so incorrectly. Any ideas?


I believe pyTivo uses whatever ffmpeg tells it is the length of the video.


----------



## MichaelK (Jan 10, 2002)

can you aim me to which installer file exactly you used to get pytivo on your WHS?

did it just install everything or did you need to first install component x, y, and z?

I'm 3 days behind you- I have all my home movies and pictures on my WHS and I've been using tivo publisher for like a year or so to serve those. And it's been fine. The home movies are clips from digital cameras or a few different digital formats that had to get reencoded to play on the tivo's anyway.

so far so good.


But the other day I took the plunge and I bought a 2TB drive to add to the server and stick all my dvd's up on it. (probably could all fit on a 500gb but the price was right- anyway...). I used DVD43 to unlock the dvd's and then videredo (trial copy for now but i'd gladly pay if i can get this all to work) to convert all the vobs into an mpeg2 file onto the server without any reencoding. But then I noticed tivo publisher was also trying to convert the one movie i experimented on so it took forever- plus it also had no audio.

So I think i need to uninstall tivo publisher, bite the bullet, and figure out this whole pytivo thing.


----------



## spocko (Feb 4, 2009)

edarring said:


> 1. On my Tivo (through Pytivo), some movies show a playing time signficantly shorter than reality.


You will get more reliable results if you use a tool like Mpeg Streamclip to convert your VOBs to MPG instead of just concatenating the VOBs and renaming them to MPG.

See this post on the PyTivo forum:
http://pytivo.sourceforge.net/forum/how-to-make-mpegs-vobs-compatible-with-tivo-and-pytivo-t366.html


----------



## Rdian06 (Apr 12, 2008)

MichaelK said:


> can you aim me to which installer file exactly you used to get pytivo on your WHS?
> 
> did it just install everything or did you need to first install component x, y, and z?
> 
> ...


Have a look under the pyTivo section here:

http://www.tivocommunity.com/tivo-vb/showthread.php?p=7097293#post7097293

BTW, if you want to use the Photos features, you'll also need to grab the Python Imaging Library (PIL) for Python 2.6 from here:

http://www.pythonware.com/products/pil/

Install PIL after you install Python and before running the pyTivo installer.


----------



## lew (Mar 12, 2002)

What do I have to do if I installed the PIL after I used your installer to insall pyTivo?

I already updated pyTivo by unzipping the GIT over the existing files.


----------



## Rdian06 (Apr 12, 2008)

lew said:


> What do I have to do if I installed the PIL after I used your installer to insall pyTivo?
> 
> I already updated pyTivo by unzipping the GIT over the existing files.


It should work either way, it's just the Photo shares won't work until PIL is installed.


----------



## edarring (Sep 21, 2009)

I found the thread about using TiVo as a Juke Box (sticky, in this forum) to be particularly useful to me in terms of setting up PyTivo.

As far as the MPG duration reporting problem, I will take a good look at StreamClip. The article you referenced is quite informative.

Thanks!


----------



## MichaelK (Jan 10, 2002)

Rdian06 said:


> Have a look under the pyTivo section here:
> 
> http://www.tivocommunity.com/tivo-vb/showthread.php?p=7097293#post7097293
> 
> ...


thanks so much for the pointers- sometimes it's tough for the clueless to even figure out where to get started.


----------



## MichaelK (Jan 10, 2002)

clueless here- laughing.

tiny bit of help. Rdian06's pointers were great- installed python, the photo library, and then pytivo. Seems to be working fine on the whs- still need to fiddle a bit but seems pretty simple.

One problem though- the service wont start. in install log has an error:


> default user and password failed


and when i try to force it to start it says 


> error 1069
> service did not start due to login failure


during the install it asked me about a username and pass and I entered one of the user accounts on the WHS- but I guess i should have added the admin login stuff. Where do I go now to change my entry?


----------



## KevinG (Sep 3, 2003)

MichaelK said:


> during the install it asked me about a username and pass and I entered one of the user accounts on the WHS- but I guess i should have added the admin login stuff. Where do I go now to change my entry?


Start->All Programs->Administrative Tools->Services

Find pyTivo, double click on it.

Second tab is "Log On"


----------



## MichaelK (Jan 10, 2002)

KevinG said:


> Start->All Programs->Administrative Tools->Services
> 
> Find pyTivo, double click on it.
> 
> Second tab is "Log On"


thank you very much


----------



## edarring (Sep 21, 2009)

spocko said:


> You will get more reliable results if you use a tool like Mpeg Streamclip to convert your VOBs to MPG instead of just concatenating the VOBs and renaming them to MPG.


Thank you for the pointer. MPEG StreamClip is working quite well.

And thank you to all on the forum. I have now captured more than 40 movies to my WHS server and transfer them nicely to my TiVos using PyTivo. I'm very pleased with the results. PyTivo is fast (no reencoding), so far reliable, and allows me to create a folder structure for the DVDs (I'm using Genres, generally). Here's my process for anyone interested:

1. Capture the Main Movie portion of a DVD using Magic DVD Copier. As I mentioned before I only captuer movies I own. Magic DVD Copier copies the movie to a DVD-like structure, but with just the movie. I put it on my laptop hard drive.

2. Use MPEG StreamClip to both check for MPEG duration time errors and to write the actual file. I use Convert to MPEG for the conversion. The speed with which it happens suggests that no conversion is happening, it's just writing it back out again. I write it directly to the WHS share labled "DVDs". Note that I don't duplicate this folder. I figure I have the original DVDs as backup.

3. I use MetaGenerator to lookup the meta data for the movie. It's amazing how many films NetFlix knows about--even narrowly or regionally marketed films that never made the theater circuit. MetaGenerator creates a text file using the same name as the movie file (*.mpg.txt), which is read by PyTivo.

Works great!

Note that I am not sharing pictures or going TiVo to WHS. That was never my objective. I'm just going WHS to TiVo for pre-encoded movies. That's all I need at this point. Now my movie library is becoming available to my TiVo without the need of having a DVD player involved, changing video routing, etc. You just play.

Oh, one other note. Parental controls as I've learned, prevent transfering movies using PyTivo regardless of their ratings. That's a disappointment, and I'd like to see TiVo fix their parental controls to be more friendly to external data. For now, I live with it.


----------



## lew (Mar 12, 2002)

edarring said:


> Oh, one other note. Parental controls as I've learned, prevent transfering movies using PyTivo regardless of their ratings. That's a disappointment, and I'd like to see TiVo fix their parental controls to be more friendly to external data. For now, I live with it.


Put your porn in a seperate directory (on your PC). One option is to call it something un-interesting to your kids, something like Oscar winning foreign language movies (abbreviate it). Alternately have two different pytivo configuration files and only load the version that includes your porn directory when you want to watch your porn.


----------



## MichaelK (Jan 10, 2002)

lew said:


> Put your porn in a seperate directory (on your PC). One option is to call it something un-interesting to your kids, something like Oscar winning foreign language movies (abbreviate it). Alternately have two different pytivo configuration files and only load the version that includes your porn directory when you want to watch your porn.


that's quality. ;-)

But from the little playing I've done seems that things transferred back from pytivo dont get the ratings sent along and can't get added to kidzone? I tried to add ratings with 2 different metagenerators and while the actors, synopsis, and other info seems availible to the tivo the ratings dont show up either when I browse the shares or after the program is transferred over. Is this just a limit to pytivo?

My daughter is almost 3- like all kids that age she gets hung up on a particular character- I'd like to be able to load sleeping beauty or whatever to the tivo from my dvd collection and then add it to the kidzone for here. (from prior experience with my 2 sons it's not long till she will learn to use the remote and be able to navigate the kidzone herself.)

any advice from you gurus to achieve that?


----------



## wmcbrine (Aug 2, 2003)

No, the ratings should be transferable with pyTivo. If not, it's a bug, either in the metadata (this stuff is rather fragile) or in pyTivo. I'll try some tests to rule out the latter...

Edit: Oh, BTW, ratings will only transfer with a pull (i.e., a transfer initiated from the TiVo), not a push (a transfer initiated from pyTivo's web interface).


----------



## edarring (Sep 21, 2009)

lew said:


> Put your porn in a seperate directory (on your PC).


For the record, there is no porn. I don't own any, I don't watch any. In fact, all the movies on the server are G through PG-13. I want all the movies available to the whole family.

Parental controls are on the TiVo side to protect against unsavory broadcast shows (including, ahem, MTV), and other downloadable content such as YouTube (which has some great content, but some inappropriate content as well).

Unfortunately, turning parental controls on excludes ALL PyTivo transfers without the parental code, regardless of rating. That seems like a bug or design flaw if you ask me. Am I missing a setting somewhere?

Note that NetFlix downloads could work well without TiVo parental controls because the NetFlix account itself limits movie views according to set limits.


----------



## MichaelK (Jan 10, 2002)

wmcbrine said:


> No, the ratings should be transferable with pyTivo. If not, it's a bug, either in the metadata (this stuff is rather fragile) or in pyTivo. I'll try some tests to rule out the latter...
> 
> Edit: Oh, BTW, ratings will only transfer with a pull (i.e., a transfer initiated from the TiVo), not a push (a transfer initiated from pyTivo's web interface).


thanks- I've only tried pulling (still dont understand why I'd push...- learning  )

i can't even see the ratings when browsing the shares.

I've got the top most version from your git page and unzipped it over the windows installer.

I've tried metagenerator 2.0.6.1 and metadata manager 0.1.2.0 ( I think those are most current?)

Do we know if we get the ratings to transfer over if I should be able to add to the kidzone? Or does that key off the series ID maybe? I'm pondering calling a movie a TV show and then giving it a bogus series ID and trying to see if kidzone will work then....


----------



## MichaelK (Jan 10, 2002)

edarring said:


> ...
> 
> Unfortunately, turning parental controls on excludes ALL PyTivo transfers without the parental code, regardless of rating. That seems like a bug or design flaw if you ask me. Am I missing a setting somewhere?
> ....


are you saying you can't initiate pytivo transfers with kidzone turned on? That is for sure a limit on the tivo- it allows no broadband options when the kidzone is on.

OR

are you saying after you get movies transferred to the tivo you can't add them to the kidzone? That's the problem I'm experiencing also.

If the second:
Are you able to see ratings when you browse the content the pytivo server offers?

Can you see the ratings on the tivo once you transfer the movie and have it on the tivo?


----------



## wmcbrine (Aug 2, 2003)

Ratings are definitely still working for me. I can't comment on the generator programs, as I don't use them -- metadata files are simple text files that you can edit by hand. But, here's an example of what I mean when I say this stuff is fragile: the "mpaaRating" tag won't work unless "movieYear" is also defined. "tvRating" is easier; it can stand alone. However, it's possible that the presence/absence of other fields can also mess this up... the TiVo is picky that way.

I'm not going to set up KidZone just to test, so I can't comment on that either, sorry. I can only say that the ratings on my transferred files appear as on all other recordings.


----------



## edarring (Sep 21, 2009)

MichaelK said:


> are you saying you can't initiate pytivo transfers with kidzone turned on? That is for sure a limit on the tivo- it allows no broadband options when the kidzone is on.
> 
> OR
> 
> ...


I'm not actually using kidzone at all. Should I be? What I'm saying is that with Parental Controls turned on (not kidzone), transferring recordings from the WHS server requires the parental control code regardless of ratings before the transfer begins.

Yes, the ratings and other metadata are visible from TiVo as is all the info put there by meta generator. The text files are placed in the same directory with the MPG file itself. On TiVo, when you select a movie, all the metadata is displayed, including rating both before and after transferring. If you press INFO when the movie is running, all the metadata is there as well.

So, with the rating information included, why don't parental controls--assuming their set to allow, say PG-13, allow transfers that are PG-13? That's the problem I'm having.


----------



## wmcbrine (Aug 2, 2003)

edarring said:


> What I'm saying is that with Parental Controls turned on (not kidzone), transferring recordings from the WHS server requires the parental control code regardless of ratings before the transfer begins.


It makes sense. Consider how easy it is to fake the ratings. You could take a bunch of R movies, and label them as G. TiVo Inc. can't vouch for data coming in via an HMO server.

Of course you could argue that it would take sophistication to do that, and I'd agree. But certainly a 13-year-old kid could do it, even though they're theoretically not supposed to watch R-rated movies (though of course they do). Which leads to a discussion of the pointlessness of ratings in general...

A more relevant objection might be that, if you're in a position to do that, then clearly you can already view the movies on your computer. But there is still one potential reason to do it: The "Manually add a server" function. In theory, someone could set up an HMO server on the public Internet, full of nasty R-rated movies marked G, and a kid could download them just by entering the IP address. It's not likely, but from TiVo's point of view, they'll have fewer angry parents if they're too restrictive than if they're too lenient.


----------



## MichaelK (Jan 10, 2002)

wmcbrine said:


> Ratings are definitely still working for me. I can't comment on the generator programs, as I don't use them -- metadata files are simple text files that you can edit by hand. But, here's an example of what I mean when I say this stuff is fragile: the "mpaaRating" tag won't work unless "movieYear" is also defined. "tvRating" is easier; it can stand alone. However, it's possible that the presence/absence of other fields can also mess this up... the TiVo is picky that way.
> 
> I'm not going to set up KidZone just to test, so I can't comment on that either, sorry. I can only say that the ratings on my transferred files appear as on all other recordings.


thanks for checking- based on your posted and edarring's that I've got bad metadata. I'll need to reread the wiki on that and try to just make a simple one by hand and see if that's what i am doing wrong.


----------



## MichaelK (Jan 10, 2002)

wmcbrine said:


> No, the ratings should be transferable with pyTivo. If not, it's a bug, either in the metadata (this stuff is rather fragile) or in pyTivo. ....


just confirmed that it's the metadata that was causing the problem. I used one of the generators to populate based on netflix and got no ratings on the tivo.

Then i deleted everything except the movieYear, title, and description. With just that i can add either an mpaa rating or a tv rating and it works fine.

Still can't get kidzone to work.

One can tell kidzone to allow by rating and/or override that by explicity telling it "dont allow 'barney'" or "do allow 'dora'". Once I tell it to allow "dora' it will allow all episodes of dora. So I think that kidzone is building a database of approved shows by the series ID (would things that aren't a series get a series ID? ) - so let me go and try to read into that and see about making some bogus ones and seeing what I can do there.


----------



## MichaelK (Jan 10, 2002)

tried giving an episode id of MV999999 and see if that would allow kidzone and no such luck. Just to check i used pytivo to move a .tivo show (that tivo desktop had downloaded) back to the box and it did allow me to add it to kidzone. 

So pytivo will pass whatever into is needed- i just need to play around some more with the metadata and see what it is- I'll try later- got to run.

PS- is there an app or something that will read the metadata off the .tivo file so I can look at it?


----------



## MichaelK (Jan 10, 2002)

last bit- i beleive it's the "isepisode: false' that messes up the ratings.


----------



## wmcbrine (Aug 2, 2003)

MichaelK said:


> PS- is there an app or something that will read the metadata off the .tivo file so I can look at it?


In recent versions of my fork, metadata.py will read .TiVo files and output pyTivo metadata to stdout (use redirection to send it to a file).



> _i beleive it's the "isepisode: false' that messes up the ratings_


Hmm.


----------



## Rdian06 (Apr 12, 2008)

MichaelK said:


> last bit- i beleive it's the "isepisode: false' that messes up the ratings.


Did you add that field yourself? The field names are case sensitive and the proper spelling of that one is " isEpisode".


----------



## MichaelK (Jan 10, 2002)

Rdian06 said:


> Did you add that field yourself? The field names are case sensitive and the proper spelling of that one is " isEpisode".


I used one of the apps (not at home but think it came from the one with "manager" in the name). I might have typed it wrong in the post above - I was on the way out the door yesterday when I typed that. (OR it might be the app has the typo and that's the issue- but i suspect i transcribed wrong.)

I'll try to get some time tonight to poke around and see what the syntax is coming out of the apps and then confirm that one is in fact the feild that causes the issue. I think it is becasue I deleted one field at a time from an item that showed no ratings and when i got that one cleared out the rating showed up on the tivo. I need to recreate on another record that doesn't show rating correctly just by deleting that one feild and seeing what happens.


----------



## MichaelK (Jan 10, 2002)

wmcbrine said:


> In recent versions of my fork, metadata.py will read .TiVo files and output pyTivo metadata to stdout (use redirection to send it to a file).


can you put that in 'idiot speak' for me?  if there's no GUI I'm lost. If it's too complicated to explain then no problem, I'll play around with the tags on the wiki and see what i can figure out.

_nevermind- I found this http://pytivo.sourceforge.net/forum...eates-metadata-files-from-tivo-files-t36.html from dlfl that will read the .tivo meta data for the unwashed. (Thanks dlfl!)_


----------



## MichaelK (Jan 10, 2002)

Rdian06 said:


> Did you add that field yourself? The field names are case sensitive and the proper spelling of that one is " isEpisode".


i think that's the problem. there's apparently a bug in metadata manager 0.1.2.0 where it is using the wrong syntax for that tag. It looks to me like the issue is it uses capital F in false where Meta Generator 2.0.6.1 is using lowercase. the lowercase works but if you uppercase it then the ratings dont work.


----------

