Get media player features elsewhere for jellyfin (#148805)

This commit is contained in:
Josef Zweck
2025-07-15 12:07:57 +02:00
committed by GitHub
parent a6e1d96852
commit b522bd5ef2
3 changed files with 12 additions and 3 deletions

View File

@@ -2,6 +2,7 @@
from __future__ import annotations from __future__ import annotations
import logging
from typing import Any from typing import Any
from homeassistant.components.media_player import ( from homeassistant.components.media_player import (
@@ -21,6 +22,8 @@ from .const import CONTENT_TYPE_MAP, LOGGER, MAX_IMAGE_WIDTH
from .coordinator import JellyfinConfigEntry, JellyfinDataUpdateCoordinator from .coordinator import JellyfinConfigEntry, JellyfinDataUpdateCoordinator
from .entity import JellyfinClientEntity from .entity import JellyfinClientEntity
_LOGGER = logging.getLogger(__name__)
async def async_setup_entry( async def async_setup_entry(
hass: HomeAssistant, hass: HomeAssistant,
@@ -177,10 +180,15 @@ class JellyfinMediaPlayer(JellyfinClientEntity, MediaPlayerEntity):
def supported_features(self) -> MediaPlayerEntityFeature: def supported_features(self) -> MediaPlayerEntityFeature:
"""Flag media player features that are supported.""" """Flag media player features that are supported."""
commands: list[str] = self.capabilities.get("SupportedCommands", []) commands: list[str] = self.capabilities.get("SupportedCommands", [])
controllable = self.capabilities.get("SupportsMediaControl", False) _LOGGER.debug(
"Supported commands for device %s, client %s, %s",
self.device_name,
self.client_name,
commands,
)
features = MediaPlayerEntityFeature(0) features = MediaPlayerEntityFeature(0)
if controllable: if "PlayMediaSource" in commands:
features |= ( features |= (
MediaPlayerEntityFeature.BROWSE_MEDIA MediaPlayerEntityFeature.BROWSE_MEDIA
| MediaPlayerEntityFeature.PLAY_MEDIA | MediaPlayerEntityFeature.PLAY_MEDIA

View File

@@ -21,7 +21,7 @@
], ],
"Capabilities": { "Capabilities": {
"PlayableMediaTypes": ["Video"], "PlayableMediaTypes": ["Video"],
"SupportedCommands": ["VolumeSet", "Mute"], "SupportedCommands": ["VolumeSet", "Mute", "PlayMediaSource"],
"SupportsMediaControl": true, "SupportsMediaControl": true,
"SupportsContentUploading": true, "SupportsContentUploading": true,
"MessageCallbackUrl": "string", "MessageCallbackUrl": "string",

View File

@@ -182,6 +182,7 @@
'SupportedCommands': list([ 'SupportedCommands': list([
'VolumeSet', 'VolumeSet',
'Mute', 'Mute',
'PlayMediaSource',
]), ]),
'SupportsContentUploading': True, 'SupportsContentUploading': True,
'SupportsMediaControl': True, 'SupportsMediaControl': True,