Apple TV - select_source

Should the “select_source” service work on an Apple TV media player entity?

I have an Apple TV 4k. I’m trying to use select_source to open a specific app (e.g. Channels or YouTube). Basically, nothing happens when calling the service. No errors and nothing in the logs (debug enabled for pyatv and apple_tv). The documentation for the integration does not indicate that this service is available, but I’ve seen elsewhere online that it should work with the app names.

service: media_player.select_source
data:
  source: Channels
target:
  entity_id: media_player.master_bedroom_apple_tv
1 Like

@Sock Did you ever find a solution for this? I’m currently having the same issue …

@metawops I hadn’t gotten any further and kind of forgotten about it. I just tried it again and it worked as expected. I’m on 2023.2.0.

Ignore this for now. I just noticed that HA is saying i need to “Reconfigure” this Apple TV. As soon as I’m home I’ll try that.

Interestingly, this morning, Select source on my Apple TV stopped working. Says that Potentially related to just upgrading to 2023.2.4. Says it no longer supports this service:

Entity media_player.family_room_2 does not support this service.

I have been looking for a way to track usage of different sources like Netflix etc., but I have not been able to accomplish this.
The ‘source’ or ‘source_list’ does not seem to be accepted.

Are there anyone who has been able to do this??

I have been tinkering with this and have scripts that select my Tablo app and Disney+. Haven’t figured out how to update the list that the info dialog shows though. Here is my D+ script:

alias: ATV Disney+
sequence:
  - service: remote.send_command
    data:
      num_repeats: 2
      delay_secs: 3
      command:
        - menu
    target:
      device_id: 5abce4962f5228d48e210e4251bc1172
    enabled: true
  - service: media_player.select_source
    target:
      device_id: 5abce4962f5228d48e210e4251bc1172
    data:
      source: Disney+
  - service: remote.send_command
    data:
      delay_secs: 1
      command:
        - select
      num_repeats: 2
    target:
      device_id: 5abce4962f5228d48e210e4251bc1172
    enabled: true
mode: single
icon: mdi:remote-tv

The repeats and delays are trial-and-error. Discovery requires experimentation, as they say.
To find the list of available sources, open Settings → Devices, then click on the Apple TV. In the Controls card, click on the name right under the word Controls. This opens the controls dialog. Click on Sources and you’ll get a dropdown listing the available sources.


Enter the name in your script as it appears. Blanks appear to be handled by putting the source in quotes:

source: "CBS News"

However that does not work for Prime Video, which I just added as an app and which has not shown up in my list of available sources (yet).
This thread contains similar information and then some. I have noted that the Apple TV Integration documentation is not really up-to-date and I should probably have this little tidbit added.

How can you find out the bundleID for the sources in AppleTV?