From 56c824f38fdf4ec917ec71dcde63d0de176ff9fc Mon Sep 17 00:00:00 2001 From: mcarlton00 Date: Sat, 31 Jan 2026 18:04:45 -0500 Subject: [PATCH] Stop using deprecated auth methods --- resources/lib/jellyfin.py | 14 +++++++------- resources/lib/play_utils.py | 4 ++-- resources/lib/websocket_client.py | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/resources/lib/jellyfin.py b/resources/lib/jellyfin.py index e455787a..581bf37b 100644 --- a/resources/lib/jellyfin.py +++ b/resources/lib/jellyfin.py @@ -27,7 +27,7 @@ def __init__(self, server=None, user_id=None, token=None): self.verify_cert = settings.getSetting('verify_cert') == 'true' def get(self, path): - if 'x-mediabrowser-token' not in self.headers or self.token not in self.headers: + if 'Authorization' not in self.headers or self.token not in self.headers: self.create_headers(True) # Fixes initial login where class is initialized before wizard completes @@ -56,7 +56,7 @@ def get(self, path): return response_data def post(self, url, payload={}): - if 'x-mediabrowser-token' not in self.headers or self.token not in self.headers: + if 'Authorization' not in self.headers or self.token not in self.headers: self.create_headers(True) url = '{}{}'.format(self.server, url) @@ -73,7 +73,7 @@ def post(self, url, payload={}): return response_data def delete(self, url): - if 'x-mediabrowser-token' not in self.headers or self.token not in self.headers: + if 'Authorization' not in self.headers or self.token not in self.headers: self.create_headers(True) url = '{}{}'.format(self.server, url) @@ -98,7 +98,7 @@ def authenticate(self, auth_data): def create_headers(self, force=False): # If the headers already exist with an auth token, return unless we're regenerating - if self.headers and 'x-mediabrowser-token' in self.headers and force is False: + if self.headers and 'Authorization' in self.headers.get('Authorization', '') and force is False: return headers = {} @@ -119,18 +119,18 @@ def create_headers(self, force=False): version=version ) - headers['x-emby-authorization'] = authorization + headers['Authorization'] = authorization # If we have a valid token, ensure it's included in the headers unless we're regenerating if self.token and force is False: - headers['x-mediabrowser-token'] = self.token + headers['Authorization'] += ", Token={}".format(self.token) else: # Check for updated credentials since initialization user_details = load_user_details() token = user_details.get('token') if token: self.token = token - headers['x-mediabrowser-token'] = self.token + headers['Authorization'] += ", Token={}".format(self.token) # Make headers available to api calls self.headers = headers diff --git a/resources/lib/play_utils.py b/resources/lib/play_utils.py index 69587bd9..bbfcf4e8 100644 --- a/resources/lib/play_utils.py +++ b/resources/lib/play_utils.py @@ -743,7 +743,7 @@ def set_list_item_props(item_id, list_item, result, server, extra_props, title): album = result.get("Album") if album: details['album'] = album - + list_item.setInfo("Music", infoLabels=details) else: @@ -1287,7 +1287,7 @@ def get_play_url(media_source, play_session_id, channel_id=None): "MediaSourceId": item_id, "DeviceId": device_id, "PlaySessionId": play_session_id, - "api_key": user_token, + "ApiKey": user_token, "SegmentContainer": "ts", "VideoCodec": "h264", "VideoBitrate": bitrate, diff --git a/resources/lib/websocket_client.py b/resources/lib/websocket_client.py index 70a49101..4a9782e7 100644 --- a/resources/lib/websocket_client.py +++ b/resources/lib/websocket_client.py @@ -259,7 +259,7 @@ def run(self): else: server = server.replace('http://', 'ws://') - websocket_url = "{}/socket?api_key={}&deviceId={}".format( + websocket_url = "{}/socket?ApiKey={}&deviceId={}".format( server, token, self.device_id ) log.debug("websocket url: {0}".format(websocket_url))