Native Add-On Mode for Kodi

Edit: it seems that adding the option network path was the issue, and that can only be added when a library is first added to the server. Removing my library paths and re-adding them, and adding in //, and waiting for the server to rescan fixes Kodi not seeing the paths.

Edit 2: Nope! Still doesn’t work!

How can I get this to work properly?

First I attempted to use NFS (since my Jellyfin server is running on Linux) by adding in my connections for both movies and shows, without refreshing the content, so nothing was added to the library, and then reset the local Jellyfin database and selected native instead of add-on mode for the plugin. It started to scan in my files but said that my first show (American Dad! in this case) wasn’t available, and asked me if I wanted to keep scanning, which I said yes to. It added in everything, and they all showed up in my library, but when I attempted to play them it said “this file is no longer available, do you want to delete it?”.

Since the plugin says to use SMB I thought maybe it just doesn’t support NFS at all, so I setup a samba server and added two shares called movies and shows, then added them to Kodi and didn’t import the content, reset the local Jellyfin database, and had Jellyfin import my content again, selecting native mode, which once again complained that the path wasn’t available.

Confused, I thought maybe I had to import all of my content like I normally would in Kodi, so I told it to rescan the SMB mounts and add in everything, which it did. This ended up just giving me duplicates of everything in my library, one for Jellyfin (which didn’t work) and one for Kodi (which did work).

Still confused, I decided to reset the Jellyfin database one last time, keeping all of the library data for Kodi. When Jellyfin started to scan stuff in it still said that it couldn’t find the first item in my library, but I told it to keep scanning. This resulted in only one copy of everything in my library…but the files still weren’t accessible!

I have no idea how to continue from here.

The NFS mount paths are /mnt/storage/movies and /mnt/storage shows, which is the same location that they are in the Jellyfin server, and these are the paths that the Kodi plugin claim are inaccessible, even when using NFS on Kodi with those exact paths.

The SMB share names are movies and shows and the path are smb:// and smb://

I kept seeing a mention of path substitution in the plugin warning, but I can’t find it anywhere in the server settings.

Hi there,

If you setup the addon in “addon” mode it will stream the content from the jellyfin server and “native” mode should work as though you scanned the files with kodi, as you found out this does require the path in the library setup on the server. I know Kodi can access NFS mounts but I don’t know if the addon works this way

I’m not sure why you’d be getting this issue, I take it you can access the content when playing it through the jellyfin server? If you can play it fine on the server then the following information could help us narrow down the problem.

  • OS: [e.g. Android, Debian, Windows]
  • Jellyfin Version: [e.g. 10.4.0]
  • Kodi Version: [e.g. 18.3]
  • Addon Version: [e.g. 0.3.2]

Also if you could upload your kodi.log file so we can take a look that’d be great too. Instructions on how to get that can be found on the Kodi Wiki

Hey, Add-On mode works fine, but I don’t like using it for movies since it transcodes everything down from 7.1 to 5.1 and I have a Dolby Atmos and DTS-X compatible surround sound system.

I can access my content just fine using the webapp or Android app, but once again they transcode the audio to 5.1. I’m using the 2015 Nvidia Shield to run Kodi and the Jellyfin app, I just ordered the 2019 model although I don’t think it will make a difference for the audio transcoding.

The Shield (obviously) runs Android TV 8.0.1 (, I’m using Kodi 18.4, the Jellyfin plugin is v0.3.4,

My server runs Arch Linux, using the native Jellyfin package, v10.4.0-2 and Kodi Sync Queue v2.0.0

Here’s the kodi log

Also for this to work, do the SMB shares need to be added to kodi, and do they need to be scanned in before I have jellyfin run it’s import or does jellyfin do the importing itself?

Kodi works fine with the SMB shares and will scan everything in, so it seems the issue is Jellyfin.

Edit: I think I have found the issue, it seems that the Jellyfin plugin is trying to authenticate as the user guest which doesn’t exist since my guest user is the default nobody, I’ll add the guest user to see if that fixes it.

[root@server samba]# cat 
[2019/10/28 22:40:37.575342,  2] ../../source3/param/loadparm.c:2803(lp_do_section)
  Processing section "[movies]"
[2019/10/28 22:40:37.575420,  2] ../../source3/param/loadparm.c:2803(lp_do_section)
  Processing section "[shows]"
[2019/10/28 22:40:37.575510,  2] ../../source3/auth/auth.c:331(auth_check_ntlm_password)
  check_ntlm_password:  Authentication for user [guest] -> [guest] FAILED with error NT_STATUS_NO_SUCH_USER, authoritative=1
[2019/10/28 22:40:37.575546,  2] ../../auth/auth_log.c:629(log_authentication_event_human_readable)
  Auth: [SMB2,(null)] user [WORKGROUP]\[guest] at [Mon, 28 Oct 2019 22:40:37.575534 EDT] with [NTLMv2] status [NT_STATUS_NO_SUCH_USER] workstation [LOCALHOST] remote host [ipv4:] mapped to [WORKGROUP]\[guest]. local host [ipv4:] 
  {"timestamp": "2019-10-28T22:40:37.575592-0400", "type": "Authentication", "Authentication": {"version": {"major": 1, "minor": 1}, "eventId": 4625, "logonType": 3, "status": "NT_STATUS_NO_SUCH_USER", "localAddress": "ipv4:", "remoteAddress": "ipv4:", "serviceDescription": "SMB2", "authDescription": null, "clientDomain": "WORKGROUP", "clientAccount": "guest", "workstation": "LOCALHOST", "becameAccount": null, "becameDomain": null, "becameSid": null, "mappedAccount": "guest", "mappedDomain": "WORKGROUP", "netlogonComputer": null, "netlogonTrustAccount": null, "netlogonNegotiateFlags": "0x00000000", "netlogonSecureChannelType": 0, "netlogonTrustAccountSid": null, "passwordType": "NTLMv2", "duration": 1736}}

After adding the guest user it authenticates, according to the samba log…but still doesn’t work. The SMB shares are added to kodi, but I haven’t had them scan anything in.

[root@server samba]# cat 
[2019/10/28 23:06:35.174277,  2] ../../source3/param/loadparm.c:2803(lp_do_section)
  Processing section "[movies]"
[2019/10/28 23:06:35.174351,  2] ../../source3/param/loadparm.c:2803(lp_do_section)
  Processing section "[shows]"
[2019/10/28 23:06:35.175783,  2] ../../source3/auth/auth.c:310(auth_check_ntlm_password)
  check_ntlm_password:  authentication for user [guest] -> [guest] -> [guest] succeeded
[2019/10/28 23:06:35.202839,  2] ../../source3/param/loadparm.c:2803(lp_do_section)
  Processing section "[movies]"
[2019/10/28 23:06:35.202902,  2] ../../source3/param/loadparm.c:2803(lp_do_section)
  Processing section "[shows]"
[2019/10/28 23:06:35.204238,  2] ../../source3/auth/auth.c:310(auth_check_ntlm_password)
  check_ntlm_password:  authentication for user [guest] -> [guest] -> [guest] succeeded

Here’s a Kodi log with just Jellyfin’s debugging enabled:

Finally I got it to work, but the solution is very counter-intuitive even though the server is running Linux, and Kodi is running on Android (which is Linux at it’s core) and both accept Unix style SMB paths (smb:// for example), the Optional Network Path needs them in the Windows style of \\\movies !

I also scanned in the Movie library into Kodi, before I ran the Jellyfin import, idk if that made a difference as well. I’m going to try it with my TV Shows just to see.

Edit: scanning it in beforehand doesn’t matter.