Skip to content

Jellyfins TMDB plugin can no longer find backdrop/folder/landscape/logo images #13171

Closed as not planned
@Speiger

Description

This issue respects the following points:

  • This is a bug, not a question or a configuration issue; Please visit our forum or chat rooms first to troubleshoot with volunteers, before creating a report. The links can be found here.
  • This issue is not already reported on GitHub (I've searched it).
  • I'm using an up to date version of Jellyfin Server stable, unstable or master; We generally do not support previous older versions. If possible, please update to the latest version before opening an issue.
  • I agree to follow Jellyfin's Code of Conduct.
  • This report addresses only a single issue; If you encounter multiple issues, kindly create separate reports for each one.

Description of the bug

Today when uploading a series to jellyfin i noticed it wasn't getting any of the main cover images. (Season/Actor/Episode still worked though)
Ok, thought maybe it is not there.
Then I added another one and saw it had issues too. And i double checked if it was present.

After that i just out of curiosity reran another scan on part of my library.

And I keep getting this error.

[2024-12-07 02:47:01.518 +01:00] [ERR] [12] MediaBrowser.Providers.Manager.ProviderManager: "TmdbSeriesImageProvider" failed in GetImageInfos for type "Series" at "/volume5/video/serien/RWBY"
Newtonsoft.Json.JsonReaderException: Could not convert string to DateTime: 2024-07-05 19:01:08 UTC. Path 'videos.results[0].published_at', line 1, position 15997.
   at Newtonsoft.Json.JsonReader.ReadDateTimeString(String s)
   at Newtonsoft.Json.JsonTextReader.FinishReadQuotedStringValue(ReadType readType)
   at Newtonsoft.Json.JsonReader.ReadForType(JsonContract contract, Boolean hasConverter)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
   at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
   at TMDbLib.Utilities.Serializer.TMDbJsonSerializer.Deserialize(Stream source, Type type)
   at TMDbLib.Utilities.Serializer.SerializerExtensions.Deserialize[T](ITMDbSerializer serializer, Stream source)
   at TMDbLib.Rest.RestResponse`1.GetDataObject()
   at TMDbLib.Client.TMDbClient.GetTvShowAsync(Int32 id, TvShowMethods extraMethods, String language, String includeImageLanguage, CancellationToken cancellationToken)
   at MediaBrowser.Providers.Plugins.Tmdb.TmdbClientManager.GetSeriesAsync(Int32 tmdbId, String language, String imageLanguages, CancellationToken cancellationToken)
   at MediaBrowser.Providers.Plugins.Tmdb.TV.TmdbSeriesImageProvider.GetImages(BaseItem item, CancellationToken cancellationToken)
   at MediaBrowser.Providers.Manager.ProviderManager.GetImages(BaseItem item, IRemoteImageProvider provider, String preferredLanguage, Boolean includeAllLanguages, CancellationToken cancellationToken, Nullable`1 type)

To me that looks like TMDB changed something and broke your code.

Mainly because it was fine 1 week ago and now it doesn't work anymore.
(And RWBY for example was added 1 week ago just fine)

Reproduction steps

Add a Series to your jellyfin and add a series, it should happen automatically.

What is the current bug behavior?

backdrop/folder/landscape/logo images not appearing

What is the expected correct behavior?

backdrop/folder/landscape/logo images should be appearing

Jellyfin Server version

10.10.0+

Specify commit id

No response

Specify unstable release number

No response

Specify version number

No response

Specify the build version

10.10.3

Environment

- OS: Synology Disk Station DSM 7.2.2-72806 Update 2
- Source: https://synocommunity.com/package/jellyfin
- Settings: Default settings/plugins + Transcoder/Trickplay enabled.

(I know synology is technically not fully supported. On the other hand this is a JSON parse error which can't be caused by the operating system from a networking callback)

Jellyfin logs

[2024-12-07 02:47:01.518 +01:00] [ERR] [12] MediaBrowser.Providers.Manager.ProviderManager: "TmdbSeriesImageProvider" failed in GetImageInfos for type "Series" at "/volume5/video/serien/RWBY"
Newtonsoft.Json.JsonReaderException: Could not convert string to DateTime: 2024-07-05 19:01:08 UTC. Path 'videos.results[0].published_at', line 1, position 15997.
   at Newtonsoft.Json.JsonReader.ReadDateTimeString(String s)
   at Newtonsoft.Json.JsonTextReader.FinishReadQuotedStringValue(ReadType readType)
   at Newtonsoft.Json.JsonReader.ReadForType(JsonContract contract, Boolean hasConverter)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
   at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
   at TMDbLib.Utilities.Serializer.TMDbJsonSerializer.Deserialize(Stream source, Type type)
   at TMDbLib.Utilities.Serializer.SerializerExtensions.Deserialize[T](ITMDbSerializer serializer, Stream source)
   at TMDbLib.Rest.RestResponse`1.GetDataObject()
   at TMDbLib.Client.TMDbClient.GetTvShowAsync(Int32 id, TvShowMethods extraMethods, String language, String includeImageLanguage, CancellationToken cancellationToken)
   at MediaBrowser.Providers.Plugins.Tmdb.TmdbClientManager.GetSeriesAsync(Int32 tmdbId, String language, String imageLanguages, CancellationToken cancellationToken)
   at MediaBrowser.Providers.Plugins.Tmdb.TV.TmdbSeriesImageProvider.GetImages(BaseItem item, CancellationToken cancellationToken)
   at MediaBrowser.Providers.Manager.ProviderManager.GetImages(BaseItem item, IRemoteImageProvider provider, String preferredLanguage, Boolean includeAllLanguages, CancellationToken cancellationToken, Nullable`1 type)

FFmpeg logs

Not needed

Client / Browser logs

No response

Relevant screenshots or videos

No response

Additional information

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions