# pyTivo and kmttg



## orangeboy (Apr 19, 2004)

Just a quick question: Does pyTivo support programId metadata when *pulling* from a PC? 

I'm using kmttg to process Tivo files (download, decrypt, QS fix, Ad detect, and Ad Cut) and for the most part, push the processed files back using pyTivo. On occasion, the push fails and I resort to pulling from Tivo, again, using pyTivo. 

The problem with this is the metadata associated with the processed file doesn't include the programId, and kmttg doesn't know that the pulled file should be ignored. kmttg keeps a history file, using the programId as a key to whether or not allow the program is to be downloaded again. As a result, kmttg downloads the processed file and does it's thing again: download, decrypt, QS fix, Ad detect, and Ad Cut.

I see the easiest fix as being pyTivo including the programId when a file is pulled from the PC to the Tivo, and kmttg adding programId to it's metadata file. Of course it all depends on the answer to my question at the top of this post!

Thanks guys for providing some VERY useful tools! :up:


----------



## orangeboy (Apr 19, 2004)

orangeboy said:


> Just a quick question: Does pyTivo support programId metadata when *pulling* from a PC?


Any insight here?


----------



## AudioNutz (Nov 10, 2008)

Yes.


----------



## orangeboy (Apr 19, 2004)

AudioNutz said:


> Yes.


Cool. I'll start populating an additional line into the metadata file to account for this field. That should prevent unnecessary work with kmttg. Thanks!!!


----------



## Rdian06 (Apr 12, 2008)

AudioNutz said:


> Yes.


Umm, I just looked at the pyTivo video templates and didn't see anything referring to programId. Also looked in metadata.py and it's not mentioned in there anywhere.

Maybe you're thinking of the seriesId?

Given that it's not in the video templates, I doubt that programId would be propagated to the Tivo on a pull. That is unless it's working in some mysterious way in which the code doesn't have to reference the field by name...


----------



## txporter (Sep 18, 2006)

Pull and push from pytivo work differently with the seriesID. The seriesID that you get from the Tivo is how programs are grouped based on its (the tivos) database. If you _pull_ with pytivo, your programs will be grouped according to that same database on the Tivo.

However, when you _push_ a file with pytivo, the seriesID is used for grouping those files only on your PC side. Some new seriesID is created and added to the Tivo database that will group all of the pushed files (with the same seriesID on the PC side) together.

(The following example assumes that you have a metadata file for your videos that includes the correct seriesID from your tivo.) Let's say you have you have 5 episodes of Lost that you tried to push back up to your Tivo, but one of them fails. If you go onto your Tivo and _pull_ the file, it will group with the original videos but not with the pushed videos.

The easiest way to keep them all grouping, would be to go into the pytivo web interface (localhost:9032), and push the video that failed up onto your tivo. It will group with the others.

Also, just a note, if you were re-encoding your downloaded videos to h.264 before pushing them up, pulling from tivo will force pytivo to transcode h.264 back to mpeg2.


----------



## moyekj (Jan 24, 2006)

The OP was looking for a way to control what *programId* is used for pyTivo pull transfers which I don't believe is possible.


----------

