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

Discovering the iPad interface

Discussion in 'TiVo Underground' started by wmcbrine, Jan 18, 2011.

  1. bradleys

    bradleys It'll be fine....

    3,687
    4
    Oct 31, 2007
    Is there any reason why the mini platform would not support the Opera App Store?

    Can we reasonably expect to see the browser implemented into a future software update?
     
  2. moyekj

    moyekj Well-Known Member

    11,134
    27
    Jan 23, 2006
    Mission...
    The Mini already does run HTML5 - it has same software as the Roamios. You can bring up web pages on the Mini. Also my proof of concept HTML5 video player code I posted in this thread works for true video streaming to the Mini.
     
  3. bradleys

    bradleys It'll be fine....

    3,687
    4
    Oct 31, 2007
    Thanks - I will try to play with it tomorrow.
     
  4. Oct 1, 2013 #284 of 366
    Philmatic

    Philmatic Member

    524
    0
    Sep 17, 2003
    Yes, but it works fine in Chrome on the desktop. It's straight jQuery/Modernizr, which is why I thought it would work on the TiVo, pity.
     
  5. Oct 1, 2013 #285 of 366
    moyekj

    moyekj Well-Known Member

    11,134
    27
    Jan 23, 2006
    Mission...
    Yes I think the built in browser has pretty minimal support for anything including audio and video tags right now. If there is an html5 version designed to run on TVs it would likely run on the TiVo. That being said I use the current Pandora client on the TiVo every day and it works fine for my needs.
     
  6. rocket777

    rocket777 New Member

    55
    0
    Sep 11, 2013
    I stumbled onto this thread today and have read the first 30% of it. I'm up to the python scripts.

    I installed python in a virtual machine, got a copy of simple json, copied in my ip address and mak and let remote1.py rip. I get an error:

    ssl.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:547)

    The file remote1.py I got at github submitted by arantius.

    Do these scripts still work, and in particular, I've got a roamio. I'm a complete novice at python, but I've programmed in other languages. I was hoping to use this script to as a guide to getting moyekj's script going (on post 73 of this thread) to send jumps.

    Forgive me if later in this thread there are answers to this, I've spent the day reading this thread and the links trying to get the sample python program going. Since this is my 10th post, perhaps some of the hidden links will give me info I couldn't see before :)
     
  7. moyekj

    moyekj Well-Known Member

    11,134
    27
    Jan 23, 2006
    Mission...
    TiVo caught wind of the reverse engineering and made things harder by introducing PKCS12 authentication with a client side certificate and password. Took quite a bit of detective work to figure out where the certificate was and the associated password, but eventually I figured it out and updated kmttg (Java code) to use. Since then TiVo has made it even harder by further obfuscating the Android app and so it's becoming increasingly more difficult. Certificate I'm currently using expires early next year which is an obstacle I'm not looking forward to overcoming (having to uncover new certificate and associated password will be much harder and likely will have to be done based on the iOS app which is itself pretty obfuscated as well).
    Anyway, long story short, the python code would need SSL sockets with PKCS12 authentication which there has been no code posted for in this thread. (Likely is possible but nobody has posted working code for it here).

    There's a faint possibility that TiVo may at some point provide an official SDK documenting the mindrpc protocol and providing some official mechanism to get your own certificate + password after registering the app with them. But TiVo has not shown any interest in promoting 3rd party development since they stopped encouraging open source HME development and their Flash-based SDK was a short-lived complete joke. So I don't have high hopes for anything significant to develop but hope I'm wrong.
     
  8. arantius

    arantius New Member

    60
    0
    Jul 25, 2009
    They TiVo-ized it. Even though kmttg and DVR Commander are both open source, the certificates are not and cannot be, so contributing patches is .. not straightforward.

    It absolutely could work. I have a script I wrote for my own purposes which does it. But I can't (effectively) distribute it.

    Don't hold your breath. A while back I was pointed at http://www.tivo.com/developers -- but now that's just a message saying that program is effectively dead. (And I don't think it ever went anywhere.)
     
  9. rocket777

    rocket777 New Member

    55
    0
    Sep 11, 2013
    Hmmm, this appears to put a stop on my using the python script in a pipeline so I could write my own little "remote". The idea was this:

    myprogram | python-script

    Then myprogram could be coded in a language I know (tcl/tk). I figured I could hack the python script to read from stdin turning it into a driver for myprogram.

    Sooooo, with that in mind, and the python script not working, I downloaded the latest source of kmttg, and with :up::up::up: on the instructions for building it from source, I was able to get the latest version going with ease (and confirmed the new fractional minutes mod).

    I then found in the code where I could add another command line option that would let me use kmttg as a driver. I only need to leverage on the code that sends forward/backward skips, plus pause and unpause.

    The idea is to turn a wireless mouse into a remote controller with a scroll wheel and 2 buttons. I have written just such a program for driving the vlc media player.

    But before I plunge ahead, however, I was wondering if this seems like a straight forward mod for kmttg. Any suggestions would be appreciated.
     
  10. arantius

    arantius New Member

    60
    0
    Jul 25, 2009
    If you've got the cert to make a connection, the python script (at least the second version) can be rather trivially modified to make an SSL connection with that cert. I.E.

    Code:
        self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.ssl_socket = ssl.wrap_socket(
            self.socket, certfile=os.path.join(DIR, 'keystore.pem'))
        self.ssl_socket.connect((config.tivo_addr, 1413))
    But there's no Python code to make RPCs besides the extremely trivial examples linked above that I know of. If all you want to do is simulate remote presses, I guess it's enough.

    I think it's somewhat expensive to set up the SSL connection (for both client and server) so perhaps a daemon holding this connection would be best, if you want transient processes to be sending requests.
     
  11. rocket777

    rocket777 New Member

    55
    0
    Sep 11, 2013
    Well, not exactly keypresses (of the commands on the existing tivo remote), but rather to be able to skip forward and back quickly by about 5 seconds per mouse wheel click. This amount lets you still see a flow. It's for skipping through a show, not commercials - mouse clicks are for the instant ad skipping. E.G. in a football game, one might scroll from play to play. Much easier than groping a remote for ff and rew or replay etc. More fun! I've tried this out on a game I transferred to my computer and played back in vlc player.

    Yes, from what I could see in wireshark, there's about 20 or so packets per click on the skip button in kmttg. With the latest beta, I set up a 5 second skip and with quick mouse clicks to simulate how quickly I would be twirling the mouse wheel, it seems do-able.

    With vlc player, I have to do an html request per skip. It's still fast enough, even with the remote on my laptop and the player on my media computer.

    For tivo, Id make right click = pause, left click = 1.9 or 2.9 minute skip forward - perfect for either football or baseball - most of my viewing.

    One somewhat tricky item is to bind to any mouse movement and keep the pointer in the center of your own window, so you don't lose focus when the mouse moves. Then you can just put the mouse down on the couch, like it was a regular remote. No need to take your eyes off what your watching. I usually just close the lid on my laptop. When I need to release the mouse, any keyboard key unlocks the mouse from my program.

    Since I've already done all this in tcl, that's why I was thinking of a pipeline approach. Add a checkbox and a popup menu selection to my script and an exec call to create the pipe and I'm nearly done on the tcl side.
     
  12. alauppe

    alauppe New Member

    10
    0
    Jun 24, 2006
    Michigan
    this stuff blows my mind. keep digging!
     
  13. moyekj

    moyekj Well-Known Member

    11,134
    27
    Jan 23, 2006
    Mission...
    FYI, the 20.3.7 software update made things worse for HTML5. Now when you start a web page it no longer grabs focus by default, so I'm unable to scroll through any elements of the page or insert text, etc.
     
  14. Nov 1, 2013 #294 of 366
    moyekj

    moyekj Well-Known Member

    11,134
    27
    Jan 23, 2006
    Mission...
    Series 4 units with 20.3.7 software now support HTML5 as well and have the same bug as with Roamios (not grabbing focus).
     
  15. Nov 1, 2013 #295 of 366
    herbman

    herbman Member

    114
    0
    Apr 8, 2008
    How does the rendering speed feel?

    Without focus could something still run some kind of benchmark with an onload? i.e. sunspider, kraken, etc.

    premiere 2 tuner vs premiere 4 tuner vs Roamio basic vs roamio others would be interesting.
     
  16. Nov 1, 2013 #296 of 366
    herbman

    herbman Member

    114
    0
    Apr 8, 2008
    Other thought, any way to set focus to a known element, or even document element, via javascript on page load?
     
  17. Nov 2, 2013 #297 of 366
    moyekj

    moyekj Well-Known Member

    11,134
    27
    Jan 23, 2006
    Mission...
    The YouTube html app runs fine on the Premiere now:
    http://www.youtube.com/tv
    I ran it on my 2 tuner Premiere and while clearly slower than on a Roamio it was actually not too sluggish and very useable. My guess is TiVo is waiting for the general release of 20.3.7 software to be deployed before making it the default YouTube version for series 4 units.
     
  18. Nov 2, 2013 #298 of 366
    moyekj

    moyekj Well-Known Member

    11,134
    27
    Jan 23, 2006
    Mission...
    For your own apps sure:
    document.getElementById('id').focus()

    But it used to happen automatically before. Now for example even when you run opera:about there is no way to scroll page down because the main canvas doesn't have focus.
     
  19. Nov 2, 2013 #299 of 366
    moyekj

    moyekj Well-Known Member

    11,134
    27
    Jan 23, 2006
    Mission...
    FYI, you can launch html version of netflix on series 4 or 5 TiVos using following RPC command:
    Code:
    {
    "type":"uiNavigate",
    "bodyId":"tsn:xxxxxxxxxxxxxxx",
    "uri":"x-tivo:netflix:netflix"
    }
    
    Similar to YouTube it's a little sluggish on series 4 units but functional. So we might well get html version of Netflix along with YouTube on series 4 units when TiVo decides to flip the switch.
    (I was wondering why on the Roamio it has "uiDestinationType":"flash", but that parameter is not needed at all and seems irrelevant given the special netflix uri - x-tivo:netflix).
     
  20. moyekj

    moyekj Well-Known Member

    11,134
    27
    Jan 23, 2006
    Mission...
    20.3.8 software still has this bug and brought back one of the stupid HDUI wishlist issues again - so a step backwards.
     

Share This Page