Media player current source
The Media player current source condition passes when a media player entityAn entity represents a sensor, actor, or function in Home Assistant. Entities are used to monitor physical properties or to control other entities. An entity is usually part of a device or a service. [Learn more] is set to one of the sources you select. Sources are the inputs a device can switch between, and they are device-specific: a TV might offer HDMI 1, HDMI 2, and TV, while an amplifier might offer Phono, Stream, or Coax1. Use Media player current source when you want an automation to run only while a media player is on a particular input, for example to dim the lights only when the receiver is switched to your Blu-ray player.
When you target more than one media player, the condition’s Condition passes if option controls how the check combines results. You can require any targeted media player to be on the selected source, or demand that all of them are.
Using this condition from the user interface
If you prefer building automations visually, Home Assistant walks you through this condition step by step. You pick what to check, tweak a few options, and save. No YAML knowledge required.
To use Media player current source in an automation:
- Go to Settings > Automations & scenes.
- Open an existing automation, or select Create automation > Create new automation.
- In the And if section, select Add condition.
- Select what you want to check. Under By target (see Targets), pick the area your media player is in, or select a device, a specific entity, a floor, or a label.
- From the conditions shown for that target, select Media player current source.
- Under Source, select one or more sources to check for. The list shows the sources the targeted media players offer. You can also type a source that isn’t listed.
- Under Condition passes if (see Behavior), pick Any or All.
- Under For at least, enter how long the media player must stay on the selected source before the condition passes.
- Select Save.
Options in the UI
The source or sources to check for. The list shows the sources the targeted media players offer, and you can also type one that isn’t listed. Sources are device-specific and typically include inputs like HDMI 1, TV, Bluetooth, or Phono.
When multiple media players are targeted, controls how results combine:
- Any: Passes if at least one targeted media player is on one of the selected sources (default).
- All: Passes only when every targeted media player that reports a source is on one of the selected sources.
Using this condition in YAML
If you work directly in YAML, or you want to know exactly what Home Assistant does under the hood, this section has the technical reference. It lists the field names you use in YAML, their types, and which ones are required. For how an automation is built in YAML, refer to Automations in YAML.
In YAML, put the settings that are specific to this condition under options. Keep target, if the condition uses one, and general settings such as alias and enabled at the top level, next to condition.
In YAML, Media player current source is referred to as media_player.is_current_source. A basic example looks like this:
condition: media_player.is_current_source
target:
entity_id: media_player.amplifier
options:
source: "Phono"
This passes when the amplifier is currently set to the Phono source.
To check for any one of several sources:
condition: media_player.is_current_source
target:
entity_id: media_player.living_room_tv
options:
source:
- "HDMI 1"
- "HDMI 2"
Options in YAML
The source or sources to check for. Accepts a single source string or a list of source strings. Each source must match the name the media player reports exactly, including capitalization.
When multiple media players are targeted, controls how results combine:
-
any(Any in the UI, default): passes if at least one targeted media player is on one of the selected sources. -
all(All in the UI): passes only when every targeted media player that reports a source is on one of the selected sources.
How long the media player must stay on the selected source before the condition passes. Accepts a duration string in HH:MM:SS format. For example, 00:05:00 waits 5 minutes. For a list of all accepted formats, refer to Duration formats in YAML.
Targets of the condition
This condition requires a target. The target is the object that Home Assistant will check. You can point the condition at a single entityAn entity represents a sensor, actor, or function in Home Assistant. Entities are used to monitor physical properties or to control other entities. An entity is usually part of a device or a service. [Learn more], a device, an area, a floor, or a label, and Home Assistant will evaluate every matching media_player entity behind that target.
-
Entity: one specific media_player entity, such as
media_player.living_room. - Device: every media_player entity that belongs to a device.
- Area: every media_player entity in a room or area.
- Floor: every media_player entity on a floor.
- Label: every media_player entity that shares a label.
You can also select different target types in one condition. For example, you can add a specific entity and an area as targets in the same condition to check both of them at once.
To learn which entities Home Assistant includes for a device, area, floor, or label, and how it handles several entities, refer to Automation targets.
To leave out some of these entities, refer to Excluding targets. For example, you can leave out one media_player entity in an area.
Behavior with multiple targets
When you target more than one entity (or select an area, floor, or label that contains several), the Condition passes if option controls how the results combine:
- Any (default): the condition passes if at least one of the targeted entities matches. For example, if you check three smoke sensors and only one of them detects smoke, the condition still passes. This is useful for questions like “is there smoke anywhere in the house?”
- All: the condition passes only when every targeted entity matches. For example, if you check the same three smoke sensors, the condition passes only once all three report cleared. This is useful for “is the entire house safe now?” checks, so your automation does not send an all-clear while one room still has a reading.
Good to know
- The available sources depend entirely on the device. Home Assistant only shows the sources the targeted media player reports.
- The condition checks the source a media player reports. This includes media players that report their current source but can’t be switched to another source from Home Assistant.
- Some media players only report their source list while they are powered on. If the device is off when you build the automation, the Source dropdown may be empty. Turn the device on to pick a source, or type it in.
- Media players that are off,
unavailable,unknown, or not reporting a source are left out of the check. A media player doesn’t report a source while it’s off. With Any, they can’t make the condition pass. With All, they don’t make it fail. If none of the targeted media players report a source, Any fails and All passes. To also require that a media player is on, combine this condition with Media player is on.
Try it yourself
Ready to test this? Go to Settings > Automations & scenes, open an automation, and add this condition. Trigger the automation with and without the condition met, and watch whether it continues or stops.
More examples
Real scenarios where this condition gates an automation. Copy any example and adapt it to your setup. In the visual editor, select the UI options listed in the example or paste the YAML code.
You don’t need to edit YAML to use these examples. Copy a YAML snippet from this page, open the visual automation editor in Home Assistant, and press Ctrl+V (or Cmd+V on Mac). Home Assistant automatically converts the pasted YAML into the visual editor format, whether it’s a full automation, a single trigger, a condition, or an action.
Automation: Activate the cinema scene only for the Blu-ray source
When you press the movie night button, activate the cinema sceneScenes capture the states you want certain entities to be. For example, a scene can specify that light A should be turned on and light B should be bright red. [Learn more], but only if the living room receiver is already switched to the HDMI 1 (Blu-ray) source.
-
Trigger: State changed
- Target: Movie night input button
-
Condition: Media player current source
- Target: Living room receiver
- Source: HDMI 1
-
Action: Activate scene
- Target: Cinema scene
YAML example for the cinema scene
alias: "Activate cinema scene for Blu-ray"
triggers:
- trigger: state
entity_id: input_button.movie_night
conditions:
- condition: media_player.is_current_source
target:
entity_id: media_player.living_room_receiver
options:
source: "HDMI 1"
actions:
- action: scene.turn_on
target:
entity_id: scene.cinema
Automation: Send a reminder when the amplifier is on an external input
Every evening, if the amplifier is on one of its external inputs, send a reminder to switch back to streaming.
-
Trigger: Time
-
At time:
22:00:00
-
At time:
-
Condition: Media player current source
- Target: Amplifier
- Source: Coax1, Opt1
-
Action: Send a notification message
-
Target: My Device (
notify.my_device)
-
Target: My Device (
YAML example for an external-input reminder
alias: "Remind me that the amplifier is on an external input"
triggers:
- trigger: time
at: "22:00:00"
conditions:
- condition: media_player.is_current_source
target:
entity_id: media_player.amplifier
options:
source:
- "Coax1"
- "Opt1"
actions:
- action: notify.send_message
target:
entity_id: notify.my_device
data:
message: "The amplifier is still on an external input."
Still stuck?
To find out why the condition didn’t pass, check it live in the automation editor, and look at the trace of the run. For details, refer to Testing automations. For common problems and their solutions, refer to Troubleshooting automations.
If that doesn’t help, the Home Assistant community is quick to help: join Discord for real-time chat, post on the community forum with the condition you’re using and what you expected to happen, or share on our subreddit /r/homeassistant.
AI assistants like ChatGPT or Claude can also explain conditions or suggest the right one when you describe what you want in plain language.
Related conditions
Explore related conditions:
-
Media player is on: Tests if one or more media players are on.
-
Media player is playing: Tests if one or more media players are playing.
-
Media player volume: Tests the volume of one or more media players.