Skip to content

Card MediaPlayer

Dckiller edited this page Oct 15, 2026 · 1 revision

🎵 Media Player Card (media_player)

Control any media player: what's playing, play/pause, skip, volume. Two looks: a compact tile for a list of players, or a full "now playing" screen with big artwork for a dedicated media page.

Works with any Home Assistant media_player, and with an Apple TV paired directly (media_player.appletv_…).

📸 Preview

✨ Features & Possibilities

  • Compact (default): a Mushroom-style tile with a round artwork/icon, name and state, and a control row. A small swap button switches the row between transport (previous / play-pause / next / shuffle / repeat / power) and volume (mute, − / +, or a slider).
    • Tap the tile: play/pause.
    • Long press: a detail window with all controls, the volume slider and power.
  • Full: big artwork, title and artist, a live progress bar, then the transport and volume rows. Optional top buttons fire any service, e.g. group / ungroup speakers.
  • What's playing instead of just the player's name: title, artist, app (use_media_info).
  • Volume level at the end of the state line: Playing ⸱ 35%.
  • Only what the player supports is shown: every button is checked live against the entity's supported_features, so a button the player can't do never appears, even if you asked for it.
  • Artwork: crop to fill, or show the whole image (contain). Use a portrait (2:3) tile for movie posters.
  • States are shown in the remote's language (Playing, Paused, Idle…).

⚙️ Options Reference

Parameter Type Default Description
type string — media_player
entity_id string — The media_player entity. Required.
variant string compact full for the big now-playing layout. Omit for compact.
name string friendly name Name shown on the card.
use_media_info bool false Show title / artist / app instead of the name / state.
show_volume_level bool false Append ⸱ N% to the state line.
media_controls string previous,play_pause,next Comma list from: on_off, shuffle, previous, play_pause, next, repeat.
volume_controls string mute,buttons Comma list from: mute, buttons (− / +), set (slider).
artwork_fit string crop contain shows the whole artwork without cropping.
artwork_ratio string square-ish portrait (2:3) for movie and TV posters.
top_buttons list — Full variant only. Buttons above the artwork: { "name", "service", "entity_id", "data" }.

📄 JSON Configuration Example

A page with a full-screen player for the living room, and compact tiles for the other rooms:

{
  "name": "Music",
  "cards": [
    {
      "type": "media_player",
      "options": {
        "entity_id": "media_player.sonos_living_room",
        "variant": "full",
        "use_media_info": true,
        "media_controls": "shuffle,previous,play_pause,next,repeat",
        "volume_controls": "mute,set",
        "top_buttons": [
          { "name": "Group all", "service": "script.sonos_group_all" },
          { "name": "Ungroup", "service": "media_player.unjoin", "entity_id": "media_player.sonos_living_room" }
        ]
      }
    },
    {
      "type": "media_player",
      "options": { "entity_id": "media_player.sonos_kitchen", "name": "Kitchen", "show_volume_level": true }
    },
    {
      "type": "media_player",
      "options": { "entity_id": "media_player.appletv_bedroom", "name": "Bedroom TV",
                   "use_media_info": true, "artwork_ratio": "portrait", "artwork_fit": "contain" }
    }
  ]
}

💡 Bind the Volume keys to the player (media_player.volume_up / volume_down in Hotkeys) to get the on-screen volume popup.

Clone this wiki locally