Android TV Remote - App Links/Deep Linking - Guide

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

Since they renamed the app to just Max, the deeplink for it is https://play.max.com

1 Like

On your HA frontend, go to Developer Tools and select the Services tab.
Click on the Services box and select “Remote: turn-on”,
Use the “Choose Device” button to select your TV.
(Note, this is an Android Remote device, which in your yaml should look like remote. whatever it got named.)
Check “Activity” and put your bbciplayer:// deep link in the text box.
Click “Call Service” and your TV should launch the player.

So, try turning the service: tag to ‘remote.turn_on’ and you may get it to do what you need.

Hi, I asked a few weeks ago about CANAL DIGITAAL (no useable answers), and now they changed the app to Canal+. So the question of anybody found the deep link to Canal+. Tv vlaanderen https://tvapi.solocoo.tv/ doesn’t work.
Best regards, William

Thanks for your help, I’ve spent all afternoon trying different options, but still no luck. Interestingly, if I follow your instructions and put https://app.primevideo.com amazon prime opens, but if I put https://www.bbc.co.uk as the activity, it does open the web browser, so something reaches the TV.

Not sure if I’m reading the manifest correctly, but I think I should just put bbciplayer:// or bbciplayer://www.bbc.co.uk but neither do anything at all. Are there any log files on the TV or in home assistant that would show what’s going on?

Here’s the extract of the manifest file just in case I’m reading it completely wrong:

        <activity android:theme="@style/Theme.Starting" android:label="@string/app_name" android:name="uk.co.bbc.iplayer.startup.StartupActivity" android:exported="true" android:logo="@drawable/iplayer_logo">
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </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"/>
                <data android:scheme="https"/>
                <data android:scheme="bbciplayer"/>
                <data android:host="www.bbc.co.uk"/>
                <data android:pathPrefix="@string/deep_linking_episode_path"/>
                <data android:pathPrefix="@string/deep_linking_tleo_path"/>
                <data android:pathPrefix="@string/deep_linking_group_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="bbciplayer" android:host="www.bbc.co.uk" android:pathPrefix="@string/deep_linking_path"/>
                <data android:scheme="http" android:pathPrefix="@string/deep_linking_path"/>
                <data android:scheme="https" android:pathPrefix="@string/deep_linking_path"/>
            </intent-filter>
        </activity>
        <activity android:theme="@style/iPlayerTheme" android:label="@string/app_name" android:name="uk.co.bbc.iplayer.ui.fullscreenmessage.IPlayerFullScreenMessageActivity" android:logo="@drawable/iplayer_logo"/>
        <activity android:theme="@style/iPlayerTheme" android:name="uk.co.bbc.iDAuth.v5.DeepLinkReceiver" android:exported="true">
            <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"/>
                <data android:scheme="https"/>
                <data android:host="www.bbc.co.uk"/>
                <data android:pathPrefix="@string/deep_linking_federated_sign_in"/>
            </intent-filter>
        </activity>

Hi, have you ever found the solution? I have the same question, but no luck so far.

Also not able to edit so adding some South African ones here to share

App URL
Showmax(new) https://www.showmax.com/deeplink
DSTV Stream https://dstv.stream/watchlist

unfortunately not, NLZiet has updated it’s channels recently so maybe there will be some changes as well?

For anyone who’s interested, this is how I got it to work for Sony Bravia, the key was the service call:

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
    target:
      entity_id: media_player.sony_kd
    data:
      media_content_id: BBC iPlayer
      media_content_type: app

I’m sorry I couldn’t figure out how to edit the guide but I found one link:

DirecTV: dtvnow://deeplink.directvnow.com

For anyone who has pihole installed there might be a simple sollution to determine the server url of the tv app you are searching for. In Pihole look into the query log and in the search box enter the ip address of your smart tv/Google Chromecast with TV. Now watch tv via the app you want and monitor the query log. EG the url for TV Vlaanderen:

I think api.goplay.be might work?

Awesome! Thanks a lot.

Does anyone know the command to turn on the screensaver?

Hi,
I tried the following, but it does not work.

service: remote.turn_on
data:
  activity: api.goplay.be
target:
  entity_id: remote.chromecast_hd

Indded, it does not work, nor the known variants like https:// etc. Sadly enough, the one for TV Vlaanderen does not work anymore too.

Has anyone had any luck with Sirius? I assume it doesn’t support deep linking, I’ve been running into dead ends when looking at the XML.