Code Monkey home page Code Monkey logo

jellyfin-kodi's Introduction

Jellyfin for Kodi

Part of the Jellyfin Project


Logo Banner

GPL 3.0 License GitHub release (latest SemVer) Chat on Matrix
Translation status Quality Gate Status Technical Debt
Code Smells Bugs Vulnerabilities
GitHub code size in bytes Lines of Code Duplicated Lines (%)
Maintainability Rating Reliability Rating Security Rating

⚠️ Python 2 deprecation (Kodi 18 Leia and older)

Kodi installs based on Python 2 are no longer supported going forward.
This means that Kodi v18 (Leia) and earlier (Krypton, Jarvis...) is no longer supported, and will cease receiving updates.

Our informal support target is current release±1, which currently translates to Matrix (old), Nexus (current) and Omega (next).
Please note that next release is a moving target, has a relatively low priority, and is unlikely to receive active work before the release candidate stage.

The major version of Jellyfin for Kodi will be bumped for the first release without Python 2 support.


A whole new way to manage and view your media library.

The Jellyfin for Kodi add-on combines the best of Kodi - ultra smooth navigation, beautiful UIs and playback of any file under the sun, and Jellyfin - the most powerful open source multi-client media metadata indexer and server. You can now retire your MySQL setup in favor of a more flexible setup.

Synchronize your media on your Jellyfin server to the native Kodi database, browsing your media at full speed, while retaining the ability to use other Kodi add-ons to enhance your experience. In addition, you can use any Kodi skin you'd like!


Supported

The add-on supports a hybrid approach. You can decide which Jellyfin libraries to sync to the Kodi database. Other libraries and features are accessible dynamically, as a plugin listing.

  • Library types available to sync:
    • Movies and sets
    • TV shows
    • Music videos
    • Music
  • Other features supported:
    • Simple Live TV presentation
    • Home Videos & photos
    • Playlists
    • Theme media
  • Direct play and transcode
  • A 2-way watched and resume state between your server and Kodi. This is a near instant feature.
  • Remote control your Kodi; send play commands from your Jellyfin web client or Jellyfin mobile apps.
  • Extrafanart (rotating backgrounds) for skins that support it
  • Offer to delete content after playback
  • Backup your Jellyfin Kodi profile (Create and restore from backup )
  • and more...

Install Jellyfin for Kodi

Detailed installation instructions can be found in the Jellyfin Client Documentation.

Known limitations

  • Chapter images are missing unless native playback mode is used.
  • Certain add-ons that depend on seeing where your content is located will not work unless native playback mode is selected.

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

jellyfin-kodi's Issues

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.

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

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

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

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

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.

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

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.

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

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

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)

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.

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

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


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.

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

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?

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

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.

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.

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.

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

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.

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

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.

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?

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?

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.

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

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?

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

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.

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

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!

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

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.