From d64e7b1dc42d09e37a42f3df85168456561054db Mon Sep 17 00:00:00 2001 From: jjlawren Date: Sun, 19 Dec 2021 22:33:36 -0600 Subject: [PATCH] Support Plex resuming and playback offset (#61468) --- homeassistant/components/plex/media_player.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/plex/media_player.py b/homeassistant/components/plex/media_player.py index 6a48a427519..42d8371004e 100644 --- a/homeassistant/components/plex/media_player.py +++ b/homeassistant/components/plex/media_player.py @@ -482,6 +482,8 @@ class PlexMediaPlayer(MediaPlayerEntity): if isinstance(src, int): src = {"plex_key": src} + offset = 0 + if playqueue_id := src.pop("playqueue_id", None): try: playqueue = self.plex_server.get_playqueue(playqueue_id) @@ -491,16 +493,21 @@ class PlexMediaPlayer(MediaPlayerEntity): ) from err else: shuffle = src.pop("shuffle", 0) + offset = src.pop("offset", 0) * 1000 + resume = src.pop("resume", False) media = self.plex_server.lookup_media(media_type, **src) if media is None: raise HomeAssistantError(f"Media could not be found: {media_id}") + if resume and not offset: + offset = media.viewOffset + _LOGGER.debug("Attempting to play %s on %s", media, self.name) playqueue = self.plex_server.create_playqueue(media, shuffle=shuffle) try: - self.device.playMedia(playqueue) + self.device.playMedia(playqueue, offset=offset) except requests.exceptions.ConnectTimeout as exc: raise HomeAssistantError( f"Request failed when playing on {self.name}"