tubearchivist / tubearchivist-jf-plugin

Metadata for your TubeArchivist library on Jellyfin.
GNU General Public License v3.0
99 stars 6 forks source link

[Bug]: PersonInfo Method not found. #13

Open talontsi07 opened 3 months ago

talontsi07 commented 3 months ago

I've read the documentation

Operating System

Linux

Your Bug Report

Describe the bug

When using the TubeArchivist Jellyfin plugin, an error occurs related to the PersonInfo.set_Type method, resulting in metadata fetching failure for episodes.

Steps To Reproduce

Install the TubeArchivist Jellyfin plugin. Configure the plugin with the required settings. Attempt to fetch metadata for an episode. Observe the error in the Jellyfin logs.

Expected behavior

The metadata for episodes should be fetched and processed without errors, and the PersonInfo should be correctly handled according to the Jellyfin API.

Relevant Jellyfin log output

[ERR] Error in "TubeArchivist"
System.MissingMethodException: Method not found: 'Void MediaBrowser.Controller.Entities.PersonInfo.set_Type(System.String)'.
   at Jellyfin.Plugin.TubeArchivistMetadata.Providers.EpisodeMetadataProvider.GetMetadata(EpisodeInfo info, CancellationToken cancellationToken)
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Jellyfin.Plugin.TubeArchivistMetadata.Providers.EpisodeMetadataProvider.GetMetadata(EpisodeInfo info, CancellationToken cancellationToken)
   at MediaBrowser.Providers.Manager.MetadataService`2.ExecuteRemoteProviders(MetadataResult`1 temp, String logName, TIdType id, IEnumerable`1 providers, CancellationToken cancellationToken)

Anything else?

I rebuilt the plugin after changing Type = Data.Enums.PersonKind.Actor, to Type = Data.Enums.PersonKind.Unknown, in EpisodeMetadataProvider.cs and that has seemed to band aid fix it.

Jellyfin: 10.9.2 TubeArchivistMetadata: 1.3.0.0 from repository TubeArchivistMetadata TubeArchivist: v0.4.7

DarkFighterLuke commented 3 months ago

Mmh, I have some doubts: First, the solution attempt you found is not logically correct :) Second, the exception is very strange, because it resembles to one that I saw when using the plugin on an old Jellyfin version. Are you 100% sure about your Jellyfin and plugin versions? Please check them from Jellyfin Dashboard UI.

On my side I am not able to reproduce the issue btw :(

Emporea commented 3 months ago

I experienced the same issue since I upgraded from jellyfin 10.8.13 to 10.9.3.

TubeArchivistMetadata Plugin was still installed on version 1.2.3.0, since in the manifest.json the highest compatible version is 10.9.1 so my guess is that it didn't upgrade automatically.

When I scanned the tubearchivist's library the logs got flooded with:

[ERR] [11] MediaBrowser.Providers.TV.EpisodeMetadataService: Error in TubeArchivist
System.MissingMethodException: Method not found: 'Void MediaBrowser.Controller.Entities.PersonInfo.set_Type(System.String)'.
   at Jellyfin.Plugin.TubeArchivistMetadata.Providers.EpisodeMetadataProvider.GetMetadata(EpisodeInfo info, CancellationToken cancellationToken)
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Jellyfin.Plugin.TubeArchivistMetadata.Providers.EpisodeMetadataProvider.GetMetadata(EpisodeInfo info, CancellationToken cancellationToken)
   at MediaBrowser.Providers.Manager.MetadataService`2.ExecuteRemoteProviders(MetadataResult`1 temp, String logName, TIdType id, IEnumerable`1 providers, CancellationToken cancellationToken)

Newly added videos were displayed in a "Season 1" or "Season 2" (probably more) folders with their title just being the video id.

I had to manually click on the plugin Catalog, install 1.3.0.0, remove the old version, and restart. Now its working.

talontsi07 commented 3 months ago

First, the solution attempt you found is not logically correct :): That could be however "Unknown" is an option for "PersonKind".

Second, the exception is very strange, because it resembles to one that I saw when using the plugin on an old Jellyfin version.: I checked and included all the version numbers in my post.

PersonKind.cs


public enum PersonKind
{
    //
    // Summary:
    //     An unknown person kind.
    Unknown,
    //
    // Summary:
    //     A person whose profession is acting on the stage, in films, or on television.
    Actor,
    //
    // Summary:
    //     A person who supervises th actors and other staff in a film, play, or similar
    //     production.
    Director,
DarkFighterLuke commented 3 months ago

@Emporea yes, you are right, I will give a look at the supported version in the manifest, but anyway I am not sure that plugins get automatically updated with the whole Jellyfin.

@talontsi07 yes, Unknown is a valid PersonKind, but not the correct one to set :)

Emporea commented 3 months ago

@DarkFighterLuke well I am not 100% sure either, but all other plugins I had were automatically upgraded, just tubearchivist was not.

DarkFighterLuke commented 3 months ago

@DarkFighterLuke well I am not 100% sure, but all other plugins i had were automatically upgraded aswell, just tubearchivist not.

Nice to know 💯 I will check the manifest and fix it. Thanks for noticing 🙂