diff --git a/jellyfin_kodi/entrypoint/default.py b/jellyfin_kodi/entrypoint/default.py
index 7fc1b0dc..1b4a6d42 100644
--- a/jellyfin_kodi/entrypoint/default.py
+++ b/jellyfin_kodi/entrypoint/default.py
@@ -844,7 +844,7 @@ def get_themes(api_client):
         paths = []
 
         for theme in themes['ThemeVideosResult']['Items'] + themes['ThemeSongsResult']['Items']:
-            putils = PlayUtils(theme, False, None, server, token)
+            putils = PlayUtils(theme, False, None, server, api_client)
 
             if play:
                 paths.append(putils.direct_play(theme['MediaSources'][0]))
diff --git a/jellyfin_kodi/helper/playutils.py b/jellyfin_kodi/helper/playutils.py
index f5b92fc6..338e5415 100644
--- a/jellyfin_kodi/helper/playutils.py
+++ b/jellyfin_kodi/helper/playutils.py
@@ -12,7 +12,6 @@ from kodi_six import xbmc, xbmcvfs
 import client
 import requests
 from helper import LazyLogger
-from jellyfin import Jellyfin
 
 from . import translate, settings, window, dialog, api
 
@@ -53,26 +52,26 @@ def set_properties(item, method, server_id=None):
 
 class PlayUtils(object):
 
-    def __init__(self, item, force_transcode=False, server_id=None, server=None, token=None):
+    def __init__(self, item, force_transcode=False, server_id=None, server=None, api_client=None):
 
         ''' Item will be updated with the property PlaybackInfo, which
             holds all the playback information.
         '''
         self.item = item
         self.item['PlaybackInfo'] = {}
-        self.jellyfin_client = Jellyfin(server_id).get_client()
+        self.api_client = api_client
         self.info = {
             'ServerId': server_id,
             'ServerAddress': server,
             'ForceTranscode': force_transcode,
-            'Token': token or self.jellyfin_client.auth.jellyfin_token()
+            'Token': api_client.config.data['auth.token']
         }
 
     def get_sources(self, source_id=None):
 
         ''' Return sources based on the optional source_id or the device profile.
         '''
-        info = self.jellyfin_client.jellyfin.get_play_info(self.item['Id'], self.get_device_profile())
+        info = self.api_client.get_play_info(self.item['Id'], self.get_device_profile())
         LOG.info(info)
         self.info['PlaySessionId'] = info['PlaySessionId']
         sources = []
@@ -213,7 +212,7 @@ class PlayUtils(object):
 
         ''' Get live stream media info.
         '''
-        info = self.jellyfin_client.jellyfin.get_live_stream(self.item['Id'], self.info['PlaySessionId'], source['OpenToken'], self.get_device_profile())
+        info = self.api_client.get_live_stream(self.item['Id'], self.info['PlaySessionId'], source['OpenToken'], self.get_device_profile())
         LOG.info(info)
 
         if info['MediaSource'].get('RequiresClosing'):
@@ -498,7 +497,7 @@ class PlayUtils(object):
         mapping = {}
         kodi = 0
 
-        server_settings = self.jellyfin_client.jellyfin.get_transcode_settings()
+        server_settings = self.api_client.get_transcode_settings()
 
         for stream in source['MediaStreams']:
             if stream['SupportsExternalStream'] and stream['Type'] == 'Subtitle' and stream['DeliveryMethod'] == 'External':
@@ -587,7 +586,7 @@ class PlayUtils(object):
         subs_streams = collections.OrderedDict()
         streams = source['MediaStreams']
 
-        server_settings = self.jellyfin_client.jellyfin.get_transcode_settings()
+        server_settings = self.api_client.get_transcode_settings()
         allow_burned_subs = settings('allowBurnedSubs.bool')
 
         for stream in streams:
@@ -654,7 +653,7 @@ class PlayUtils(object):
         if subtitle:
 
             index = subtitle
-            server_settings = self.jellyfin_client.jellyfin.get_transcode_settings()
+            server_settings = self.api_client.get_transcode_settings()
             stream = streams[index]
 
             if server_settings['EnableSubtitleExtraction'] and stream['SupportsExternalStream']:
@@ -674,7 +673,7 @@ class PlayUtils(object):
 
                 if index is not None:
 
-                    server_settings = self.jellyfin_client.jellyfin.get_transcode_settings()
+                    server_settings = self.api_client.get_transcode_settings()
                     stream = streams[index]
 
                     if server_settings['EnableSubtitleExtraction'] and stream['SupportsExternalStream']:
diff --git a/jellyfin_kodi/objects/actions.py b/jellyfin_kodi/objects/actions.py
index f7d708c2..108c5c81 100644
--- a/jellyfin_kodi/objects/actions.py
+++ b/jellyfin_kodi/objects/actions.py
@@ -51,7 +51,7 @@ class Actions(object):
 
         transcode = transcode or settings('playFromTranscode.bool')
         kodi_playlist = self.get_playlist(item)
-        play = playutils.PlayUtils(item, transcode, self.server_id, self.server)
+        play = playutils.PlayUtils(item, transcode, self.server_id, self.server, self.api_client)
         source = play.select_source(play.get_sources())
         play.set_external_subs(source, listitem)