diff --git a/jellyfin/api_client.py b/jellyfin/api_client.py index 61e67cd..f93052c 100644 --- a/jellyfin/api_client.py +++ b/jellyfin/api_client.py @@ -47,9 +47,12 @@ class JellyfinApiClient: return None for session in sessions: - if session.get('NowPlayingItem'): + session_id = session.get('Id') + current_item = self.client.jellyfin.get_now_playing(session_id) + + if current_item: self.logger.info("Current playback information fetched.") - return self.to_model(session['NowPlayingItem']) + return self.to_model(current_item) self.logger.info("No active playback found.") return None @@ -71,13 +74,12 @@ class JellyfinApiClient: raise ValueError(f"Unsupported media type: {media_type}") def get_playback_info(self, media: dict) -> tuple[int, int]: - media_id = media.get('Id') - playback_info = self.client.jellyfin.get_userdata_for_item(media_id) + play_state = media.get('PlayState') - runtime_ticks = media.get('RunTimeTicks', 0) + runtime_ticks = media.get('RunTimeTicks') total_runtime_seconds = runtime_ticks // 10_000_000 - playback_position_ticks = playback_info.get('PlaybackPositionTicks', 0) + playback_position_ticks = play_state.get('PositionTicks') playback_position_seconds = playback_position_ticks // 10_000_000 start = int(datetime.now().timestamp()) - playback_position_seconds