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

Today's HME discoveries: Back Button, Quick Mode, etc.

Discussion in 'Developers Corner' started by davidblackledge, Dec 11, 2016.

  1. davidblackledge

    davidblackledge Registered lÜser

    476
    3
    Sep 9, 2008
    NM
    Playing around with a "recreate the TiVo UI" HME app because my wife hates the Guide (and emboldened by a recent post by somebody else who wants the guide improved).

    First, a little while back I was messing with Network Remote UI... ran it against my keycode-exposing HME app and found that a lot of mystery keys are available in V49 as rawcodes. This includes the Back button.
    So I can catch somebody pressing the Back button if I run as a V49 app, then when I see a keypress with code of 0, I just check for a rawcode of -7680
    Others available that way include CC_ON, TUNER_SWITCH (which isn't available through anything currently), ASPECT_ codes, VIDEO_MODE_ codes, etc. I think you can get anything that doesn't teleport you out of HME.

    Second, since I'm messing with LiveTV I noticed QuickMode is available on my mini when watching LiveTV, too...so knowing that it's advertised as 20% faster, I tried setting my "livetv:" stream's speed to 1.2 and voila, quickmode with sound in HME. I haven't experimented with other speeds that might be "alternate" quickmodes yet.
    I also haven't experimented with using it on other video streams, but it seems likely it would work.

    I have also noted that a rpc connection to a mini reports TunerState of the host DVR (and nothing explicitly identifies which tuner the Mini is using aside from the fact that it wouldn't be the foreground one... perhaps it's always the first background one?). However, Network Remote does report the correct channel in use by the Mini, so I'd just have to identify this is a mini, check the network remote status, and cross reference with the rpc tuner state.
    I haven't yet figured out how I'd make channel changing work from a mini, though, since somebody reported that SETCH/FORCECH don't work against a mini (I want to experiment with explicit SETCH using a channel the host is already tuned to, other than that I don't know what to do).

    As far as I see, there is no RPC command equivalent to SETCH and FORCECH. Do you agree? It would be nice to not have to use Network Remote at all, except I'd probably still need it for Mini status.

    Finally, I THINK I figured out how I could easily create a Youtube viewing app for HME. But I figured it out after the update that broke MP4. So if TiVo ever fixes MP4s, I'll try out my method and hopefully have Youtube working in EWz again.
     
    krkaufman likes this.
  2. davidblackledge

    davidblackledge Registered lÜser

    476
    3
    Sep 9, 2008
    NM
    QuickMode with sound works with speeds up to and including 2.0! It's obvious why TiVo chose to only use 1.2, though.

    As we know, 3.0 is FF speed one. Interestingly, it appears speeds above 2.0 are treated as though you requested 1.0 until you get to 3.0 for FF. (I only actually tried 2.1 and 2.5)

    I did not check to see if speeds between SLOW (0.25, silent) and normal (1.0) haven any different behavior...and I don't plan to ;]
     
    wmcbrine likes this.
  3. moyekj

    moyekj Well-Known Member

    11,222
    65
    Jan 23, 2006
    Mission...
    RPC channel changing:
    Code:
    request example:
    {
       "type":"channelChange",
       "channelNumber":"1007",
    }
    
    response example:
    {
       "channel": [{
          "logoIndex": 65554,
          "isDigital": false,
          "channelNumber": "1007",
          "isReceived": true,
          "isBlocked": false,
          "levelOfDetail": "low",
          "isHdtv": true,
          "isKidZone": false,
          "type": "channel",
          "callSign": "KABCDT",
          "isEntitled": true,
          "sourceType": "cable",
          "name": "KABCDT",
          "affiliate": "ABC Affiliate",
          "channelId": "tivo:ch.660602879",
          "stationId": "tivo:st.7515777"
       }],
       "type": "channelList",
       "IsFinal": true
    }
    
     
    davidblackledge likes this.
  4. moyekj

    moyekj Well-Known Member

    11,222
    65
    Jan 23, 2006
    Mission...
    RPC whatsOn query:
    Code:
    sample request:
    {"type":"whatsOnSearch"}
    
    sample response:
    {
       "whatsOn": [{
          "channelIdentifier": {
             "sourceType": "cable",
             "channelNumber": "1011",
             "type": "channelIdentifier",
             "stationId": "tivo:st.7515778"
          },
          "contentId": "tivo:ct.364226537",
          "availableAudioStream": [
             {
                "language": "en",
                "type": "audioStream"
             },
             {
                "language": "es",
                "type": "audioStream"
             }
          ],
          "offerId": "tivo:of.ctd.7515778.1011.cable.2016-12-12-04-30-00.1800",
          "activeAudioStream": {
             "language": "en",
             "type": "audioStream"
          },
          "type": "whatsOn",
          "collectionId": "tivo:cl.337203192",
          "playbackType": "liveCache"
       }],
       "type": "whatsOnList",
       "IsFinal": true
    }
    
    
     
    davidblackledge likes this.
  5. davidblackledge

    davidblackledge Registered lÜser

    476
    3
    Sep 9, 2008
    NM
    FYI, I guess I'm going to give up on this. While most all of this is feasible with RPC, I believe I've hit a deal-breaker:

    My wife loves to watch Live TV with captions on.

    I only see 4 options, and none of them appear possible:
    1) Get the TiVo to display captions - this is a feature of their own device displaying content over the liveTV stream, not as a re-encoded stream.
    2) Get the TiVo provide me captions that I can display. I don't know of any way to do this. The closest I know of is to download a recording and extract captions from that recording (not an option for Live TV). If I could get a CC state event (like tuner state) from RPC that would do it, but I doubt that exists.
    3) Get the captions from a 3rd party - not really feasible for so many reasons and would work on only a small subset of shows anyhow.
    4) Require users to turn on caption display on their TV. That seems like a vague possibility, but it turns out HDMI does not transmit CC signals. This might work if with coax or other connections, but that's not very practical or compatible.

    Technically #4 is still feasible because my wife uses the Premiere and an HD TV that both have Coax connections. I haven't yet experimented whether displaying "livetv:" in HME under those circumstances transmits CC info (but as I recall before HDMI I used to have to make sure I didn't have both TV and TiVo captions turned on or it was a mess).

    So...unless somebody knows more about #2, I might stop messing with this, but if I get a second wind, I'll pursue #4 over coax.
     
  6. davidblackledge

    davidblackledge Registered lÜser

    476
    3
    Sep 9, 2008
    NM
    Ok, apparently that second coax on my Premiere was a 2nd input (one for cable, one for antenna), not an output.

    The way to get a CC signal to the TV is through the Composite output (yellow/white/red). It also works streaming "livetv:" in an HME app, but it also forces my HD display downgraded to SD. It also transmits no matter what while showing LiveTV (so I couldn't turn off captions while in Picture-in-Picture mode). SD downgrade still looks decent on my HD TV (it fills the entire width, for instance), but there are clearly issues, especially on HME apps with small fonts.

    So... Not a complete stoppage to the idea, but not a pleasant option, either.

    I'm still left with #2 as a possibility.
    If exists such an RPC event notification with caption information, I'd love to hear about it. Even if I have to do like the iPad app and require the user to start a recording for it to work.
     
  7. cenright

    cenright New Member

    5
    0
    Feb 11, 2007

    Wow, does this actually work when watching the video on the tivo via hdmi or is this via some other method? If on the tivo hdmi, can you share a way to set the speed? I miss 1.5 from my media center....
     
  8. davidblackledge

    davidblackledge Registered lÜser

    476
    3
    Sep 9, 2008
    NM
    Well, there is no service currently available to use it.

    Since TiVo doesn't make it available themselves, the only way I know of to do it is with an HME App that one of us could make available under "Apps & Games" if you set it up. It would display the "livetv:" media stream.

    That would mean instead of pressing the Live TV button, you'd have to go into "Apps & Games" and select something there to watch Live TV, then press whatever buttons we set up to set your QuickMode speed. Then you could watch Live TV at arbitrary speeds between 1.0 and 2.0, not just TiVo's provided normal (1.0) and QuickMode (1.2).

    It would theoretically work when playing back recordings, too, however none of us have figured out how to use the "recording:" media stream that surely is the way to do this.

    So... if it's really of value to you (given the effort to access it, and the fact that it'll only work on live TV, not recordings) somebody (probably me) could set up an app to access it.


    The stuff I've been talking about in this thread is to set up such an app (that also would work for changing channels, and someday for doing a custom version of the guide). It is a long way from working yet, would take a LOT of work to get working NICELY, and would still require you to download a copy, run it on your computer, then go to Apps & Games to use it. (and it will never properly support Closed Captioning)

    Minimally, I'll probably add QuickMode to my main video viewer I include at EnterWebz.tv, and might add a way to choose a speed, but it is not possible add features like channel changing from an Internet app like that. Only apps running on your home computer can do that.
     
  9. moyekj

    moyekj Well-Known Member

    11,222
    65
    Jan 23, 2006
    Mission...
    It's rather trivial to set arbitrary play speed using RPC instead of HME, which should also work for live buffer or prior recordings.
     
    cenright likes this.
  10. davidblackledge

    davidblackledge Registered lÜser

    476
    3
    Sep 9, 2008
    NM
    Oh, wow, great! I see nothing about setting speed in any rpc notes I know about. Closest I see is videoPlaybackPositionSet.
    I guess I don't know how to look up this stuff. The best I have is the "TiVo MindRPC Community Documentation" google doc.

    So cenright, that means e.g. moyekj's kmttg remote control could have an arbitrary speed quickmode button added.
     
    cenright likes this.
  11. cenright

    cenright New Member

    5
    0
    Feb 11, 2007
  12. moyekj

    moyekj Well-Known Member

    11,222
    65
    Jan 23, 2006
    Mission...
    Sorry cenright, I was wrong. I assumed because "videoPlaybackInfoEventRegister" is able to retrieve the speed that uiNavigate would have a speed parameter for playing a recording, but doesn't look like it does. Sorry for false alarm...
     
    cenright likes this.
  13. cenright

    cenright New Member

    5
    0
    Feb 11, 2007
    Thanks for at least looking moyekj, I was excited enough to read through most of the "discovery" thread and get the arantius python script ready to test out the feature. It will at least keep my inner geek going for a bit.
     

Share This Page