1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

pyTivo - Transcoding server

Discussion in 'TiVo Home Media Features & TiVoToGo' started by armooo, Nov 25, 2006.

  1. Spenner

    Spenner Member

    87
    1
    Mar 28, 2006
    That doesn't work. I had tried changing the file Created, Modified, and Last Accessed dates with a similar utility, and when pushed they showed on Tivo as the date of the push.
     
  2. orangeboy

    orangeboy yes, I AM orangeboy!

    4,083
    0
    Apr 19, 2004
    East Moline, IL
  3. wmcbrine

    wmcbrine Ziphead

    10,364
    22
    Aug 2, 2003
    Indeed I'm not. But, if what he's looking for is pushes initiated from the TiVo side, I believe that Streambaby has that functionality.
     
  4. lew

    lew Active Member

    3,954
    3
    Mar 12, 2002
    You get to decide what new features are worth the time it takes implement. I have no idea how much effort it would take to push from the tivo side. The fact that is sounds easy to me doesn't really mean anything.:)

    There are significant advantages to pushing a MP4 file. If the viewer knows the program is "pushable" he can either push it from the PC or even use Streambaby (although I prefer to transfer the program). There is an advantage in converting a pull request to a push. The viewer doesn't have to know if the program is a format that should be pushed. PyTivo would automatically make the decision. That makes sense if a number of programs are being stored on a PC and will be viewed by multiple family members on multiple tivos. The family member requesting the program won't necessarily know which programs to request from "My Videos" and which programs should be viewed with Streambaby and/or pushed from a PC. Plus it's easier to just select the programs you want to view from the My Videos section of the NPL.

    I don't think I need the feature enough to take the time to learn Python.

    edited to add--I don't know how many PyTivo users are transcoding their videos into a pushable MP4 format. This may be a feature that would benefit releatively few users.
     
  5. wmcbrine

    wmcbrine Ziphead

    10,364
    22
    Aug 2, 2003
    It's not a question of time; it's just the wrong way to do things. The family member who doesn't know what format the file is in isn't going to pleased when they try to start a transfer and get an error message, only to have the program mysteriously start appearing in the NPL a few minutes later. You'd also remove the ability to actually pull any files that are pushable, which is sometimes needed. pyTivo and the TiVo box don't always agree on what's pushable, so pull needs to be available as a fallback. Plus there's the startup delay when pushing, which in some cases may be more important than total transfer time.
     
  6. lew

    lew Active Member

    3,954
    3
    Mar 12, 2002
    This could be a feature which, by default, would not be enabled. Posters who want a faster startup time would not enable this feature.

    JMO but I think it wrong to pull a file that can be pushed. The MP4 file will (almost always) take less space on the tivo and will transfer faster.

    You've done a good job explaining your point. It doesn't make sense for you to implement a feature you think is wrong. I'll stop suggesting this feature.

    Of course my suggestion assumes pyTivo can reliably determine if a file is pushable. Probably applicable to users who use the same paramenters in transcoding a number of videos.
     
  7. audiodane

    audiodane New Member

    127
    0
    Oct 28, 2009
    It's really not that hard at all. Not a lot of manual work, either. Just pick some arbitrary seriesId value (such as "MyKidsMovies" or just about anything using A-Z and 0-9. I don't know if spaces or hyphens are allowed, but there are plenty of choices without such characters since it's never really a "seen" value. You could name it "11111111" if you wanted and it would work the same. It just has to be unique.), and put that in the metadata file along with the other information. Add isEpisode:true, also. Use seriesTitle: to set the folder name, and episodeTitle: to set the name of the individual episode.

    You don't really need to do any dummy file pushing. It won't create a folder until there are at least two items with the same seriesId value, BTW, so make sure you push at least two.

    Quick summary: (add to metadata file)
    seriesId: <somevalue>
    seriesTitle: <name of folder on Tivo>
    isEpisode: true
    episodeTitle: <name of file being pushed>

    - also note that you don't need to use quotation marks. If you do, they'll show up as a part of the title itself. :p

    Limitations: pushing doesn't yet support recordedOn date pushing, and I think a number of other tags aren't transferred w/ push.. As a result, I have moved to PULL transfers.

    Note: PULL'ing does not support arbitrary folders, however it does support grouping into folders based on program guide data. Go to "wishlist search" and pick a keyword and find any matches that may suite your needs. "Home Movies", "KidSpace", and "At the Movies" are three folders currently in our program guide data that we're now using for our own PULL'd content. I found those three folders by doing wishlist searches using keywords "movie" and "kid" and going through all the upcoming episodes of matches found. You can probably find the seriesId of any show online, or you can just record one episode and use the extractIds.py script to pull off the list of seriesId's currently in your NPL. (Also note that it seems you cannot PULL into a PUSH-created arbitrary folder. Another note is that you really don't need to set the seriesTitle of PULL'd content when using existing seriesId values, since the Tivo already has it in its guide data..)

    I agree (and no offense to william) that it can be frustrating to request a feature that someone could really find useful to have william nix the idea outright. However, he's done so much wonderful work to bring us his own fork of pyTivo that it's understandable for he to be able to decide such things! :) After all, all the hard work he's done is completely open-source and can be looked at and modified by anybody else.

    This approach (modifying an existing fork) is the one that I've taken to include a feature that I wanted added that william nix'd -- I've grabbed TheBayer's dvdvideo plugin and modified it to add my own timestamp "workaround." It took about a day to learn python JUST enough to get my modification done, but it's a minimal modification and gets the job done very well..

    I'm currently trying to get dynamic range compression working but am having very little success there.. :( I'm also learning the differences between Parental Controls and KidZone so that I can have a properly made plan before I start pulling all my content over to the Tivo..

    Cheers and Kudos to wmcbrine and rdian06 and so many others who have made pyTivo even possible at all!

    ..dane
     
  8. PaulS

    PaulS Member

    674
    1
    Sep 16, 2002
    Southern NH
    Agreed, it's really simple once you know how things work.
    I did precisely this kind of thing to get my kids' movies all in one folder on the TiVo.

    Summary :
    1. All the kids' movies are in a single folder on my PC's filesystem.
    2. In that folder is a file named default.txt. It's contents :
    Code:
    seriesId : KidMovies
    
    3. For each movie in that folder, there is a very simple accompanying metadata file in the same folder. For example, for the video Movie.mpg, there would be a metadata file named Movie.mpg.txt. It's contents :
    Code:
    title : Movie
    
    That's really all you need to do to create a custom folder using push. You can add more metadata as you'd like (title, description, actors, etc), but to do the grouping creation, this is really all you need.
     
  9. orangeboy

    orangeboy yes, I AM orangeboy!

    4,083
    0
    Apr 19, 2004
    East Moline, IL
    Is there a definitive list or table of metadata fields that are supported by push and pull? I see a list of 24 keywords on the pyTivo Wiki, but only a passing reference to "push":

     
  10. reneg

    reneg Member

    699
    0
    Jun 19, 2002
    I side with wmcbrine. Pytivo developers can't change the Tivo side of pull, and erroring out on a pull is a kludge. Plus, when a program is pushed, it gets transfer prohibited.

    Nothing is published by Tivo as to what is supported under push. If you look at the fields displayed in Web Videos on your Tivo, that will give you a pretty good idea of which metadata fields can be supported.

    If you can network sniff and decode a SSL connection, perhaps more could be determined. I know that I'd love to be able to figure out how to extract the NPL and ToDo lists from my Tivo. I know they are sent back to the Tivo mothership for their web interface.
     
  11. wmcbrine

    wmcbrine Ziphead

    10,364
    22
    Aug 2, 2003
    Here's what we have so far for push:

    title/seriesTitle
    episodeTitle
    description

    Impressive list, isn't it? :) I'm fairly sure that at least some others are possible, but this is all we know how to do right now. There's also grouping based on seriesId, but that doesn't actually use the seriesId in the way pull does. And there's also an attempt to set the date, but I recently found that this is apparently not doing anything.

    Amazon Unbox movies have ratings and star ratings, right? Or don't they? It's been a while since I looked at one... If they do, then in principle we can too.
     
  12. AbMagFab

    AbMagFab What happened, TiVo?

    3,638
    0
    Feb 5, 2001
    Okay, so how do you create a metadata file? The original post on this topic mentions a tool is needed, implying this isn't just a simple text file. And there's no link. The only tool that comes close to what is mentioned is Mac-only.

    Am I missing something here? I get the steps are easy once you have a metadata file, but how do you create one to begin with? And where do you put it?
     
  13. lew

    lew Active Member

    3,954
    3
    Mar 12, 2002
    http://pytivo.sourceforge.net/forum/other-apps-f5.html
     
  14. reneg

    reneg Member

    699
    0
    Jun 19, 2002
    A metadata file is a text file.
     
  15. PaulS

    PaulS Member

    674
    1
    Sep 16, 2002
    Southern NH
    It's a simple text file. You can use just about anything to create/edit it.
     
  16. wmcbrine

    wmcbrine Ziphead

    10,364
    22
    Aug 2, 2003
    Valid locations:

    dirname/filename.mpg
    dirname/filename.mpg.txt

    dirname/filename.mpg
    dirname/.meta/filename.mpg.txt

    Also -- these apply to all files in the directory:

    dirname/filename.mpg
    dirname/default.txt

    dirname/filename.mpg
    dirname/.meta/default.txt

    I hope that's clear. And yes, it's a simple text file. Personally I've never used any of the generator tools.

    P.S. I know this is a long thread, but the creation of the metadata text files was hashed out right here, starting around post 963, taking its present form in post 989. I don't know what you're talking about when you say "The original post on this topic mentions a tool is needed".
     
  17. AbMagFab

    AbMagFab What happened, TiVo?

    3,638
    0
    Feb 5, 2001
    Thanks.

    And it was this post in this other (similar) thread that mentions needing a tool called "metagenerator":
    http://tivocommunity.com/tivo-vb/showthread.php?p=7555181#post7555181
     
  18. Rdian06

    Rdian06 New Member

    463
    0
    Apr 12, 2008
  19. Dec 1, 2009 #2599 of 5683
    dm_

    dm_ New Member

    19
    0
    Nov 4, 2009
    Dumb question - does anyone know if push works for Australian tivo users? I've tried setting tivo_username and tivo_password to the email address and password I use on mytivo.com.au, but I get the following message when I try and push:


    DEBUG:pyTivo.video.video:pushing http://192.168.0.2:9032/Video/temp/All_Of_The_Dreamers.mp4
    DEBUG:pyTivo.mind:__login
    {'cams_security_domain': 'tivocom', 'cams_login_config': 'http', 'cams_cb_password': 'mypassword', 'cams_original_url': '/m
    ind/mind7?type=infoGet', 'cams_cb_username': 'username@myemaildomain'}
    DEBUG:pyTivo.mind:pcBodySearch
    {}

    <error><code>badCookie</code><debug>1</debug><text>Cookie cannot be authenticated; try login again</text></error>g
    DEBUG:pyTivo.mind:pcBodyStore
    {'replaceExisting': 'true', 'name': 'pyTivo'}

    <error><code>badCookie</code><debug>1</debug><text>Cookie cannot be authenticated; try login again</text></error>g
    DEBUG:pyTivo.mind:pcBodySearch
    {}

    <error><code>badCookie</code><debug>1</debug><text>Cookie cannot be authenticated; try login again</text></error>g
    INFO:pyTivo:127.0.0.1 [01/Dec/2009 23:39:19] "POST /TiVoConnect HTTP/1.1" 500 -
    ERROR:pyTivo:Exception during request from ('127.0.0.1', 49036)
    Traceback (most recent call last):
    File "/usr/lib/python2.5/SocketServer.py", line 464, in process_request_thread
    self.finish_request(request, client_address)
    File "/usr/lib/python2.5/SocketServer.py", line 254, in finish_request
    self.RequestHandlerClass(request, client_address, self)
    File "/scratch/davidm/tivostuff/wmcbrine/httpserver.py", line 56, in __init__
    client_address, server)
    File "/usr/lib/python2.5/SocketServer.py", line 522, in __init__
    self.handle()
    File "/usr/lib/python2.5/BaseHTTPServer.py", line 316, in handle
    self.handle_one_request()
    File "/usr/lib/python2.5/BaseHTTPServer.py", line 310, in handle_one_request
    method()
    File "/scratch/davidm/tivostuff/wmcbrine/httpserver.py", line 110, in do_POST
    self.handle_query(query, tsn)
    File "/scratch/davidm/tivostuff/wmcbrine/httpserver.py", line 132, in handle_query
    method(self, query)
    File "/scratch/davidm/tivostuff/wmcbrine/plugins/video/video.py", line 383, in Push
    mime = mime)
    File "/scratch/davidm/tivostuff/wmcbrine/mind.py", line 48, in pushVideo
    pc_body_id = self.__pcBodySearch()[0]
    IndexError: list index out of range

    I'm happy to do traffic sniffing if that is what it takes to figure out what the code _should_ be doing :)
     
  20. Dec 1, 2009 #2600 of 5683
    wmcbrine

    wmcbrine Ziphead

    10,364
    22
    Aug 2, 2003
    Push works for Australian users, last I heard, but you have to set tivo_mind to symind.tivo.com:8181 in pyTivo.conf.
     

Share This Page