 |
pyTivo Discussion Forum Answers and the development of pyTivo a TiVo transcoding server
|
|
| Author |
Message |
sicklybutsexy
Joined: 05 Mar 2008 Posts: 74 Location: chicago
|
Posted: Wed Mar 26, 2008 7:20 pm Post subject: |
|
|
| It is very inconsistent right now. For some reason I can get it to push some videos and not others and not all the time. |
|
| Back to top |
|
 |
krkeegan Site Admin

Joined: 04 Jan 2008 Posts: 412 Location: Los Angeles, CA
|
Posted: Wed Mar 26, 2008 7:35 pm Post subject: |
|
|
| Interesting, the push isn't instantaneous and I wonder if pushes can replace others. i.e. If I push two files before TiVo gets the request will it only transfer the second push? |
|
| Back to top |
|
 |
real_armooo pyTivo Creator
Joined: 23 Mar 2008 Posts: 42
|
Posted: Wed Mar 26, 2008 7:36 pm Post subject: |
|
|
| krkeegan wrote: | Armooo, in mind.py is it possible to replace xml.etree.elementree with xml.dom instead since this is in python2.4? I know it is not as easy to use and the code looks worse with it, but mind.py does not do too much xml interpretation. |
I think I am going to need to add more xml processing to support the subscription messages from the HME app on the tivo and to add correct error handling.
But what I did was try to import the 2.5 elementtree then standalone elementtree. And then only show a warning if it could not be found. Elementtree is even available as a package on sarge, so it is no different than people needing PIL for the photo plugin.
The next thing I plan to build is the XMPP part of the protocol so that we don't need to keep running tivo desktop just to download the available programs. And I think they should look a bit better transcoded with ffmpeg. |
|
| Back to top |
|
 |
real_armooo pyTivo Creator
Joined: 23 Mar 2008 Posts: 42
|
Posted: Wed Mar 26, 2008 7:37 pm Post subject: |
|
|
| krkeegan wrote: | Interesting, the push isn't instantaneous and I wonder if pushes can replace others. i.e. If I push two files before TiVo gets the request will it only transfer the second push? |
In my tests the tivo queued them up like the music video downloads. |
|
| Back to top |
|
 |
krkeegan Site Admin

Joined: 04 Jan 2008 Posts: 412 Location: Los Angeles, CA
|
Posted: Wed Mar 26, 2008 7:44 pm Post subject: |
|
|
| real_armooo wrote: | The next thing I plan to build is the XMPP part of the protocol so that we don't need to keep running tivo desktop just to download the available programs. And I think they should look a bit better transcoded with ffmpeg. |
Ummmmm, I don't have TD installed and it seems to work fine for me. What do you mean by available programs? |
|
| Back to top |
|
 |
real_armooo pyTivo Creator
Joined: 23 Mar 2008 Posts: 42
|
Posted: Wed Mar 26, 2008 7:51 pm Post subject: |
|
|
| krkeegan wrote: | | real_armooo wrote: | The next thing I plan to build is the XMPP part of the protocol so that we don't need to keep running tivo desktop just to download the available programs. And I think they should look a bit better transcoded with ffmpeg. |
Ummmmm, I don't have TD installed and it seems to work fine for me. What do you mean by available programs? |
On your tivo in Find Programs | Download TV, Movies & Web Video. Selecting one of the web videos there will send a XMPP message. Then you can make a HTTP call to get a list of waiting video subscriptions. Next download it and play the bodyOfferModify, subscribe game and the tivo will download it from you. (Transcoded to mpeg2) |
|
| Back to top |
|
 |
gmd
Joined: 08 Jan 2008 Posts: 28
|
Posted: Thu Mar 27, 2008 3:55 pm Post subject: |
|
|
| real_armooo wrote: | gmd, I updated a log statement to see what data was sent.
Could you try it again. |
| Code: |
<error><code>badArgument</code><text>IO error reading request body: java.io.IOException: unexpected type 49</text></error>
Traceback (most recent call last):
File "/home/gdunn/bin/pyTivo-20080327/plugins/video/video.py", line 474, in Push
subtitle = file_info['name'])
File "/home/gdunn/bin/pyTivo-20080327/mind.py", line 44, in pushVideo
offer_id, content_id = self.__bodyOfferModify(tsn, pc_body_id, description, duration, size, title, subtitle, url)
File "/home/gdunn/bin/pyTivo-20080327/mind.py", line 116, in __bodyOfferModify
raise Exception(ElementTree.tostring(xml))
Exception: <error><code>badArgument</code><text>IO error reading request body: java.io.IOException: unexpected type 49</text></error> |
_________________ pyTivoMetaThis - metadata via python - http://trac.kurai.org |
|
| Back to top |
|
 |
real_armooo pyTivo Creator
Joined: 23 Mar 2008 Posts: 42
|
Posted: Thu Mar 27, 2008 5:01 pm Post subject: |
|
|
| Code: |
<error><code>badArgument</code><text>IO error reading request body: java.io.IOException: unexpected type 49</text></error>
Traceback (most recent call last):
File "/home/gdunn/bin/pyTivo-20080327/plugins/video/video.py", line 474, in Push
subtitle = file_info['name'])
File "/home/gdunn/bin/pyTivo-20080327/mind.py", line 44, in pushVideo
offer_id, content_id = self.__bodyOfferModify(tsn, pc_body_id, description, duration, size, title, subtitle, url)
File "/home/gdunn/bin/pyTivo-20080327/mind.py", line 116, in __bodyOfferModify
raise Exception(ElementTree.tostring(xml))
Exception: <error><code>badArgument</code><text>IO error reading request body: java.io.IOException: unexpected type 49</text></error> | [/quote]
Was there a a python dictionary on the line above that output? The http post may also be handy. It looks like there may be a problem with how I am creating the binary post data. Are there any "strange" characters in the in any of the names? |
|
| Back to top |
|
 |
gmd
Joined: 08 Jan 2008 Posts: 28
|
Posted: Thu Mar 27, 2008 5:37 pm Post subject: |
|
|
| real_armooo wrote: | | Code: |
<error><code>badArgument</code><text>IO error reading request body: java.io.IOException: unexpected type 49</text></error>
Traceback (most recent call last):
File "/home/gdunn/bin/pyTivo-20080327/plugins/video/video.py", line 474, in Push
subtitle = file_info['name'])
File "/home/gdunn/bin/pyTivo-20080327/mind.py", line 44, in pushVideo
offer_id, content_id = self.__bodyOfferModify(tsn, pc_body_id, description, duration, size, title, subtitle, url)
File "/home/gdunn/bin/pyTivo-20080327/mind.py", line 116, in __bodyOfferModify
raise Exception(ElementTree.tostring(xml))
Exception: <error><code>badArgument</code><text>IO error reading request body: java.io.IOException: unexpected type 49</text></error> |
|
Was there a a python dictionary on the line above that output? The http post may also be handy. It looks like there may be a problem with how I am creating the binary post data. Are there any "strange" characters in the in any of the names?[/quote]
That was the output returned to the browser.
The console output from the post on was
| Code: |
send: 'POST /mind/mind7?type=bodyOfferModify&bodyId=tsn:6490001807F5DC8 HTTP/1.1\r\nAccept-Encoding: identity\r\nContent-Length: 579\r\nHost: mind.tivo.com:8181\r\nUser-Agent: Python-urllib/2.5\r\nConnection: close\r\nCookie: CAMS_SID_CAMSPRDCLUSTER_TIVOCOM=camsprdCluster-sjcamsprd01-tivocom-c965930e5b53acdf4392304a8fc5e2a842b1f027\r\nContent-Type: x-tivo/dict-binary\r\n\r\n'
send: '\x86bodyId\x01\x93tsn:6490001807F5DC8\x00\x8bdescription\x01\x9eIn a South Park homage to the 1981 film, Heavy Metal, the boys are trying to get Kenny off the latest drug craze thats captured the junior high and under set.\x00\x88duration\x01\x841305\x00\x8cencodingType\x01\x92mpeg2ProgramStream\x00\x89partnerId\x01\x8ctivo:pt.3187\x00\x88pcBodyId\x01\x92tivo:pc.1000030071\x00\x8bpublishDate\x01\x922008-03-28 01:3212\x00\x84size\x01\x89756064800\x00\x86source\x01\xc5file:/C%3A%2FDocuments%20and%20Settings%2FStephanie%2FDesktop%2FVideo\x00\x85state\x01\x88complete\x00\x88subtitle\x01\x80\x00\x85title\x01\x8dMajor Boobage\x00\x83url\x01\xd4http://192.168.1.2:9032/Television/South.Park.S12/South.Park.S12E03.DSR.XviD-0TV.avi\x00\x80'
reply: 'HTTP/1.1 200 OK\r\n'
header: Date: Fri, 28 Mar 2008 01:32:12 GMT
header: Server: Apache
header: X-requestId: mind.tivo.com:8181-1206667932002
header: Content-Length: 161
header: Connection: close
header: Content-Type: text/xml
__bodyOfferModify
{'subtitle': '', 'description': 'In a South Park homage to the 1981 film, Heavy Metal, the boys are trying to get Kenny off the latest drug craze thats captured the junior high and under set.', 'title': 'Major Boobage', 'url': 'http://192.168.1.2:9032/Television/South.Park.S12/South.Park.S12E03.DSR.XviD-0TV.avi', 'pcBodyId': 'tivo:pc.1000030071', 'bodyId': 'tsn:6490001807F5DC8', 'publishDate': '2008-03-28 01:3212', 'source': 'file:/C%3A%2FDocuments%20and%20Settings%2FStephanie%2FDesktop%2FVideo', 'state': 'complete', 'partnerId': 'tivo:pt.3187', 'duration': 1305, 'encodingType': 'mpeg2ProgramStream', 'size': 756064800}
<error><code>badArgument</code><text>IO error reading request body: java.io.IOException: unexpected type 49</text></error>g
192.168.1.4 - - [27/Mar/2008 21:32:13] "GET /TiVoConnect?Command=Push&Container=Television&File=%2FSouth.Park.S12%2FSouth.Park.S12E03.DSR.XviD-0TV.avi&tsn=6490001807F5DC8 HTTP/1.1" 500 -
----------------------------------------
Exception happened during processing of request from ('192.168.1.4', 54220)
Traceback (most recent call last):
File "SocketServer.py", line 464, in process_request_thread
self.finish_request(request, client_address)
File "SocketServer.py", line 254, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "SocketServer.py", line 522, in __init__
self.handle()
File "BaseHTTPServer.py", line 316, in handle
self.handle_one_request()
File "BaseHTTPServer.py", line 310, in handle_one_request
method()
File "/home/gdunn/bin/pyTivo-20080327/httpserver.py", line 85, in do_GET
method(self, query)
File "/home/gdunn/bin/pyTivo-20080327/plugins/video/video.py", line 474, in Push
subtitle = file_info['name'])
File "/home/gdunn/bin/pyTivo-20080327/mind.py", line 44, in pushVideo
offer_id, content_id = self.__bodyOfferModify(tsn, pc_body_id, description, duration, size, title, subtitle, url)
File "/home/gdunn/bin/pyTivo-20080327/mind.py", line 116, in __bodyOfferModify
raise Exception(ElementTree.tostring(xml))
Exception: <error><code>badArgument</code><text>IO error reading request body: java.io.IOException: unexpected type 49</text></error>
----------------------------------------
|
_________________ pyTivoMetaThis - metadata via python - http://trac.kurai.org |
|
| Back to top |
|
 |
real_armooo pyTivo Creator
Joined: 23 Mar 2008 Posts: 42
|
Posted: Thu Mar 27, 2008 6:34 pm Post subject: |
|
|
| I am willing to bet it will work if you shorten the description. It looks like I am not packing the length of strings over 127 characters correctly. I am going to guess they are using variable width ints. |
|
| Back to top |
|
 |
real_armooo pyTivo Creator
Joined: 23 Mar 2008 Posts: 42
|
Posted: Thu Mar 27, 2008 9:33 pm Post subject: |
|
|
Ok the newest version can send strings of unlimited length. So your transfer should work.
If you want to know it is network order 7 bit data bit 8 set on the last byte. |
|
| Back to top |
|
 |
menos
Joined: 09 Feb 2008 Posts: 15
|
Posted: Sat Mar 29, 2008 7:32 pm Post subject: |
|
|
| So whats it looking like for pytivo to auto send for a directory? |
|
| Back to top |
|
 |
real_armooo pyTivo Creator
Joined: 23 Mar 2008 Posts: 42
|
Posted: Sun Mar 30, 2008 5:37 pm Post subject: |
|
|
| My computer thought friday would be a good day to die so I did not get to make any progress over the weekend. |
|
| Back to top |
|
 |
krkeegan Site Admin

Joined: 04 Jan 2008 Posts: 412 Location: Los Angeles, CA
|
Posted: Sun Mar 30, 2008 6:42 pm Post subject: |
|
|
| aww that sucks. Were you able to get everything working again? |
|
| Back to top |
|
 |
real_armooo pyTivo Creator
Joined: 23 Mar 2008 Posts: 42
|
Posted: Sun Mar 30, 2008 8:10 pm Post subject: |
|
|
No, for the past few months it has been very unstable. GCC and ffmpeg would segfault all the time. This past week my usb keep dieing at random.
And finally on Friday the SATA controller gave up. So my guess is that the mb went. But I did not like the prices on 939 boards with agp. So I got a new board/cpu/mem from newegg so it should be in on Wednesday/Thursday. |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
|