Jellyfin

The Jellyfin integrationIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] exposes a Jellyfin server as a media source in Home Assistant. This integration has been tested with Jellyfin server version 10.6.4 and later.

Configuration

To add the Jellyfin service to your Home Assistant instance, use this My button:

Manual configuration steps

If the above My button doesn’t work, you can also perform the following steps manually:

  • Browse to your Home Assistant instance.

  • Go to Settings > Devices & services.

  • In the bottom right corner, select the Add Integration button.

  • From the list, select Jellyfin.

  • Follow the instructions on screen to complete the setup.

URL

The URL of the Jellyfin server. Please supply the full URL including the protocol and optional webroot. For example https://media.example.com, http://10.1.1.100:8096 or http://home.example.com/jellyfin.

Username

The Jellyfin user whose libraries you want to retrieve.

Password

The password of the supplied user.

Options

To define options for Jellyfin, follow these steps:

  1. In Home Assistant, go to Settings > Devices & services.

  2. If multiple instances of Jellyfin are configured, choose the instance you want to configure.

  3. On the card, select the cogwheel .

    • If the card does not have a cogwheel, the integration does not support options for this device.

    Screenshot showing the cogwheel icon on an integration card in the Settings > Devices & services page

  4. Edit the options, then select Submit to save the changes.

Audio Codec

Sets the audio encoding codec to a Jellyfin API supported codec (aac, mp3, vorbis, wma)

Entities

Media player entities

This integration sets up every media session connected to the Jellyfin server as a media player in Home Assistant. These entities display media information, playback progress, and playback controls.

Remote entities

This integration also creates a remote 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] for sending Jellyfin remote commands to each client, if supported. For example, the following script can be used to tell the client to navigate right twice, down once, and select the focused item:

ScriptScripts are components that allow you to specify a sequence of actions to be executed by Home Assistant when turned on. [Learn more]
alias: "Jellyfin Remote Script"
sequence:
  - action: remote.send_command
    target:
      entity_id: remote.jellyfin_client
    data:
      delay_secs: 1.5
      command:
        - MoveRight
        - MoveRight
        - MoveDown
        - Select

List of actions

The Jellyfin integrationIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] provides the following actions. Each link below opens a dedicated page with examples, parameters, and a step-by-step UI walkthrough.

  • Play media shuffled (jellyfin.play_media_shuffle) Start playing a Jellyfin directory shuffled, replacing the current play queue.

For an overview of every action across all integrations, see the actions reference.

Jellyfin media player entities also support the following shared media player actions, depending on the capabilities of the Jellyfin client:

Jellyfin supports the next and add enqueue options for the Play specified media action. The play and replace options replace the current play queue, as if enqueue was not set. The selection of media_content_type is generally inconsequential to Jellyfin, and any string can be supplied here to pass validation.

To find the media_content_id of the content you want to play, browse or search your library with the Browse media and Search media actions.

Jellyfin automation examples

The following examples show actions you can add to an automation or script to play Jellyfin media. Replace the media_content_id values with IDs from your own Jellyfin library.

Tip

You don’t need to edit YAML to use these examples. Copy a YAML snippet from this page, open the 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: Play a movie

Play a movie on a Jellyfin client that supports playback.

  • Action: Play media
    • Target: Living room (media_player.living_room)
    • Media content ID: a982a31451450daeda02c89952e6d7cf
    • Media content type: movie
YAML example for playing a movie
ActionActions are used in several places in Home Assistant. As part of a script or automation, actions define what is going to happen once a trigger is activated. In scripts, an action is called *sequence*. [Learn more]
action: media_player.play_media
target:
  entity_id: media_player.living_room
data:
  media_content_id: a982a31451450daeda02c89952e6d7cf
  media_content_type: movie

Automation: Queue an episode

Add a TV episode to play next on a Jellyfin client.

  • Action: Play media
    • Target: Living room (media_player.living_room)
    • Media content ID: 5ae55567cae75c26671a0a6b027bdd5b
    • Media content type: episode
    • Enqueue: next
YAML example for queueing an episode
ActionActions are used in several places in Home Assistant. As part of a script or automation, actions define what is going to happen once a trigger is activated. In scripts, an action is called *sequence*. [Learn more]
action: media_player.play_media
target:
  entity_id: media_player.living_room
data:
  media_content_id: 5ae55567cae75c26671a0a6b027bdd5b
  media_content_type: episode
  enqueue: next

Known limitations

  • Support is currently limited to music, movie, and TV show libraries only. Other libraries do not appear in the media browser.