Giter VIP home page Giter VIP logo

jellyfin-kodi's Introduction

Jellyfin

The Free Software Media System


Logo Banner

GPL 2.0 License Current Release Translation Status Azure Builds Docker Pull Count
Donate Submit Feature Requests Chat on Matrix Join our Subreddit Release RSS Feed Master Commits RSS Feed


Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media. It is an alternative to the proprietary Emby and Plex, to provide media from a dedicated server to end-user devices via multiple apps. Jellyfin is descended from Emby's 3.5.2 release and ported to the .NET Core framework to enable full cross-platform support. There are no strings attached, no premium licenses or features, and no hidden agendas: just a team who want to build something better and work together to achieve it. We welcome anyone who is interested in joining us in our quest!

For further details, please see our documentation page. To receive the latest updates, get help with Jellyfin, and join the community, please visit one of our communication channels. For more information about the project, please see our about page.

Want to get started?
Check out our downloads page or our installation guide, then see our quick start guide. You can also build from source.

Something not working right?
Open an Issue on GitHub.

Want to contribute?
Check out our contributing choose-your-own-adventure to see where you can help, then see our contributing guide and our community standards.

New idea or improvement?
Check out our feature request hub.

Don't see Jellyfin in your language?
Check out our Weblate instance to help translate Jellyfin and its subprojects.

Detailed Translation Status

Jellyfin Server

This repository contains the code for Jellyfin's backend server. Note that this is only one of many projects under the Jellyfin GitHub organization on GitHub. If you want to contribute, you can start by checking out our documentation to see what to work on.

Server Development

These instructions will help you get set up with a local development environment in order to contribute to this repository. Before you start, please be sure to completely read our guidelines on development contributions. Note that this project is supported on all major operating systems except FreeBSD, which is still incompatible.

Prerequisites

Before the project can be built, you must first install the .NET 8.0 SDK on your system.

Instructions to run this project from the command line are included here, but you will also need to install an IDE if you want to debug the server while it is running. Any IDE that supports .NET 6 development will work, but two options are recent versions of Visual Studio (at least 2022) and Visual Studio Code.

ffmpeg will also need to be installed.

Cloning the Repository

After dependencies are installed you will need to clone a local copy of this repository. If you just want to run the server from source you can clone this repository directly, but if you are intending to contribute code changes to the project, you should set up your own fork of the repository. The following example shows how you can clone the repository directly over HTTPS.

git clone https://github.com/jellyfin/jellyfin.git

Installing the Web Client

The server is configured to host the static files required for the web client in addition to serving the backend by default. Before you can run the server, you will need to get a copy of the web client since they are not included in this repository directly.

Note that it is also possible to host the web client separately from the web server with some additional configuration, in which case you can skip this step.

There are three options to get the files for the web client.

  1. Download one of the finished builds from the Azure DevOps pipeline. You can download the build for a specific release by looking at the branches tab of the pipelines page.
  2. Build them from source following the instructions on the jellyfin-web repository
  3. Get the pre-built files from an existing installation of the server. For example, with a Windows server installation the client files are located at C:\Program Files\Jellyfin\Server\jellyfin-web

Running The Server

The following instructions will help you get the project up and running via the command line, or your preferred IDE.

Running With Visual Studio

To run the project with Visual Studio you can open the Solution (.sln) file and then press F5 to run the server.

Running With Visual Studio Code

To run the project with Visual Studio Code you will first need to open the repository directory with Visual Studio Code using the Open Folder... option.

Second, you need to install the recommended extensions for the workspace. Note that extension recommendations are classified as either "Workspace Recommendations" or "Other Recommendations", but only the "Workspace Recommendations" are required.

After the required extensions are installed, you can run the server by pressing F5.

Running From The Command Line

To run the server from the command line you can use the dotnet run command. The example below shows how to do this if you have cloned the repository into a directory named jellyfin (the default directory name) and should work on all operating systems.

cd jellyfin                          # Move into the repository directory
dotnet run --project Jellyfin.Server --webdir /absolute/path/to/jellyfin-web/dist # Run the server startup project

A second option is to build the project and then run the resulting executable file directly. When running the executable directly you can easily add command line options. Add the --help flag to list details on all the supported command line options.

  1. Build the project
dotnet build                       # Build the project
cd Jellyfin.Server/bin/Debug/net8.0 # Change into the build output directory
  1. Execute the build output. On Linux, Mac, etc. use ./jellyfin and on Windows use jellyfin.exe.

Accessing the Hosted Web Client

If the Server is configured to host the Web Client, and the Server is running, the Web Client can be accessed at http://localhost:8096 by default.

API documentation can be viewed at http://localhost:8096/api-docs/swagger/index.html

Running from GH-Codespaces

As Jellyfin will run on a container on a github hosted server, JF needs to handle some things differently.

NOTE: Depending on the selected configuration (if you just click 'create codespace' it will create a default configuration one) it might take 20-30 secounds to load all extensions and prepare the enviorment while vscode is already open. Just give it some time and wait until you see Downloading .NET version(s) 7.0.15~x64 ...... Done! in the output tab.

NOTE: If you want to access the JF instance from outside, like with a WebClient on another PC, remember to set the "ports" in the lower VsCode window to public.

NOTE: When first opening the server instance with any WebUI, you will be send to the login instead of the setup page. Refresh the login page once and you should be redirected to the Setup.

There are two configurations for you to chose from.

Default - Development Jellyfin Server

This creates a container that has everything to run and debug the Jellyfin Media server but does not setup anything else. Each time you create a new container you have to run though the whole setup again. There is also no ffmpeg, webclient or media preloaded. Use the .NET Launch (nowebclient) lunch config to start the server.

Keep in mind that as this has no web client you have to connect to it via an extenal client. This can be just another codespace container running the WebUI. vuejs does not work from the getgo as it does not support the setup steps.

Development Jellyfin Server ffmpeg

this extens the default server with an default installation of ffmpeg6 though the means described here: https://jellyfin.org/docs/general/installation/linux#repository-manual If you want to install a specific ffmpeg version, follow the comments embedded in the .devcontainer/Dev - Server Ffmpeg/install.ffmpeg.sh file.

Use the ghcs .NET Launch (nowebclient, ffmpeg) launch config to run with the jellyfin-ffmpeg enabled.

Running The Tests

This repository also includes unit tests that are used to validate functionality as part of a CI pipeline on Azure. There are several ways to run these tests.

  1. Run tests from the command line using dotnet test
  2. Run tests in Visual Studio using the Test Explorer
  3. Run individual tests in Visual Studio Code using the associated CodeLens annotation

Advanced Configuration

The following sections describe some more advanced scenarios for running the server from source that build upon the standard instructions above.

Hosting The Web Client Separately

It is not necessary to host the frontend web client as part of the backend server. Hosting these two components separately may be useful for frontend developers who would prefer to host the client in a separate webpack development server for a tighter development loop. See the jellyfin-web repo for instructions on how to do this.

To instruct the server not to host the web content, there is a nowebclient configuration flag that must be set. This can specified using the command line switch --nowebclient or the environment variable JELLYFIN_NOWEBCONTENT=true.

Since this is a common scenario, there is also a separate launch profile defined for Visual Studio called Jellyfin.Server (nowebcontent) that can be selected from the 'Start Debugging' dropdown in the main toolbar.

NOTE: The setup wizard can not be run if the web client is hosted separately.


This project is supported by:

DigitalOcean   JetBrains logo

jellyfin-kodi's People

Contributors

a69tor avatar angelblue05 avatar biaji avatar bpepple avatar castillofrancodamian avatar cvium avatar dependabot[bot] avatar druscoe avatar faush01 avatar gregoiredruant avatar h1dden-da3m0n avatar hoanghuy309 avatar im85288 avatar jellyfin-bot avatar joshuaboniface avatar kucharczykl avatar marcelveldt avatar mcarlton00 avatar nextlooper42 avatar oatavandi avatar oddstr13 avatar renovate[bot] avatar rimasx avatar rmednis avatar saddfox avatar spootdev avatar sualfred avatar truetechy avatar wwwesten avatar xnappo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jellyfin-kodi's Issues

Tries to Sync Music Videos and fails

Hi, just got the latest update installed and got to say great work!

It however currently tries to sync Music Videos when selecting all instead of leaving that as a dynamic library.

Work around: Manually select each library except for Music Videos.

Issue with new dependencies in 0.3.0

I was using 0.2.1 prior on KODI 18.3. Trying to update to 0.3.0 and there is an unmet upgrade dependency on scripts request. Is this designed now only to work on KODI 18.6?

Repeated steps during fresh install

During install, you're asked if you want to proceed or set up library sync later twice, as well as selecting what libraries to sync twice (the first time the only option is "All", while the second time it has all available libraries from the Jellyfin server.

Unable to sync music

I was directed to come here with my debug log. Here it is:
gitea | raw

The actions I did while writing to this file:

  1. Start kodi
  2. Was asked if I wanted to continue the last sync (that failed). Answered no
  3. Navigated to jellyfin addon and "Manage libraries"
  4. Clicked "Add library" and selected "Music"
  5. Was greeted with a message that something went wrong
  6. Quit kodi

Running Kodi 18.3-1 and Jellyfin 0.2.0 on Arch Linux

Remove `__shortcuts__` and clean up related code.

Going via __shortcuts__ and __getitem__ makes it harder to figure out where functions are used.

def __shortcuts__(self, key):
if key == "clear":
return self.clear_data
elif key == "servers":
return self.get_available_servers()
elif key in ("reconnect", "refresh"):
return self.connect
elif key == "login":
return self.login
elif key == "server":
return self.get_server_info(self.server_id)
elif key == "server-id":
return self.server_id
elif key == "server-version":
return self.server_version
elif key == "user-id":
return self.jellyfin_user_id()
elif key == "public-users":
return self.get_public_users()
elif key == "token":
return self.jellyfin_token()
elif key == "manual-server":
return self.connect_to_address
elif key == "connect-to-server":
return self.connect_to_server
elif key == "server-address":
server = self.get_server_info(self.server_id)
return get_server_address(server, server['LastConnectionMode'])
elif key == "revoke-token":
return self.revoke_token()
elif key == "server-mode":
server = self.get_server_info(self.server_id)
return server['LastConnectionMode']
return

Kodi Sync Queue not working currently due to naming mismatch

On the Kodi Add-in side, the plugin specifically looks for plugins named "Jellyfin.Kodi Sync Queue" or "Kodi companion" to interact with the Kodi Sync Queue plugin , see:

if plugin['Name'] in ("Jellyfin.Kodi Sync Queue", "Kodi companion"):

From the Kodi Sync Queue plugin end, the Add-in currently identifies itself as "Kodi Sync Queue" though (without "Jellyfin." prefix), see:

https://github.com/jellyfin/jellyfin-plugin-kodisyncqueue/blob/8c194349f7ee41c1fb5fd582b8b6392ad66b5fa4/Jellyfin.Plugin.KodiSyncQueue/Plugin.cs#L39

Update database versions to Kodi v19 - Matrix

Currently the Kodi database's versions are in line with Kodi v17.

{
"video": "special://database/MyVideos107.db",
"music": "special://database/MyMusic60.db",
"texture": "special://database/Textures13.db",
"jellyfin": "special://database/jellyfin.db",

Current Kodi database versions:

Kodi version Date MyVideos MyMusic Textures
v17 - Krypton February 2017 107 60 13
v19 - Matrix July 2019 116 72 13


Remove dependency on WAN IP address

Currently, the code is doing a lookup of the WAN IP address to determine what authentication method should be used (hinted at here in the different connection options, as well as discussed in more detail here). This is unneeded as now all support for pre-hashed passwords has been removed from the server, so all connections should be using the same clear text authentication method. Remove any unneeded code around the WAN address detection to help keep things clean and maintainable.

Direct play skipping is limited to 10 second gaps

After upgrading the server to 10.3.0, when trying to skip while a video file is playing, no matter how far you tell it to skip it will only do 10 second intervals.

Gif provided by /u/SpectralGelatin on reddit:
https://gfycat.com/QualifiedPleasantInsect

Forcing kodi to transcode all files allows skipping to behave normally, so this appears to be a bug in direct play. Unsure if it's related to the kodi plugin specifically or other clients that can direct play as well.

To force kodi to transcode all jellyfin files:
Addons -> Video Add-Ons -> Jellyfin -> Settings -> Playback -> Force Transcode

Autodiscover overrides manually added servers

Note: As far as I can tell, this only happens when running multiple docker instances on the same server, and autodiscover (--net=host) is enabled on one of them.

While trying to do some debugging on a new testing instance, I'm unable to login to the server. It appears to be trying to get an authentication token from the instance with autodiscover enabled, instead of the one I've manually defined.

The setup:
Instance 1 - jellyfin-prod. Created using --net=host
instance 2 - jellyfin-testing. Created with --publish 8097:8097, and the port changed within Jellyfin. Authentication through the browser directly to http://IP:8097 and through a nginx reverse proxy works as expected, but fails from jf-kodi.

Results:
It connects to the host that I type into the manually add box

tryConnect url: http://192.168.0.200:8097/emby/system/info/public

This gives the correct server name and user list on the next 2 panels.

However, after selecting a user and trying to login:

Begin connectToServers, with 1 servers
begin connectToServer
beginning connection tests
testing connection mode 0 with server Zeus
tryConnect url: http://192.168.0.200:8096/emby/system/info/public
calling onSuccessfulConnection with connection mode 0 with server Zeus

it's trying to connect to the 8096 instance instead.

Deleting an item doesn't remove it from the local view

When deleting an item from Kodi, it deletes on the Jellyfin server however the local Kodi view doesn't show the item removed.

Even backing out of the show back up to the list of shows and then going into the show again, the items still show in the episode list.

Of course, trying to play a deleted item raises an error on Jellyfin.

Verify addon works with apostrophes in library names

Describe the bug
Mentioned by /u/Quixventure on reddit.

"Also, for library issues, I found that if I had an apostrophe (like "Kid's Movies") in the name of my share in Jellyfin, the Kodi client would sync all the data and it would be accessible, but the virtual source would appear empty. You could see stuff in "movies" but not in the Jellyfin add-on>Kid's Movies"

"It was a while ago, and I just renamed my folders, but it could be an issue causing others to see nothing depending on how they are configured."

System (please complete the following information):

  • Jellyfin Version: any?
  • Kodi Version: any?
  • Addon Version: any?

Support basic auth

I am using a Jellyfin instance behind a nginx reverse proxy with basic auth.
The jellyfin-kodi addon doesn't support basic auth, which would be a great addition.

The obvious workaround would be to disable basic auth for Jellyfin, but I'd rather not advertise my server publicly.

Just to clarify: I'm not talking about piping the username/password entered by basic auth as login credentials to Jellyfin, just to support connections protected by basic auth.

Cheers!

Favourite Movies/Shows/Episodes bug

I favourited (hearted) a few movies, shows and episodes of shows. They show up in JellyFin via the web app under "favourite movies", "favourite shows", "favourite episodes". Only favourite episodes via the plugin work. The other two -- favourite movies and favourite shows -- are blank.

Remove or rename png artifacts

Digging through the project I stumbled upon the following artifacts. I did a quick search of the addon and was unable to find any references to the following files in the source code. The ones with emby in the name I would think should be removed or renamed. The rest I am unsure about.

resources/skins/default/media/
  box.png
  button-focus.png
  radio-off.png
  emby-bg-fade.png
  emby-icon.png
  emby-separator.png
  kodi-icon.png
  qrcode_disclaimer.png
  radio-on.png
  userflyoutdefault2.png

Wrong Metadata between libraries

When accessing my Jellyfin library within Kodi, either Movies or TV Shows show the Metadata of another item, depending on which was synced last.

For example, if I only sync the Movies library, everything is fine. If I then sync the TV Shows library, the TV Shows are correct, but when opening a Movie, it shows the Metadata of a random TV Show or Episode and playback fails.
If I then sync the Movies library again, the Movies work correctly but all TV Shows and Episodes show the Metadata of a random Movie.

I've also seen this previously with Emby for Kodi (and Jellyfin server), but it was always fixed by repairing the libraries from the Addon. With Jellyfin for Kodi, one of the libraries is always messed up and can't be repaired.

Incremental sync doesn't complete

Describe the bug
The periodic scans that kodi does (or are triggered by the kodi sync companion plugin) never complete. The library seems to sync 1 item, and then freezes on the rest.

To Reproduce

  1. Do initial sync with server
  2. Edit metadata on server somehow (new items, changed images, etc)
  3. Wait for next sync
  4. See error

Expected behavior
Sync works fully

Logs
Nothing useful yet, more debugging needed

System (please complete the following information):

  • OS: All
  • Jellyfin Version: All
  • Kodi Version: All?
  • Addon Version: 0.3.0

Fails to connect to IPv6 addresses directly

Describe the bug
Addon cannot connect to server if given address is an IPv6 address

To Reproduce

  1. Enter ::1 in host section
  2. Click connect

Expected behavior
Addon connects to server

Logs
InvalidURL: Failed to parse: http://::1:9898/emby/system/info/public

System (please complete the following information):

  • OS: Ubuntu
  • Jellyfin Version: 10.4
  • Kodi Version: 18.3
  • Addon Version: 0.2.1

Additional context
Seem to be due to the request not properly encapsulating the IPv6 address since it has a port on it as well. Should be enclosed by square brackets https://softwareengineering.stackexchange.com/questions/311413/how-should-we-represent-an-ipv6-address-with-port-number-in-text

Remove connection tests

Currently the addon tests to determine which kind of connection mode is needed for the server. Given that it should work for either kind using the same method this code should be removed to simplify the process and ease maintainability

Bug: Index of Bounds when creating log handler

In my kodi.log file I get the following error on any operation done on the plugin causing the plugin to crash

2:06:25.056 T:1114633120   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <type 'exceptions.IndexError'>
                                            Error Contents: list index out of range
                                            Traceback (most recent call last):
                                              File "/storage/.kodi/addons/plugin.video.emby.tvshows/default.py", line 25, in <module>
                                                from entrypoint import Events
                                              File "/storage/.kodi/addons/plugin.video.emby/resources/lib/entrypoint/__init__.py", line 15, i
                                                Emby.set_loghandler(loghandler.LogHandler, logging.DEBUG)
                                              File "/storage/.kodi/addons/plugin.video.emby/resources/lib/emby/__init__.py", line 68, in set_
                                                config(level)
                                              File "/storage/.kodi/addons/plugin.video.emby/resources/lib/emby/__init__.py", line 24, in conf
                                                logger.addHandler(Emby.loghandler())
                                              File "/storage/.kodi/addons/plugin.video.emby/resources/lib/helper/loghandler.py", line 40, in
                                                self.sensitive['Server'].append(server['RemoteAddress'].split('://')[1])
                                            IndexError: list index out of range
                                            -->End of Python script error report<--

I found out that that data.json under addons_data generates a RemoteAddress with an address of 0.0.0.0 which is basically a broadcast ip address that allow any ip4 address. Problem is that it omits the protocal causing the error above to happen. I haven't experience this bug before in emby but I am with jellyfin and I don't know what is creating this data.json file.

My temporary solution was to remove that propery in the file but there is a better solution but I am not knowledable on this codebase.

Watched status not being synced

I am using Kodi 18.3, Jellyfin server 10.3.7, Kodi sync queue 2.0.0.0 and the jellyfin-kodi plugin 0.2.1. Jellyfin is on ubuntu server 18.04, Kodi on Windows 10 and Android TV (same behaviour on both).

New episodes are added to Kodi fine but watched status is not - for example, I watch an episode using the Jellyfin web interface and it is ticked off as watched. I start Kodi and the episode I just watched on Jellyfin web interface is not marked as watched. If I go to the plugin and manually update the libraries it syncs the watched status. Synching works the other way Kodi -> Jellyfin without manual intervention.

Any suggestions how to get the two way watched status syncing? Would posting logs help and if so which ones?

play on sends music and tvshow playlist shuffled

Describe the bug
scince 10.3 when trying play on it sends music and tvshow playlist shuffled to kodi but if you play on web browser thier all in order. same with collections click to play the collection and it shuffles the playlist to kodi.
when ever i select a music track it palys a diffrent track in that album also if you click play it dosnt play from the start of the album and this is with both kodi and browser

im using firefox 66.0.5 (64-bit), Kodi version 18.2 with angelblue05 10.1.0

Move server config data into database

Server details are stored in userdata/addon_data/plugin.video.jellyfin/data.json

"Servers": [
    {
        "AccessToken": "02b78bbe5ac24c2a9da0c8044488212a", 
        "DateLastAccessed": "2019-09-16T21:11:43Z", 
        "Id": "546f6dc5ec38465199263f9b85aab645", 
        "LastConnectionMode": 0, 
        "LocalAddress": "http://192.168.0.13:8096", 
        "Name": "Testing", 
        "UserId": "9d08f075c484464580793cef72b0d1d3", 
        "Users": [
            {
                "Id": "9d08f075c484464580793cef72b0d1d3", 
                "IsSignedInOffline": true
            }
        ]
    }
]

}`

This would be best moved into the database in a new table, to have all data in a single place

Version 10.1.0 has been renamed 0.1.0, requiring manual update.

10.1.0 was the version number of the Jellyfin server at the time this Add-on was forked and rebranded, but the version of the Kodi Add-on and the Jellyfin server are not otherwise connected.
To avoid confusion due to similarity between the versioning of the Jellyfin server and Jellyfin for Kodi, the decision was made to reset the version number of the Kodi Add-on back down to 0.1.0 to mark a clear distinction between the add-on and server.

This is the only time the version number should decrease during the life time of this project.

To update, navigate to the Video add-ons in the add-on manager and select Jellyfin.
Click the Update button, and select 0.1.0 (or which ever release is the most recent after that).
The add-on should now update to the selected version, and from there on it should auto-update if that option is enabled.

Here are some screenshots showing how to do this in Kodi 18.2

image
image
image
image
image
image
image
image

No longer doing automatic/quick sync on startup

When I start Kodi (or log into a profile in a multi-profile installation) the Jellyfin-Kodi plugin starts up and greets me but it never goes any further and does a re-sync. I have to go do a manual library update to see new content.

I do have Settings->Sync->Enable Kodi companion enabled and I do have Kodi Sync Queue 2.0.0.0 installed on my Jellyfin 10.3.2 system.

Incorrect TV Show Metadata/File Issue

I have added my TV and Movie libraries to Kodi using this (pretty awesome) addon, but I am having a problem with a few TV shows, not all of them.

Example of the problem:
I navigate in Kodi to a TV show and go to information for an episode. It shows the correct thumbnail and title for the episode, but shows the plot and actors for a movie in my library. When I play the episode, it actually plays the movie (that the metadata was from). As far as I can tell this issue only effects some of my TV shows (Planet Earth, South Park) and does not appear to affect movies. Some shows will also not show any information at all (which is my "default select" action in Kodi making it very frustrating to play these videos). The metadata in Jellyfin web interface is correct.

My environment:
Kodi - Windows 10 PC, Latest version of Kodi
Jellyfin - Docker container, Latest version
Addon - Latest version installed from Repo
Kodi Sync Queue plugin is installed

I will attempt to get some screenshots demonstrating this strange occurrance. Any help would be appreciated. It does look to be posibly related to this previously unresolved issue: #24 (comment)

Kodi crashes when trying to play video from Jellyfin

Every time I try to play a video from Jellyfin kodi spins like it is loading, then crashes. Jellyfin Web UI shows that the file is playing but it isn't. Please let me know what kind of info you need from me to see what is going on :). It works on my phone + PC Kodi install, this error is on my Nvidia Shield. Thank you!
Kodi Version is 18.4
Jellyfin is on local network
Nvidia Shield TV
Jellyfin Version 10.4

Can't sync audio

Whenever I try to add my Audio-library to kodi I get an error message:

There was an error, you can restart kodi tp progress the scanning (message is in german)

The kodi.log shows:

2019-03-02 19:33:25.692 T:140312462739200  NOTICE: JELLYFIN.entrypoint.default -> path: ?mode=addlibs params: {
                                                "mode": "addlibs"
                                            }
2019-03-02 19:33:25.692 T:140312462739200  NOTICE: JELLYFIN.default -> ---<[ default ]
2019-03-02 19:33:28.714 T:140312113293056  NOTICE: JELLYFIN.full_sync -> -->[ fullsync ]
2019-03-02 19:33:28.741 T:140312113293056  NOTICE: JELLYFIN.full_sync -> starting sync with [u'16795e3accb36058bd2737dc153fc696', u'Boxsets:', u'Boxsets:Refresh']
2019-03-02 19:33:28.795 T:140312113293056  NOTICE: JELLYFIN.helper.wrapper -> Processing Hörbücher: 16795e3accb36058bd2737dc153fc696
2019-03-02 19:33:29.011 T:140312113293056  NOTICE: JELLYFIN.objects.music -> UPDATE artist [2] (T)raumschiff Surprise Periode: abfcd8d0e584252b4889713f35cef20b
2019-03-02 19:33:29.210 T:140312113293056  NOTICE: JELLYFIN.objects.music -> UPDATE album [1] Loom - Das Hörspiel: 8fd29d90d88aec910face816ac5d8b7b
2019-03-02 19:33:29.239 T:140312113293056  NOTICE: JELLYFIN.database -> ERROR:: type: <class 'sqlite3.OperationalError'> value: no such column: strArtists
2019-03-02 19:33:29.240 T:140312113293056  NOTICE: JELLYFIN.database -> [jellyfin] 39 rows updated.
2019-03-02 19:33:29.258 T:140312113293056  NOTICE: JELLYFIN.database -> ERROR:: type: <class 'sqlite3.OperationalError'> value: no such column: strArtists
2019-03-02 19:33:29.259 T:140312113293056  NOTICE: JELLYFIN.database -> [music] 184 rows updated.
2019-03-02 19:34:17.796 T:140312113293056  NOTICE: JELLYFIN.full_sync -> ERROR:: full sync exited unexpectedly
2019-03-02 19:34:17.804 T:140312113293056  NOTICE: JELLYFIN.full_sync -> --<[ fullsync ]
2019-03-02 19:34:17.805 T:140312113293056  NOTICE: JELLYFIN.library -> ERROR:: no such column: strArtists
                                            Traceback (most recent call last):
                                              File "/home/uatschitchun/.kodi/addons/plugin.video.jellyfin/resources/lib/library.py", line 524, in add_library
                                                sync.libraries(library_id, update)
                                              File "/home/uatschitchun/.kodi/addons/plugin.video.jellyfin/resources/lib/full_sync.py", line 103, in libraries
                                                self.start()
                                              File "/home/uatschitchun/.kodi/addons/plugin.video.jellyfin/resources/lib/full_sync.py", line 193, in start
                                                self.process_library(library)
                                              File "/home/uatschitchun/.kodi/addons/plugin.video.jellyfin/resources/lib/full_sync.py", line 242, in process_library
                                                media[library['CollectionType']](library)
                                              File "/home/uatschitchun/.kodi/addons/plugin.video.jellyfin/resources/lib/helper/wrapper.py", line 38, in wrapper
                                                result = func(self, dialog=dialog, *args, **kwargs)
                                              File "/home/uatschitchun/.kodi/addons/plugin.video.jellyfin/resources/lib/full_sync.py", line 418, in music
                                                obj.album(album)
                                              File "/home/uatschitchun/.kodi/addons/plugin.video.jellyfin/resources/lib/helper/wrapper.py", line 97, in wrapper
                                                return func(*args, **kwargs)
                                              File "/home/uatschitchun/.kodi/addons/plugin.video.jellyfin/resources/lib/helper/wrapper.py", line 110, in wrapper
                                                return func(self, item, e_item=e_item, *args, **kwargs)
                                              File "/home/uatschitchun/.kodi/userdata/addon_data/plugin.video.jellyfin/jellyfin/objects/music.py", line 165, in album
                                                self.update_album(*values(obj, QU.update_album_obj))
                                              File "/home/uatschitchun/.kodi/userdata/addon_data/plugin.video.jellyfin/jellyfin/objects/kodi/music.py", line 154, in update_album
                                                self.cursor.execute(QU.update_album, args)
                                            OperationalError: no such column: strArtists
2019-03-02 19:34:19.294 T:140312487917312  NOTICE: JELLYFIN.entrypoint.default -> path: ?mode=managelibs params: {
                                                "mode": "managelibs"
                                            }
2019-03-02 19:34:19.316 T:140312487917312  NOTICE: JELLYFIN.default -> ---<[ default ]

What to do?

Play from beginning would cause the kodi[18.1] to breakdown

2019-03-07 19:24:38.095 T:13944   DEBUG: CAnnouncementManager - Announcement: OnChanged from xbmc
2019-03-07 19:24:38.096 T:13944   DEBUG: GOT ANNOUNCEMENT, type: 1024, from xbmc, message OnChanged
2019-03-07 19:24:38.096 T:13944   DEBUG: CAnnouncementManager - Announcement: OnPlay from xbmc
2019-03-07 19:24:38.096 T:13944   DEBUG: GOT ANNOUNCEMENT, type: 1, from xbmc, message OnPlay
2019-03-07 19:24:38.188 T:14368  NOTICE: JELLYFIN.player -> -->[ play/bb4ba3e569184f7a56762247cb8f1397 ] {'Volume': 100, u'PlaySessionId': u'961053ef0a2041218dc76fafec866b13', u'SubsMapping': {}, u'CurrentPosition': 0, 'Muted': False, u'SubtitleStreamIndex': None, 'Server': <jellyfin.client.JellyfinClient object at 0x0000027FABA91B38>, 'Paused': False, u'MediaSourceId': u'bb4ba3e569184f7a56762247cb8f1397', u'AudioStreamIndex': 1, u'DeviceId': u'9671D7D548D94896B48FFACAEB224CCA', 'File': 'http://{jellyfin-server}/emby/Videos/bb4ba3e569184f7a56762247cb8f1397/stream?static=true&MediaSourceId=bb4ba3e569184f7a56762247cb8f1397&api_key={jellyfin-token}', u'PlayOption': u'Addon', u'CurrentEpisode': None, u'Path': u'http://{jellyfin-server}/emby/Videos/bb4ba3e569184f7a56762247cb8f1397/stream?static=true&MediaSourceId=bb4ba3e569184f7a56762247cb8f1397&api_key={jellyfin-token}', u'ServerId': None, u'Runtime': 70082985984L, u'Type': u'Movie', u'Id': u'bb4ba3e569184f7a56762247cb8f1397', u'PlayMethod': u'DirectStream'}
2019-03-07 19:24:38.196 T:4696   DEBUG: ------ Window Init (DialogBusy.xml) ------
2019-03-07 19:24:38.197 T:4696   DEBUG: XFILE::CPluginDirectory::StartScript - calling plugin Jellyfin('plugin://plugin.video.jellyfin/','2','?dbid=8&mode=play&id=bb4ba3e569184f7a56762247cb8f1397&filename=%E8%9C%98%E8%9B%9B%E4%BE%A0%EF%BC%9A%E5%B9%B3%E8%A1%8C%E5%AE%87%E5%AE%99.Spider-Man.Into.the.Spider-Verse.2018.%E4%B8%AD%E8%8B%B1%E5%AD%97%E5%B9%95.WEBrip.AAC.1080p.x264-%E8%BF%9C%E9%89%B4%E5%AD%97%E5%B9%95%E7%BB%84.mp4','resume:false')
2019-03-07 19:24:38.198 T:6444   DEBUG: Thread LanguageInvoker start, auto delete: false
2019-03-07 19:24:38.198 T:6444    INFO: initializing python engine.
2019-03-07 19:24:38.199 T:6444   DEBUG: CPythonInvoker(3, C:\Users\Sicko\AppData\Roaming\Kodi\addons\plugin.video.jellyfin\default.py): start processing
2019-03-07 19:24:38.219 T:17532   DEBUG: Thread scriptobs start, auto delete: false
2019-03-07 19:24:38.226 T:8688  NOTICE: Creating Demuxer
2019-03-07 19:24:38.226 T:14512   DEBUG: Thread FileCache start, auto delete: false
2019-03-07 19:24:38.227 T:8688   DEBUG: CDVDDemuxFFmpeg::Open - probing detected format [mov,mp4,m4a,3gp,3g2,mj2]
2019-03-07 19:24:38.227 T:14512    INFO: XCURL::DllLibCurlGlobal::easy_acquire - Created session to http://ly.sicko.ga
2019-03-07 19:24:38.227 T:14512   DEBUG: CurlFile::CReadState::Connect - Resume from position 5893934447
2019-03-07 19:24:38.285 T:6444   DEBUG: -->Python Interpreter Initialized<--
2019-03-07 19:24:38.285 T:6444   DEBUG: CPythonInvoker(3, C:\Users\Sicko\AppData\Roaming\Kodi\addons\plugin.video.jellyfin\default.py): the source file to load is "C:\Users\Sicko\AppData\Roaming\Kodi\addons\plugin.video.jellyfin\default.py"
2019-03-07 19:24:38.286 T:6444   DEBUG: CPythonInvoker(3, C:\Users\Sicko\AppData\Roaming\Kodi\addons\plugin.video.jellyfin\default.py): setting the Python path to C:\Users\Sicko\AppData\Roaming\Kodi\addons\plugin.video.jellyfin;C:\Program Files\Kodi\system\python\DLLs;C:\Program Files\Kodi\system\python\Lib;C:\Program Files\Kodi\python27.zip;C:\Program Files\Kodi\system\python\lib\plat-win;C:\Program Files\Kodi\system\python\lib\lib-tk;C:\Program Files\Kodi;C:\Program Files\Kodi\system\python;C:\Program Files\Kodi\system\python\lib\site-packages
2019-03-07 19:24:38.286 T:6444   DEBUG: CPythonInvoker(3, C:\Users\Sicko\AppData\Roaming\Kodi\addons\plugin.video.jellyfin\default.py): entering source directory C:\Users\Sicko\AppData\Roaming\Kodi\addons\plugin.video.jellyfin
2019-03-07 19:24:38.286 T:6444   DEBUG: CPythonInvoker(3, C:\Users\Sicko\AppData\Roaming\Kodi\addons\plugin.video.jellyfin\default.py): instantiating addon using automatically obtained id of "plugin.video.jellyfin" dependent on version 2.25.0 of the xbmc.python api
2019-03-07 19:24:41.128 T:6444   DEBUG: CAddonSettings[plugin.video.jellyfin]: loading setting definitions
2019-03-07 19:24:41.128 T:6444   DEBUG: CAddonSettings[plugin.video.jellyfin]: trying to load setting definitions from old format...
2019-03-07 19:24:41.129 T:6444   DEBUG: CAddonSettings[plugin.video.jellyfin]: loading setting values
2019-03-07 19:24:41.129 T:6444   DEBUG: CSettingsManager: requested setting (LastIncrementalSync) was not found.
2019-03-07 19:24:41.129 T:6444   DEBUG: CAddonSettings[plugin.video.jellyfin]: failed to find definition for setting LastIncrementalSync. Creating a setting on-the-fly...
2019-03-07 19:24:41.129 T:6444   DEBUG: CSettingsManager: requested setting (MinimumSetup) was not found.
2019-03-07 19:24:41.130 T:6444   DEBUG: CAddonSettings[plugin.video.jellyfin]: failed to find definition for setting MinimumSetup. Creating a setting on-the-fly...
2019-03-07 19:24:41.130 T:6444   DEBUG: CSettingsManager: requested setting (SyncInstallRunDone) was not found.
2019-03-07 19:24:41.130 T:6444   DEBUG: CAddonSettings[plugin.video.jellyfin]: failed to find definition for setting SyncInstallRunDone. Creating a setting on-the-fly...
2019-03-07 19:24:41.130 T:6444   DEBUG: CSettingsManager: requested setting (groupedSets) was not found.
2019-03-07 19:24:41.130 T:6444   DEBUG: CAddonSettings[plugin.video.jellyfin]: failed to find definition for setting groupedSets. Creating a setting on-the-fly...
2019-03-07 19:24:41.130 T:6444   DEBUG: CSettingsManager: requested setting (platformDetected) was not found.
2019-03-07 19:24:41.130 T:6444   DEBUG: CAddonSettings[plugin.video.jellyfin]: failed to find definition for setting platformDetected. Creating a setting on-the-fly...
2019-03-07 19:24:44.483 T:17532   DEBUG: Thread scriptobs 17532 terminating

Edit by @JustAMan: log formatting

Kodi won't play from Jellyfin since 10.3.6 upgrade

Describe the bug
After upgrading to the newset version, Kodi for Jellyfin stopped connecting to Jellyfin, and no media can be played no more. I guess it's related to jellyfin/jellyfin#1520 ?

Rollback to 10.3.5 fixes the issue.

To Reproduce
Just play a media file from Kodi for Jellyfin.

Sorry if I didn't put this issue in the right repo.

Info pane displays incorrect information

When using the JF for Kodi addon, I click on movie info (any movie) and for some reason it displays the incorrect information (generally it displays info for my tv episodes). Metadata is correct in my libary and all works well through any other method - its only when I use the JF for Kodi plugin that this occurs.

*System

  • Jellyfin Version: 10.3.7
  • Kodi Version: 18.4
  • Addon Version: 0.2.1

Improvement: remove for loop in plugin checking process

Currently the application checks to see if the server has the "kodi sync queue" plugin installed by polling through all the plugins on the server and matching by name.

if settings('kodiCompanion.bool'):
for plugin in self.server['api'].get_plugins():
if plugin['Name'] in ("Jellyfin.Kodi Sync Queue", "Kodi companion", "Kodi Sync Queue"):
if not self.fast_sync():
dialog("ok", heading="{jellyfin}", line1=_(33128))
raise Exception("Failed to retrieve latest updates")
LOG.info("--<[ retrieve changes ]")
break
else:
raise LibraryException('CompanionMissing')

Some potential solutions:

  1. Remove the checking for the plugin, the application already has catches in place for failure, but would be much messier and wouldn't have the friendly pop up message for users informing they need the plugin installed.
  2. Create an api call in the plugin, that can verify installation.
  3. Change check for plugin at setting initialization, so it is only done when settings are changed, and not at startup.

Can not sign in using Kodi

When I try to sign in using Kodi I put my server url and username (I have no password set), I input my username and the sign in button does not work.

Tested on Kodi 18.2 in Windows 10 64 bit and Android 9.

Kodi does not fill the library using Jellyfin plugin for TV Shows

Describe the bug
When I populate the Kodi Library with information from Jellyfin Movies work fine but only 2 TV Shows appear in my Kodi TV Shows Library.

To Reproduce

  1. Install Kodi Jellyfin repo zip file and Jellyfin plugin
    1a. Install the Jellyfin Kodi Sync Plugin and restart Jellyfin
  2. Follow the Initial Setup Wizard up to the point of it asking what libraries from Jellyfin I want to sync
  3. Click All as I want Movies and TV Shows to be synced
  4. Let it sync up - Movies are fully populated but only 2 tv shows actually are populated.

Expected behaviour

Both my Movies and my TV Shows are fully populated.

Logs

https://pastebin.com/FYs0MkeJ - Kodi log
https://pastebin.com/6Zwx237v - Folder structure for TV Show media, jpg nfo etc are from a stand alone Kodi library, Space 1999 and UFO were the ones that appeared in Kodi from Jellyfin

System (please complete the following information):

  • OS: Docker on Ubuntu Server
  • Browser: Kodi 18.2 on Libreelec 9.0.2 on Raspberry Pi 3
    Also tried on Windows Kodi 18.3 same thing still happens
  • Jellyfin Version: 10.3.7
  • Jellyfin for Kodi Version: 0.2.1
  • Kodi Sync Queue: 2.0.0.0

Remote control plays wrong episode

When I attempt to remote control a TV series episode from Jellyfin Web it plays the wrong version on Kodi.

Jellyfin Version 10.3.7
Kodi Version: 0.2.1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.