Android TV Remote - App Links/Deep Linking - Guide

Hi GylRon1,
Thanks for the response, yes I did looked at the post, but is results in a cast icon and a black screen.

Can I do a give and request please?

NowTV: https://tv.client.ott.sky.com
TikTok: tiktoktv://

I’m looking for s0undTV’s deep link. Here’s the relevant manifest.xml, nothing I try works.

        <activity android:theme="@style/SplashScreenThemeVector" android:label="@string/app_name" android:name="com.s0und.s0undtv.activities.MainActivity" android:exported="true" android:screenOrientation="sensorLandscape" android:configChanges="keyboard|keyboardHidden" android:logo="@drawable/banner_320_180">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LEANBACK_LAUNCHER"/>
            </intent-filter>
        </activity>
        <activity android:theme="@style/SplashScreenThemeVector" android:label="@string/app_name" android:name="com.s0und.s0undtv.activities.FireTVMainActivity" android:exported="true" android:screenOrientation="sensorLandscape" android:configChanges="keyboard|keyboardHidden" android:logo="@drawable/banner_320_180">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <activity android:name="com.s0und.s0undtv.activities.PlayerActivity" android:exported="true" android:launchMode="singleTask" android:screenOrientation="sensorLandscape" android:configChanges="keyboard|keyboardHidden" android:parentActivityName="com.s0und.s0undtv.activities.MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.BROWSABLE"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <data android:scheme="channel" android:host="com.s0und.s0undtv" android:pathPrefix="/startstream"/>
            </intent-filter>
        </activity>

another workaround:

Set Kodi as your favorite app and send the ‘GUIDE’ command.
It works on my Nokia 8010 box

Hello.
and chance to get help with those apps:
nordvpn
unifi protect
free tv (link below)
FreeTV APK (Android App) - Free Download (apkcombo.com)
yes plus (link below)
yes+ APK (Android App) - Free Download (apkcombo.com)

thanks in advanc

Did you find any solution?

Hello,
I have a solution for YouTube Video Live streams. replace “UCyxe3g0khLIXRxRd3G9qSrw” with the channel ID you are trying to live stream. (Do a google search for how to find channel ID)

vnd.youtube://channel/UCyxe3g0khLIXRxRd3G9qSrw/live

Example :

service: remote.turn_on
data:
  activity: vnd.youtube://channel/UCyxe3g0khLIXRxRd3G9qSrw/live
target:
  entity_id:
    - remote.remote_living_room

Not sure if anyone else has been having trouble playing live streams. Especially since the video ID changes every-time there is a new stream and there is no way to know it until the video is already streaming. This way you do not have to know what the ID is and it will play. Remember if you use service “remote: turn on” to send this command you may have to send it twice as it takes a few seconds for my Chromecast to turn on and then and accept the command to open YouTube.

found part of the solution from this site:

1 Like

hello,
very interested as well

Piling on. Canadian here, trying to get this to work with Sportsnet and TSN, but failing.

I get this for sportsnet

<intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.BROWSABLE"/>
                <data android:scheme="@string/sn_assurance_callback_scheme" android:host="@string/sn_assurance_callback_host"/>
            </intent-filter>

but that’s not the end of it, I also see

<intent-filter android:autoVerify="true">
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.BROWSABLE"/>
                <data android:scheme="@string/sn_eas_callback_scheme" android:path="@string/sn_eas_callback_path"/>
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.BROWSABLE"/>
                <data android:scheme="com.rogers.eas.sn:/callback"/>
            </intent-filter>

So, I tried that last one…no luck. I went into strings and dug up the values

    <string name="sn_assurance_callback_host">app</string>
    <string name="sn_assurance_callback_scheme">sportsnetca</string>
    .....
    <string name="sn_eas_callback_path">/callback</string>
    <string name="sn_eas_callback_scheme">com.rogers.eas.sn</string>

com.rogers.eas.sn:///callback and sportsnetca://app does not work

TSN is no better…there’s more values

<intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.BROWSABLE"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <data android:scheme="@string/deeplink_scheme" android:host="@string/deeplink_host" android:pathPrefix="@string/intent_prefix_article"/>
                <data android:scheme="@string/deeplink_scheme" android:host="@string/deeplink_host" android:pathPrefix="@string/intent_prefix_content"/>
                <data android:scheme="@string/deeplink_scheme" android:host="@string/deeplink_host" android:pathPrefix="@string/intent_prefix_boxscore"/>
                <data android:scheme="@string/deeplink_scheme" android:host="@string/deeplink_host" android:pathPrefix="@string/intent_prefix_page"/>
                <data android:scheme="@string/deeplink_scheme" android:host="@string/deeplink_host" android:pathPrefix="@string/intent_prefix_league"/>
                <data android:scheme="@string/deeplink_scheme" android:host="@string/deeplink_host" android:pathPrefix="@string/intent_prefix_event"/>
                <data android:scheme="@string/deeplink_scheme" android:host="@string/deeplink_host" android:pathPrefix="@string/intent_prefix_team"/>
                <data android:scheme="@string/deeplink_scheme" android:host="@string/deeplink_host" android:pathPrefix="@string/intent_prefix_player"/>
                <data android:scheme="@string/deeplink_scheme" android:host="@string/deeplink_host" android:pathPrefix="@string/intent_prefix_grand_pool"/>
                <data android:scheme="@string/deeplink_scheme" android:host="@string/deeplink_host" android:pathPrefix="@string/intent_prefix_betting"/>
            </intent-filter>
            <intent-filter android:autoVerify="true">
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.BROWSABLE"/>
                <data android:scheme="http" android:host="@string/dynamic_link_domain_dev"/>
                <data android:scheme="https" android:host="@string/dynamic_link_domain_dev"/>
            </intent-filter>
            <intent-filter android:autoVerify="true">
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.BROWSABLE"/>
                <data android:scheme="http" android:host="@string/dynamic_link_domain_prod"/>
                <data android:scheme="https" android:host="@string/dynamic_link_domain_prod"/>
            </intent-filter>

...

<intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.BROWSABLE"/>
                <data android:scheme="@string/fb_login_protocol_scheme"/>
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.BROWSABLE"/>
                <data android:scheme="fbconnect" android:host="cct.ca.tsn.mobile.android"/>
            </intent-filter>

any permutation with

<string name="deeplink_host">app</string> 
<string name="deeplink_scheme">tsn</string>

fixed nothing. So, if anyone has figured it out, let me know please?

update : I tried the same for steam link, but I think I’m falling short because it keeps trying to stream a game, so it’s complaining that the stream is failing.

CBC and VLC work though
https://gem.cbc.ca for CBC
vlc:// for VLC

Anyone having succeded to open a Geforce NOW game on an Nvidia Shield with deep link?

I found a guide that suggested this format:
GeForce NOW[game id]

Tried it, but no luck. Gives an error messages saying that the action can´t be performed.

Did you find Moonlight link?

Have any users here successfully played a deep link in peacocktv?

I can launch the app and get to the program but hav not yet been successful in how to start play at beginning.

(I’m using AppleTV and pyatv to provide the launch commands.)

Has anyone gotten HBO (Max) or Hulu to work? HBO deep links don’t work and can’t find any for Hulu.

1 Like

I’ve not seen any solution for Chromecast with Google TV devices.

I use Tinycam on my Chromecast with Google TV but can’t get a stream via rtsp://

Care to share your yaml code regarding Tinycam?

Edit: I figured it out myself already. Thanks for pointing in the right direction!

I still use Android ADB server even though it’s been deprecated for a few years. Still works with zero issues. I don’t know if you can do the same with the Android TV/remote integration but I found the select_source service then using the name of whatever the app actually is works great. I have a Dune media player and it has SmartTubeNext. Below is the script I wrote. I could never find the deep link.

sequence:
  - service: media_player.select_source
    metadata: {}
    data:
      source: com.teamsmart.videomanager.tv
    target:
      device_id: media_player.android_tv_192_168_0_62
mode: single

Has anyone got deep linking to work for a Sony Bravia android TV? I feel like I’ve tried every possible combination. No idea whether to use media_player.living_room_tv or remote.living_room_tv. I’m also not sure whether the deep link for Iplayer is correct, I’ve tried the one at the top of this post, and also tried the one in the manifest file:
This is my current attempt:

custom_actions:
  bbc:
    icon: bbc
    tap_action:
      action: source
      source: bbc
custom_icons:
  bbc: ' M8.315 0H2.382v6.022h5.933V3.506l9.618 8.45-9.618 8.538V8.99H2.382V24h5.933l13.303-12.045z '
custom_sources:
  bbc:
    icon: bbc
    service: media_player.play_media
    data:
      activity: bbc://iplayer/browse
    target:
      entity_id:
        - media_player.living_room_tv

Using the deep link from the manifest and following the example from here of how to open the youtube app: Sony Bravia TV - Home Assistant, I’ve tried:

custom_sources:
  bbc:
    icon: bbc
    target:
      entity_id: media_player.bravia_tv
    data:
      media_content_id: bbciplayer://
      media_content_type: app

I can see the icon and click on it, but it literally does nothing (I can’t see anything in the logs).

steamlink:// seems to start the app but it also tries to interprete it as an invite link which is not. So if you are fine with a invalid Invite link popup that seems to work. Would be cool if it could directly connect via that link though.

Is it possible to load Plex and have it go to a specific Live TV channel?

Neither of the HBO Max links work as listed on the Max app (it was renamed). It does work with https://play.max.com