jellyfin-kodi icon indicating copy to clipboard operation
jellyfin-kodi copied to clipboard

Actor information and thumbnails not displayed on video Information Pages for Jellyfin library

Open kjemmett opened this issue 3 years ago • 10 comments

Describe the bug Actor information (names and thumbnails) not displayed on Information Page for files in the Jellyfin library.

To Reproduce

  1. Open the Information Page for a video in the Jellyfin library

Expected behavior The Information Page for a video should include actor information and thumbnails and the ability to browse by actor

Logs No immediately relevant errors but happy to provide as necessary

Screenshots "Cast Not Available" image

Actor data is syncing into the library: image

System

  • OS: Android (2017 Nvidia Shield)
  • Jellyfin Version: 10.7.5 (running in a docker container on Synology)
  • Kodi Version: 19.1
  • Addon Version: 0.7.4
  • Playback Mode: Native

Additional context I am reasonably confident I have narrowed the problem down to jellyfin-kodi:

  1. The Jellyfin web interface correctly displays actor information and thumbnails
  2. Files that are added to the Kodi library directly (and scraped using either TMDB or TMDB-python addons) correctly display actor information and thumbnails. Two additional observations: i) when the same file is present in the Jellyfin library and the Kodi library (manually added), the Jellyfin entry will then include the actor thumbnails scraped by Kodi, and ii) selecting an actor will bring up their films in the library, and those information pages will populate with actor thumbnails, even if in the Jellyfin library. However, accessing Information page directly will not show the actor thumbnails
  3. The Actor view of the library is correctly populated and can be browsed (see above screenshot)
  4. The issue persists across all skins

Other context:

  • "Include people (slow)" is enabled in plugin settings
  • Have tried various combinations of Reset Local Database, Update libraries, Repair libraries, etc.

Many thanks for the excellent work in developing this package! Having recently migrated from a pure Kodi setup I have been impressed.

kjemmett avatar Jun 18 '21 01:06 kjemmett

This is a known issue. I thought there was another bug report for it, but I can't seem to find it right now. I've spent many hours comparing the databases between a vanilla kodi and a database using JF4K and I haven't found where the issue lies yet. Something just seems to not be getting linked correctly, but I have no idea where at this point.

mcarlton00 avatar Jun 20 '21 18:06 mcarlton00

Thanks! Probably thinking of Issue #227.

I toyed with the database and found I could resolve the issue by tweaking the strPath column in the path table. JF4K is writing paths to nfs mounts as nfs://server:/path/to/file/. Kodi writes these paths without the colon separator, as nfs://server/path/to/file/. When I remove the colon in the JF4K entry, matching Kodi's syntax, the cast appears correctly in the information panel, and the file plays correctly. Per Kodi (filesystem/NFSDirectory.cpp) this appears to be the preferred way of specifying paths. No edits to the artist_link table are required.

This works for TV shows, provided I also populate the strContent field to tvshows in the path table.

What I don't understand is why getting the cast information needs to invoke anything in the path table. The getCast method in VideoDatabase.cpp has a straightforward query to the actor_link and actor tables, so it is coming from somewhere else.

An update to the get_file_path method should be sufficient. If you agree I am happy to draft and submit a pull request.

kjemmett avatar Jun 27 '21 19:06 kjemmett

Good detective work. Going through Kodi's code is the way I wanted to look into this, but we'll just say that C languages aren't my strong point and it didn't go well. And these databases definitely weren't meant to be monkeyed with like we're doing.

This also brings up another interesting distinction that I hadn't thought of. This solution you've found only works in Native mode (which none of us use and didn't realize it was broken for everything there). Addon mode writes the paths differently (as might be expected). Also, in Addon mode movies work correctly right now, but tv shows do not. For example, my test install right now with only a single tv show synced.

sqlite> select * from path;
1|plugin://plugin.video.jellyfin/6d1fd2cbea75323657e87c8315b4bb9c/|tvshows|metadata.local|||||1||||
2|plugin://plugin.video.jellyfin/6d1fd2cbea75323657e87c8315b4bb9c/91e74cd2767a07e878f8fbdae7caf407/|||||||1|||1|
3|plugin://plugin.video.jellyfin/91e74cd2767a07e878f8fbdae7caf407/|||||||1|||1|

Either way, a partial fix is better than no fix, so feel free to open a PR and maybe it'll lead us to a solution in addon mode as well.

mcarlton00 avatar Jun 28 '21 01:06 mcarlton00

Was this fixed in the code base with the below already? I'm trying to figure out if this is my problem or if I have something different going on.

Thanks! Probably thinking of Issue #227.

I toyed with the database and found I could resolve the issue by tweaking the strPath column in the path table. JF4K is writing paths to nfs mounts as nfs://server:/path/to/file/. Kodi writes these paths without the colon separator, as nfs://server/path/to/file/. When I remove the colon in the JF4K entry, matching Kodi's syntax, the cast appears correctly in the information panel, and the file plays correctly. Per Kodi (filesystem/NFSDirectory.cpp) this appears to be the preferred way of specifying paths. No edits to the artist_link table are required.

This works for TV shows, provided I also populate the strContent field to tvshows in the path table.

What I don't understand is why getting the cast information needs to invoke anything in the path table. The getCast method in VideoDatabase.cpp has a straightforward query to the actor_link and actor tables, so it is coming from somewhere else.

An update to the get_file_path method should be sufficient. If you agree I am happy to draft and submit a pull request.

gitdeath avatar Feb 07 '22 17:02 gitdeath

We haven't had any changes to the database to address this. I can't say if anything has changed upstream in relation to it, but I would suspect not.

mcarlton00 avatar Feb 08 '22 02:02 mcarlton00

Any news on this issue?

Paelsmoessan avatar Oct 19 '22 16:10 Paelsmoessan

Hi,

I have looked into this as I am also bothered by this issue, and following the track of kjemmett, I have compared native kodi scrapped folders and jellyfin scrapped one, looking at the "path" table.

To make the cast information available, I had to:

  1. Set "strContent" as tvshow for the main folder (can be done in kodi UI by editing the media source when in native mode)
  2. Set the appropriate value of "idParentPath" of each child entry of the main folder

=> Then it works, cast information is available.

I will also have a look at the jellyfin add-on mode, but I think the solution will be similar.

GregoireDruant avatar Apr 27 '23 18:04 GregoireDruant

I'm on addon mode and for TV Shows I also do not get cast info (at least in my skin which is aeon nox). Hoping to see a fix for this at some point. Movies do seem to show cast though.

ShadwDrgn avatar May 02 '23 22:05 ShadwDrgn

I pushed a PR fixing this for both native mode and add-on mode: https://github.com/jellyfin/jellyfin-kodi/pull/731

GregoireDruant avatar May 13 '23 16:05 GregoireDruant

Hi, Just upping this issue. It has the Native Mode label which I think is incorrect, as the issue also exists in Addon Mode. And as I understand the you in the team project do not use native mode, this cannot help.

GregoireDruant avatar Dec 16 '23 14:12 GregoireDruant