Note that with the above flash example I was able to get Premiere to respond to left/right/select remote presses so looks at least some rudimentary remote control input seems to be possible.

NOTE: This works whether using SDUI or HDUI.

I know very little about flash programming but exploring a little more I made a simple "Hello World!" ActionScript 2 script and compiled to swf with the free mtasc compiler and served up the resulting swf to my Premiere via a simple Python web server and verified that it ran.

Don't know if a fully custom flash application responding to various remote control presses is possible and if for example serving up video through flash would be possible as well. Above simple "Hello World!" script is as far as I got. I tried to do a little with event listeners to see if I could figure out how to capture remote control presses but didn't get anywhere with that.

At any rate I thought this was at least mildly interesting and figured I would post here to see if anyone perhaps with more flash experience has an interest in exploring this further. I can post some code for someone to get going on this and replicate what I have done so far if there is any interest.

Basically to get started edit run.bat (Windows) or run.sh (Linux) to set your Series 4 IP and your 10 digit MAK and then just run the script.

Once you have the sheep swf working if you like you can make your own and use webserver to serve it up. Start with provided sample.swf file as starting point. You can test webserver with your browser first.

NOTE: If you give a bad URL you could hangup your Premiere GUI for a while (I've done it a couple of times). Use at your own risk, etc.
It's late so I may have messed up making the package. Let me know if something is missing or not clear.

(NOTE: I would have preferred to keep everything Python for simplicity but I'm not sure how to do socket PKCS12 authentication with Python and since kmttg.jar has pretty much everything needed I was lazy and just used it. Technically current software doesn't need PKCS12 authentication but it will be needed in "Spring" software release so I'm already ready for that.)

I couldn't get your package to run on my Mac; it said 'Exception in thread "main" java.lang.NoClassDefFoundError: Main'. Anyway, I took the info from above and put it into a Python script from the "Discovering the iPad interface" thread. I'll worry about PKCS12 authentication later.

The sheep game doesn't play too well, but here's a game that fully works:

Attached Files:

Still hoping someone that is familiar with Flash can run with this.
ActionScript 2 kind of blows as a language from the little I played with it and apparently is being phased out. ActionScript 3 seems better but a similar "Hello World" swf I created using as3 via FlashDevelop didn't run on TiVo (browser worked fine). There seems to be many kinds of Flash so just figuring out what the TiVo player will or will not play may be a challenge. I guess TiVo is using "Adobe Air" whatever that is (and apparently is not going to be further developed by Adobe).

First step would be to figure out how to respond to remote control presses with eventual goal of trying out video. Really hope that annoying 1.1GB buffer limit is not in play here since that's the real killer of the non-flash HME method (which is copy rather than stream). There must be a way to stream via Flash rather than copy. I figure the upcoming revamped Netflix & YouTube HME apps being talked about in the TCF forums are most likely Flash based and use streaming.

First step would be to figure out how to respond to remote control presses with eventual goal of trying out video. Really hope that annoying 1.1GB buffer limit is not in play here since that's the real killer of the non-flash HME method (which is copy rather than stream). There must be a way to stream via Flash rather than copy. I figure the upcoming revamped Netflix & YouTube HME apps being talked about in the TCF forums are most likely Flash based and use streaming.

Click to expand...

I wouldn't think that would be a problem with FFmpeg and rtmp streaming. Hulu+ is serving up flv files through rtmp (well encrypted rtmp). Would be easy to mux streams into a flv to serve up. The rest of the framework is the real work

edit: I meant to say FFmpeg along with a FMS server. I believe there are a few opensource Python modules that could be used for the purpose.

I wouldn't think that would be a problem with FFmpeg and rtmp streaming. Hulu+ is serving up flv files through rtmp (well encrypted rtmp). Would be easy to mux streams into a flv to serve up. The rest of the framework is the real work

edit: I meant to say FFmpeg along with a FMS server. I believe there are a few opensource Python modules that could be used for the purpose.

Click to expand...

That certainly sounds promising.
So far I've been unable to get any compiled AS3 code to run. Only compiled AS2 code seems to run for me so far. I actually have keyboard event listener working in AS3 code that works when running in a browser.

That certainly sounds promising.
So far I've been unable to get any compiled AS3 code to run. Only compiled AS2 code seems to run for me so far. I actually have keyboard event listener working in AS3 code that works when running in a browser.

Click to expand...

I don't profess to know anything about Flash but at one point the Copyright & Trademarks screen under System Info on the TiVo listed AS2 modules being used for its interface. I've heard they are migrating to Air and Flash Lite but I'm uncertain how that relates to the full Flash API versioning as far as feature and scripting compatibility would go.

I get no response at all from uiDestinationInstanceSearch. Every other command seems to work. Python script works. Auth and keys work. Have tried setting body_id to the TSN in both the header and body with no luck. The box doesn't reply at all. No error, nothing. Authentication and other keys work like Pause, etc.

The log output looks sane. I feel like something is missing from the command. Have tried against both an Elite and a normal Premier. Anyone have maybe a raw log output from a working uiDestinationInstanceSearch that is verified against a real box?

I get no response at all from uiDestinationInstanceSearch. Every other command seems to work. Python script works. Auth and keys work. Have tried setting body_id to the TSN in both the header and body with no luck. The box doesn't reply at all. No error, nothing. Authentication and other keys work like Pause, etc.

The log output looks sane. I feel like something is missing from the command. Have tried against both an Elite and a normal Premier. Anyone have maybe a raw log output from a working uiDestinationInstanceSearch that is verified against a real box?

Click to expand...

If using the python script you need to add printing of return values. i.e. After:
result = self.Read()
Add:
print result

Looks like the tunerStateEventRegister call has changed since the initial research last year. It now complains "Must specify monitoring." Anyone know what to pass for that? The error is mentioned in the old thread, but none of the samples use it so I assume this was a software change. I've tried passing "true" and "foreground" with a "monitoring" parameter but no dice.

Looks like the tunerStateEventRegister call has changed since the initial research last year. It now complains "Must specify monitoring." Anyone know what to pass for that? The error is mentioned in the old thread, but none of the samples use it so I assume this was a software change. I've tried passing "true" and "foreground" with a "monitoring" parameter but no dice.

Click to expand...

As defined in python script the 'monitor' parameter is type Boolean not string so should be either True or False (which in turn will set ResponseCount in header to either 'multiple' or 'single'). So in this case you should set it to True. I use this one in kmttg so I know it works.

So I take it nobody has pursued this further? My challenge to someone willing to look into it further is to get full screen FLV video via ActionScript 2. Bonus points for some basic trick play functionality included (keycodes for most TiVo remote buttons are posted above). Double bonus points for using streaming instead of loading a whole movie. One would think that would be trivial since after all Flash was designed with video in mind but I found AS2 language extremely poor and unintuitive and spent half a day searching for a way to do it and found nothing. Little wonder AS2 was abandoned in favor of AS3 but of course leave it to TiVo to apparently only support the older/crappier AS2. I knew nothing about Flash stumbling into this functionality and now I'm starting to see why Steve Jobs never endorsed it...

I think the mdns trace code will need to be revived. With data that is somewhat old now, the last comments were that the mdns SSL MITM trace code from arantius didn't seem to work with 1.5 yet. As it's now 1.9.1, I think some things have changed. I noticed various windowing-style behaviors that are unexplained. The Flash thing you mention sounds like one of those where you may need to tell the UI navigator where to be first.

In particular, I can't figure out how to change channels -- other than sending 4 separate key events of course. This can obviously be performed via the API and the official app does it, but the traces seem to have captured only how to navigate to a recording. Given the ability to get fresh data from the app, I think virtually any question could be resolved.