jellyfin / jellyfin-plugin-tvdb Goto Github PK
View Code? Open in Web Editor NEWLicense: GNU General Public License v3.0
License: GNU General Public License v3.0
I don't have a Legacy keys of TheTVDB, so i only have the API keys.
I got the error message when i use API keys.
TvDbSharper.TvDbServerException: Invalid credentials; API Key Required
at TvDbSharper.Infrastructure.Parser.Parse[T](ApiResponse response, IReadOnlyDictionary`2 errorMap)
at TvDbSharper.Clients.AuthenticationClient.AuthenticateAsync(AuthenticationData authenticationData, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.GetTvDbClient(String language)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.<>c__DisplayClass24_0`1.<<TryGetValue>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.Extensions.Caching.Memory.CacheExtensions.GetOrCreateAsync[TItem](IMemoryCache cache, Object key, Func`2 factory)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.GetImageKeyTypesForSeriesAsync(Int32 tvdbId, String language, CancellationToken cancellationToken)+MoveNext()
at Jellyfin.Plugin.Tvdb.TvdbClientManager.GetImageKeyTypesForSeriesAsync(Int32 tvdbId, String language, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
at Jellyfin.Plugin.Tvdb.Providers.TvdbSeriesImageProvider.GetImages(BaseItem item, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.Providers.TvdbSeriesImageProvider.GetImages(BaseItem item, CancellationToken cancellationToken)
at MediaBrowser.Providers.Manager.ProviderManager.GetImages(BaseItem item, IRemoteImageProvider provider, String preferredLanguage, Boolean includeAllLanguages, CancellationToken cancellationToken, Nullable`1 type)
Describe the bug
Specifically trying to scan "The Melancholy of Haruhi Suzumiya" (tvdbid 79414) in DVD order does not work and produces the mentioned error.
System (please complete the following information):
To Reproduce
Not sure if empty files work with jellyfin but these commands would replicated the correct folder/file structure on
a linux system
mkdir -p "The Melancholy of Haruhi Suzumiya (2006)/Season 1"
mkdir -p "The Melancholy of Haruhi Suzumiya (2006)/Season 2"
touch "The Melancholy of Haruhi Suzumiya (2006)/Season 1/The Melancholy of Haruhi Suzumiya (2006) S01E"{01..14}".mkv"
touch "The Melancholy of Haruhi Suzumiya (2006)/Season 2/The Melancholy of Haruhi Suzumiya (2006) S02E"{02..14}".mkv"
After that, simply scan it to the library.
At this point Aired Order is what is used and therefore "Season 2" is not properly scanned.
On the Series itself:
Expected behavior
Logs
Attached because to big for pastebin :)
jellyfin.log
Recently I set up a Jellyfin server with a RPi4 mainly used to watch anime. After using it a few months with AniDB I didn't like the way it organizes the anime, so I want to switch to thetvdb.
HW: RPi4
Version 10.7.6
OS: Raspbian
Since it wasn't working with the default API from the tvdb plugin I paid the tvdb subscription to get my own "Legacy API key" like they called it thinking that may be the problem, but after changing the API key still can't get any metadata from the tvdb.
What am I doing wrong?
I'm following the naming scheme of tvdb for my anime library.
I also tried to manually identifying the anime with thetvdb ID but only got synopsis and the cast info, not the images.
Is the problem Jellyfin? Thetvdb? me? Any suggestions? Please help.
The logs show this:
[2021-08-22 23:56:24.477 -03:00] [ERR] "TvdbSeriesImageProvider" failed in GetImageInfos for type "Series" at "/mnt/external/shared/Jellyfin/Anime test/Oreimo (2010)" TvDbSharper.TvDbServerException: The given series ID does not exist; Resource not found
at TvDbSharper.Infrastructure.Parser.Parse[T](ApiResponse response, IReadOnlyDictionary`2 errorMap)
at TvDbSharper.Clients.SeriesClient.GetImagesSummaryAsync(Int32 seriesId, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.<>c__DisplayClass24_0`1.<<TryGetValue>b__0>d.MoveNext() --- End of stack trace from previous location ---
at Microsoft.Extensions.Caching.Memory.CacheExtensions.GetOrCreateAsync[TItem](IMemoryCache cache, Object key, Func`2 factory)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.GetImageKeyTypesForSeriesAsync(Int32 tvdbId, String language, CancellationToken cancellationToken)+MoveNext()
at Jellyfin.Plugin.Tvdb.TvdbClientManager.GetImageKeyTypesForSeriesAsync(Int32 tvdbId, String language, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
at Jellyfin.Plugin.Tvdb.Providers.TvdbSeriesImageProvider.GetImages(BaseItem item, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.Providers.TvdbSeriesImageProvider.GetImages(BaseItem item, CancellationToken cancellationToken)
at MediaBrowser.Providers.Manager.ProviderManager.GetImages(BaseItem item, IRemoteImageProvider provider, IReadOnlyCollection`1 preferredLanguages, CancellationToken cancellationToken, Nullable`1 type)
[2021-08-22 23:56:24.670 -03:00] [ERR] "TvdbSeasonImageProvider" failed in GetImageInfos for type "Season" at "/mnt/external/shared/Jellyfin/Anime test/Oreimo (2010)/Season 1" TvDbSharper.TvDbServerException: The given series ID does not exist; Resource not found
at TvDbSharper.Infrastructure.Parser.Parse[T](ApiResponse response, IReadOnlyDictionary`2 errorMap)
at TvDbSharper.Clients.SeriesClient.GetImagesSummaryAsync(Int32 seriesId, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.<>c__DisplayClass24_0`1.<<TryGetValue>b__0>d.MoveNext() --- End of stack trace from previous location ---
at Microsoft.Extensions.Caching.Memory.CacheExtensions.GetOrCreateAsync[TItem](IMemoryCache cache, Object key, Func`2 factory)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.GetImageKeyTypesForSeasonAsync(Int32 tvdbId, String language, CancellationToken cancellationToken)+MoveNext()
at Jellyfin.Plugin.Tvdb.TvdbClientManager.GetImageKeyTypesForSeasonAsync(Int32 tvdbId, String language, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
at Jellyfin.Plugin.Tvdb.Providers.TvdbSeasonImageProvider.GetImages(BaseItem item, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.Providers.TvdbSeasonImageProvider.GetImages(BaseItem item, CancellationToken cancellationToken)
at MediaBrowser.Providers.Manager.ProviderManager.GetImages(BaseItem item, IRemoteImageProvider provider, IReadOnlyCollection`1 preferredLanguages, CancellationToken cancellationToken, Nullable`1 type)
[2021-08-22 23:56:24.769 -03:00] [ERR] "TvdbSeasonImageProvider" failed in GetImageInfos for type "Season" at "/mnt/external/shared/Jellyfin/Anime test/Oreimo (2010)/Specials" TvDbSharper.TvDbServerException: The given series ID does not exist; Resource not found
at TvDbSharper.Infrastructure.Parser.Parse[T](ApiResponse response, IReadOnlyDictionary`2 errorMap)
at TvDbSharper.Clients.SeriesClient.GetImagesSummaryAsync(Int32 seriesId, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.<>c__DisplayClass24_0`1.<<TryGetValue>b__0>d.MoveNext() --- End of stack trace from previous location ---
at Microsoft.Extensions.Caching.Memory.CacheExtensions.GetOrCreateAsync[TItem](IMemoryCache cache, Object key, Func`2 factory)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.GetImageKeyTypesForSeasonAsync(Int32 tvdbId, String language, CancellationToken cancellationToken)+MoveNext()
at Jellyfin.Plugin.Tvdb.TvdbClientManager.GetImageKeyTypesForSeasonAsync(Int32 tvdbId, String language, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
at Jellyfin.Plugin.Tvdb.Providers.TvdbSeasonImageProvider.GetImages(BaseItem item, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.Providers.TvdbSeasonImageProvider.GetImages(BaseItem item, CancellationToken cancellationToken)
at MediaBrowser.Providers.Manager.ProviderManager.GetImages(BaseItem item, IRemoteImageProvider provider, IReadOnlyCollection`1 preferredLanguages, CancellationToken cancellationToken, Nullable`1 type)
[2021-08-22 23:56:24.869 -03:00] [ERR] "TvdbSeasonImageProvider" failed in GetImageInfos for type "Season" at "/mnt/external/shared/Jellyfin/Anime test/Oreimo (2010)/Season 2" TvDbSharper.TvDbServerException: The given series ID does not exist; Resource not found
at TvDbSharper.Infrastructure.Parser.Parse[T](ApiResponse response, IReadOnlyDictionary`2 errorMap)
at TvDbSharper.Clients.SeriesClient.GetImagesSummaryAsync(Int32 seriesId, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.<>c__DisplayClass24_0`1.<<TryGetValue>b__0>d.MoveNext() --- End of stack trace from previous location ---
at Microsoft.Extensions.Caching.Memory.CacheExtensions.GetOrCreateAsync[TItem](IMemoryCache cache, Object key, Func`2 factory)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.GetImageKeyTypesForSeasonAsync(Int32 tvdbId, String language, CancellationToken cancellationToken)+MoveNext()
at Jellyfin.Plugin.Tvdb.TvdbClientManager.GetImageKeyTypesForSeasonAsync(Int32 tvdbId, String language, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
at Jellyfin.Plugin.Tvdb.Providers.TvdbSeasonImageProvider.GetImages(BaseItem item, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.Providers.TvdbSeasonImageProvider.GetImages(BaseItem item, CancellationToken cancellationToken)
at MediaBrowser.Providers.Manager.ProviderManager.GetImages(BaseItem item, IRemoteImageProvider provider, IReadOnlyCollection`1 preferredLanguages, CancellationToken cancellationToken, Nullable`1 type)
A good example of this is Beavis & Butthead where TheTVDB has skipped Season 8 (as MTV skipped Season 8 in their marketing).
I keep getting a "missing" season 8 created each time. There is no Season 8 for the plugin to keep creating.
Jellyfin TVDB Missing plugin produces the following error.
[2022-05-26 13:59:36.118 -04:00] [INF] [63] Jellyfin.Plugin.Tvdb.Providers.TvdbMissingEpisodeProvider: Creating Season "Season 8" entry for "Beavis and Butt-Head"
[2022-05-26 13:59:36.414 -04:00] [WRN] [48] Jellyfin.Plugin.Tvdb.Providers.TvdbMissingEpisodeProvider: Unable to get episodes from TVDB
TvDbSharper.TvDbServerException: The given series ID does not exist; No results for your query: map[AiredSeason:8]
at TvDbSharper.Infrastructure.Parser.Parse[T](ApiResponse response, IReadOnlyDictionary`2 errorMap)
at TvDbSharper.Clients.SeriesClient.GetEpisodesAsync(Int32 seriesId, Int32 page, EpisodeQuery query, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.<>c__DisplayClass24_0`1.<<TryGetValue>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.Extensions.Caching.Memory.CacheExtensions.GetOrCreateAsync[TItem](IMemoryCache cache, Object key, Func`2 factory)
at Jellyfin.Plugin.Tvdb.Providers.TvdbMissingEpisodeProvider.GetAllEpisodes(Int32 tvdbId, String acceptedLanguage, EpisodeQuery episodeQuery)
I have the specific series number from thetvdb that I input in "identify". The UI shows the correct series name, albeit without the cover art, which I then choose. When everything is done refreshing, I still get old incorrect match. Looking at the logs, it says that the series ID doesn't exist even though I have even looked up and matched the exact ID. Correct ID is 97201, but it still shows data for 80352.
[2022-06-19 11:13:56.482 -07:00] [INF] Setting provider id's to item 524aad47-69ae-4597-a623-52d42e32db6e-"Life (2007)": "{\"Tvdb\":\"97201\"}"
[2022-06-19 11:13:57.679 -07:00] [ERR] "TvdbSeriesImageProvider" failed in GetImageInfos for type "Series" at "/mnt/videos/Other/Japanese TV shows/LIFE"
TvDbSharper.TvDbServerException: The given series ID does not exist; Resource not found
at TvDbSharper.Infrastructure.Parser.Parse[T](ApiResponse response, IReadOnlyDictionary`2 errorMap)
at TvDbSharper.Clients.SeriesClient.GetImagesSummaryAsync(Int32 seriesId, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.<>c__DisplayClass24_0`1.<<TryGetValue>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.Extensions.Caching.Memory.CacheExtensions.GetOrCreateAsync[TItem](IMemoryCache cache, Object key, Func`2 factory)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.GetImageKeyTypesForSeriesAsync(Int32 tvdbId, String language, CancellationToken cancellationToken)+MoveNext()
at Jellyfin.Plugin.Tvdb.TvdbClientManager.GetImageKeyTypesForSeriesAsync(Int32 tvdbId, String language, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()
at Jellyfin.Plugin.Tvdb.Providers.TvdbSeriesImageProvider.GetImages(BaseItem item, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.Providers.TvdbSeriesImageProvider.GetImages(BaseItem item, CancellationToken cancellationToken)
at MediaBrowser.Providers.Manager.ProviderManager.GetImages(BaseItem item, IRemoteImageProvider provider, String preferredLanguage, Boolean includeAllLanguages, CancellationToken cancellationToken, Nullable`1 type)
Does this use the Legacy key? So I can add my personal one?
TVDB separates metadata such as episode number etc between as originally aired and the order on DVD releases. I organize my TV library by DVD episode number since it's based on DVD rips anyway. I propose to add a option to the TVDB plugin to toggle which data to use.
The DVD data is provided as additional json keys:
"dvdEpisodeNumber": 0,
"dvdSeason": 0,
Having an issue where my scan isn't completing because of the Tvdb's missing epsiode provider (v6). Disabling it allows the search to complete.
Should this not be tested and handled gracefully (providing a warning and proceeding) rather than failing in this way?
There is also no logging on which show/episode/season if of concern here so I can remedy it, even with debug logging cranked to debug.
[2022-05-06 15:13:43.155 -04:00] [DBG] [38] MediaBrowser.Providers.Manager.ProviderManager: OnRefreshComplete "[ID-OF-MY-TV-LIBRARY]"
[2022-05-06 15:13:43.156 -04:00] [ERR] [38] MediaBrowser.Providers.Manager.ProviderManager: Error refreshing item
System.ArgumentNullException: Value cannot be null. (Parameter 'collection')
at System.Collections.Generic.List`1.InsertRange(Int32 index, IEnumerable`1 collection)
at Jellyfin.Plugin.Tvdb.Providers.TvdbMissingEpisodeProvider.GetAllEpisodes(Int32 tvdbId, String acceptedLanguage, EpisodeQuery episodeQuery)
at Jellyfin.Plugin.Tvdb.Providers.TvdbMissingEpisodeProvider.HandleSeason(Season season)
at Jellyfin.Plugin.Tvdb.Providers.TvdbMissingEpisodeProvider.OnProviderManagerRefreshComplete(Object sender, GenericEventArgs`1 genericEventArgs)
at MediaBrowser.Providers.Manager.ProviderManager.OnRefreshComplete(BaseItem item)
at MediaBrowser.Controller.Entities.Folder.ValidateChildrenInternal(IProgress`1 progress, CancellationToken cancellationToken, Boolean recursive, Boolean refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService)
at MediaBrowser.Controller.Entities.Folder.<>c__DisplayClass61_0`1.<<RunTasks>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at MediaBrowser.Controller.Entities.Folder.RunTasks[T](Func`3 task, IList`1 children, IProgress`1 progress, CancellationToken cancellationToken)
at MediaBrowser.Controller.Entities.Folder.ValidateChildrenInternal2(IProgress`1 progress, CancellationToken cancellationToken, Boolean recursive, Boolean refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService)
at MediaBrowser.Controller.Entities.Folder.ValidateChildrenInternal(IProgress`1 progress, CancellationToken cancellationToken, Boolean recursive, Boolean refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService)
at MediaBrowser.Controller.Entities.Folder.<>c__DisplayClass61_0`1.<<RunTasks>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at MediaBrowser.Controller.Entities.Folder.RunTasks[T](Func`3 task, IList`1 children, IProgress`1 progress, CancellationToken cancellationToken)
at MediaBrowser.Controller.Entities.Folder.ValidateChildrenInternal2(IProgress`1 progress, CancellationToken cancellationToken, Boolean recursive, Boolean refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService)
at MediaBrowser.Controller.Entities.Folder.ValidateChildrenInternal(IProgress`1 progress, CancellationToken cancellationToken, Boolean recursive, Boolean refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService)
at MediaBrowser.Providers.Manager.ProviderManager.RefreshCollectionFolderChildren(MetadataRefreshOptions options, CollectionFolder collectionFolder, CancellationToken cancellationToken)
at MediaBrowser.Providers.Manager.ProviderManager.RefreshItem(BaseItem item, MetadataRefreshOptions options, CancellationToken cancellationToken)
at MediaBrowser.Providers.Manager.ProviderManager.StartProcessingRefreshQueue()
I haven't dug into the API to see if they are exposed there or if they are waiting for v4 to deploy them.
I want to setup a info page with missing episodes on my nas. Not in jellyfin, but in a interface that shows all my services. It would be good to know where the data is stored, so i could write my own tool. An api would great too, but the usecase is quite specific. This could be considered a feature suggestion into the ui of jellyfin, so that there is a singe page that shows all missing episodes, but i am not familiar enough with c# to implement it and extend front/backend. So my question is where do i find the missing info files?
Following the instructions, I have .NET core for arch installed - get this error when starting to build:
/usr/share/dotnet/sdk/3.1.108/NuGet.targets(123,5): error : '10.-' is not a valid version string. [/home/wodger/Downloads/Jellyfin_TVDB/Jellyfin.Plugin.Tvdb.sln]
Would like to get this working if possible
Thanks
Image search results from theTVDB claim image resolutions to be 680x1000 pixels regardless of the actual resolution.
For example, whilst searching for season posters for Bob's Burgers, this image: TVDB link, claims to be 680x1000 whilst in the search window, but upon selecting it the reported resolution changes to the correct 400x578.
This can make it a little difficult to find consistent results when selecting season artwork.
I suspect this may be a fairly old bug, as my search for solutions found this issue on the main jellyfin repo. It claims they weren't receiving the full resolution image, but it seems likely the "full resolution" was in fact incorrect.
Running Jellyfin 10.8.10 on Windows 10, accessing via Chrome 115.0.5790.110.
Additional non default plugins:
Fanart
Open Subtitles
In version 10.7.0,If the file name is xxx.xxx.xxx.mkv,jellyfin didn't get any results。If I manually change the name to xxx xxx xxx.mkv(Delete.),The plug-in will work.
But in version 10.6.4,business as usual.
I've tried three versions,it's all like this.
Plugin-OMDb don't have that problem,but I am a Chinese user,OMDb don't provide Chinese metadata.
All my file names are xxx.xxx.xxx.mkv.This difficult question is a headache for me.
For instance, in S01 of Avatar, The Last Airbender, there are two episodes with Part 1
in the title:
Both these episodes, AND the actual first episode of the season (Ep. 01 - The Boy in the Iceberg) get parsed as S01E01.
The same thing happens with other parts: part 2 becomes S01E02, and so on.
[Issue]: When I add a missing episode, the "Missing" TVDB entry is not deleted
I use TMDB data provider in first order even for TVshow library because more reliable.
But I added TVDB to show missing episodes.
Now I can't delete "Missing" entry, even if I completed the season:(
I tryed refresh all metadata /w remplace all pictures. Do not work
Also tried refresh all library without success.
Not tested : delete entire TVshow from db and refresh (it must work but crap&slow) I can test if you ask
10.7.7
No response
- OS: Debian 10
- Virtualization: No
- Clients:
- Browser:
- FFmpeg Version: stock one from Jellyfin stable
- Playback Method: All
- Hardware Acceleration: No
- Plugins: TBDB Box set, Reports, TVDB
- Reverse Proxy: Apache HTTP
- Base URL: /jellyfin
- Networking: Gigabit LAN&WAN
- Storage: 116TB enterprise hdd
No response
No response
No response
im new to jellyfin and i tried to setup jellyfin with plugins.
The plugin has the version 10.0 and seems to work. I checked the show page and it is linked the thetvdb. The tvdb has the other episodes on there website, but it does not show up as missing in the webui. I tried it for test purposes and its missing the whole first season and starts with episode 5 so it should defenetly show that there are some missing episodes. It only shows the episods i added. The API key was generated when i downloaded it.
Describe the bug
Jellyfin doesn't use the default language, English, to fill missing metadata not available in the default metadata language of the library.
To Reproduce
Expected behavior
Jellyfin should pick what it can fron the choosen language, but if the metadata is missing (either title, or synopsis, or idk), fallback to English and pick only the missing metadata.
Logs
Jellyfin doesn't throws any error in logs.
Screenshots
No screenshot yet.
System (please complete the following information):
Additional context
From what I remember, with TheTVDB v1, Jellyfin picked the English one if it found a missing metadata from the choosen language.
Exceptions, like the one shown below, don’t provide the series ID in question. Because of this, debugging the problem and identifying a possibly misclassified show or episode is difficult. A helpful error message on these exceptions with information on what it was processing at the time would resolve this. Just tell me the series ID (or better yet the name) so I can re-identify the series.
[2022-05-10 13:38:52.632 -04:00] [WRN] [38] Jellyfin.Plugin.Tvdb.Providers.TvdbMissingEpisodeProvider: Unable to get episodes from TVDB
TvDbSharper.TvDbServerException: The given series ID does not exist; No results for your query: map[AiredSeason:0]
at TvDbSharper.Infrastructure.Parser.Parse[T](ApiResponse response, IReadOnlyDictionary`2 errorMap)
at TvDbSharper.Clients.SeriesClient.GetEpisodesAsync(Int32 seriesId, Int32 page, EpisodeQuery query, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.<>c__DisplayClass24_0`1.<<TryGetValue>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.Extensions.Caching.Memory.CacheExtensions.GetOrCreateAsync[TItem](IMemoryCache cache, Object key, Func`2 factory)
at Jellyfin.Plugin.Tvdb.Providers.TvdbMissingEpisodeProvider.GetAllEpisodes(Int32 tvdbId, String acceptedLanguage, EpisodeQuery episodeQuery)
[2022-05-10 13:38:53.204 -04:00] [WRN] [18] Jellyfin.Plugin.Tvdb.Providers.TvdbMissingEpisodeProvider: Unable to get episodes from TVDB
TvDbSharper.TvDbServerException: The given series ID does not exist; No results for your query: map[AiredSeason:8]
at TvDbSharper.Infrastructure.Parser.Parse[T](ApiResponse response, IReadOnlyDictionary`2 errorMap)
at TvDbSharper.Clients.SeriesClient.GetEpisodesAsync(Int32 seriesId, Int32 page, EpisodeQuery query, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.<>c__DisplayClass24_0`1.<<TryGetValue>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.Extensions.Caching.Memory.CacheExtensions.GetOrCreateAsync[TItem](IMemoryCache cache, Object key, Func`2 factory)
at Jellyfin.Plugin.Tvdb.Providers.TvdbMissingEpisodeProvider.GetAllEpisodes(Int32 tvdbId, String acceptedLanguage, EpisodeQuery episodeQuery)
SDK: https://www.nuget.org/packages/Tvdb.Sdk
Deadline: Oct 1, 2021 First half of 2022
I believe the plugin doesn't allow using alternate episode orders, which would be great
And example of a series with alternative order is La casa de papel.
Though one may want to use the Netflix order:
I presume there could be some way to change the order of a single show, and keep the current behavior as default.
TVDB not working with movies category
This plugin keeps pulling metadata in english, even if I've chosen another language to use for the particular show. I've confirmed that the show does have metadata on TVDB in the language I've chosen, but this plugin ignores it. Copying the metadata over to TMDB immediately solves the issue, as I have prioritized that as a metadata scraper.
Running Jellyfin 10.8.10 and TVDB plugin 10.0.0.0
Issue: Misidentified show (Narrative telephone) can't be changed to correct show (Critical Role)
Setup: Jellyfin 10.7.2, traefik reverse proxy, tvdb plugin latest version, subscriber legacy api key entered
Logs when "identify" run:
[2021-04-11 08:21:41.333 +10:00] [WRN] Slow HTTP Response from "https://jellyfin.$DOMAINNAME.com/Items/RemoteSearch/Series" to "122.199.45.222" in 0:00:01.1156667 with Status Code 200
[2021-04-11 08:21:44.020 +10:00] [INF] Setting provider id's to item e9ac49d3-2dfa-8460-bff6-ab9cc636dbd1-"Narrative Telephone": "{\"Tvdb\":\"296861\"}"
[2021-04-11 08:21:48.005 +10:00] [ERR] Failed to retrieve episode with id null, series id "390572"
TvDbSharper.TvDbServerException: The given series ID does not exist; No results for your query: map[AiredSeason:2 EpisodeNumber:67]
at TvDbSharper.Infrastructure.Parser.Parse[T](ApiResponse response, IReadOnlyDictionary`2 errorMap)
at TvDbSharper.Clients.SeriesClient.GetEpisodesAsync(Int32 seriesId, Int32 page, EpisodeQuery query, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.<>c__DisplayClass24_0`1.<<TryGetValue>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.Extensions.Caching.Memory.CacheExtensions.GetOrCreateAsync[TItem](IMemoryCache cache, Object key, Func`2 factory)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.GetEpisodeTvdbId(Int32 seriesTvdbId, EpisodeQuery episodeQuery, String language, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.Providers.TvdbEpisodeProvider.GetEpisode(EpisodeInfo searchInfo, CancellationToken cancellationToken)
[2021-04-11 08:21:48.062 +10:00] [ERR] Failed to retrieve episode images for series "390572"
TvDbSharper.TvDbServerException: The given series ID does not exist; No results for your query: map[AiredSeason:2 EpisodeNumber:67]
at TvDbSharper.Infrastructure.Parser.Parse[T](ApiResponse response, IReadOnlyDictionary`2 errorMap)
at TvDbSharper.Clients.SeriesClient.GetEpisodesAsync(Int32 seriesId, Int32 page, EpisodeQuery query, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.<>c__DisplayClass24_0`1.<<TryGetValue>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.Extensions.Caching.Memory.CacheExtensions.GetOrCreateAsync[TItem](IMemoryCache cache, Object key, Func`2 factory)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.GetEpisodeTvdbId(Int32 seriesTvdbId, EpisodeQuery episodeQuery, String language, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.Providers.TvdbEpisodeImageProvider.GetImages(BaseItem item, CancellationToken cancellationToken)
[2021-04-11 08:21:49.115 +10:00] [ERR] Failed to retrieve episode with id null, series id "390572"
TvDbSharper.TvDbServerException: The given series ID does not exist; No results for your query: map[AiredSeason:2 EpisodeNumber:68]
at TvDbSharper.Infrastructure.Parser.Parse[T](ApiResponse response, IReadOnlyDictionary`2 errorMap)
at TvDbSharper.Clients.SeriesClient.GetEpisodesAsync(Int32 seriesId, Int32 page, EpisodeQuery query, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.<>c__DisplayClass24_0`1.<<TryGetValue>b__0>d.MoveNext()
--- End of stack trace from previous location ---
Screenshot of "identify" hanging (UI stays like this for >10 min):
Additional information:
using:
when:
result:
Shows metadata and poster displays correctly, but no episodes metadata get filled. it displays filename instead.
Refresh metadata doesn't work. the problem persists.
It works only by doing manual Identify, everything filled and displays correctly.
I noticed that some of my TV episodes were not cataloged correctly, mostly because of jellyfin/jellyfin#1758
I tried to work around this issue by identifying the episodes myself, by navigating to the season, then:
To Reproduce
What happens
Nothing. I have waited hours.
Expected result:
Expected behavior
The metadata is updated using the TVDB id.
Logs
Screenshots
Additional context
It seems this plugin doesn't support special episodes when Display order is set to Absolute.
For example I have Detective Conan in my library configured with Absolute numbering, but when I tried to add a special (for example S0E04 - OVA 01: Conan vs. KID vs. Yaiba it gets the wrong metadata. It does show up as a Special, which is great, but the metadata information on the episode is from Episode 4 - The Coded Map of the City Case, which is less great.
Version: 10.7.5
Operating System: Linux
Architecture: X64
Plugin Version: 4.0.0
Added a large music library, Jellyfin became unresponsive for days, removed the offending library but the following errors occur now on each "Scan All Libraries". Scan aborts and some TV entries are missing from the listing.
Any hints on more debugging would be appreciated. Thanks.
[2021-05-14 10:29:27.538 +07:00] [ERR] Error
TvDbSharper.TvDbServerException: The given series ID does not exist; No results for your query: map[AiredSeason:80]
at TvDbSharper.Infrastructure.Parser.Parse[T](ApiResponse response, IReadOnlyDictionary`2 errorMap)
at TvDbSharper.Clients.SeriesClient.GetEpisodesAsync(Int32 seriesId, Int32 page, EpisodeQuery query, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.<>c__DisplayClass24_0`1.<<TryGetValue>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.Extensions.Caching.Memory.CacheExtensions.GetOrCreateAsync[TItem](IMemoryCache cache, Object key, Func`2 factory)
at Jellyfin.Plugin.Tvdb.Providers.TvdbMissingEpisodeProvider.GetAllEpisodes(Int32 tvdbId, String acceptedLanguage, EpisodeQuery episodeQuery)
at Jellyfin.Plugin.Tvdb.Providers.TvdbMissingEpisodeProvider.HandleSeason(Season season)
at Jellyfin.Plugin.Tvdb.Providers.TvdbMissingEpisodeProvider.OnProviderManagerRefreshComplete(Object sender, GenericEventArgs`1 genericEventArgs)
at MediaBrowser.Providers.Manager.ProviderManager.OnRefreshComplete(BaseItem item)
at MediaBrowser.Controller.Entities.Folder.ValidateChildrenInternal(IProgress`1 progress, CancellationToken cancellationToken, Boolean recursive, Boolean refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService)
at MediaBrowser.Controller.Entities.Folder.<>c__DisplayClass61_0`1.<<RunTasks>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at MediaBrowser.Controller.Entities.Folder.RunTasks[T](Func`3 task, IList`1 children, IProgress`1 progress, CancellationToken cancellationToken)
at MediaBrowser.Controller.Entities.Folder.ValidateChildrenInternal2(IProgress`1 progress, CancellationToken cancellationToken, Boolean recursive, Boolean refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService)
at MediaBrowser.Controller.Entities.Folder.ValidateChildrenInternal(IProgress`1 progress, CancellationToken cancellationToken, Boolean recursive, Boolean refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService)
at MediaBrowser.Controller.Entities.Folder.<>c__DisplayClass61_0`1.<<RunTasks>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at MediaBrowser.Controller.Entities.Folder.RunTasks[T](Func`3 task, IList`1 children, IProgress`1 progress, CancellationToken cancellationToken)
at MediaBrowser.Controller.Entities.Folder.ValidateChildrenInternal2(IProgress`1 progress, CancellationToken cancellationToken, Boolean recursive, Boolean refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService)
at MediaBrowser.Controller.Entities.Folder.ValidateChildrenInternal(IProgress`1 progress, CancellationToken cancellationToken, Boolean recursive, Boolean refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService)
at MediaBrowser.Controller.Entities.Folder.<>c__DisplayClass61_0`1.<<RunTasks>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at MediaBrowser.Controller.Entities.Folder.RunTasks[T](Func`3 task, IList`1 children, IProgress`1 progress, CancellationToken cancellationToken)
at MediaBrowser.Controller.Entities.Folder.ValidateChildrenInternal2(IProgress`1 progress, CancellationToken cancellationToken, Boolean recursive, Boolean refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService)
at MediaBrowser.Controller.Entities.Folder.ValidateChildrenInternal(IProgress`1 progress, CancellationToken cancellationToken, Boolean recursive, Boolean refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService)
at MediaBrowser.Controller.Entities.AggregateFolder.ValidateChildrenInternal(IProgress`1 progress, CancellationToken cancellationToken, Boolean recursive, Boolean refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService)
at Emby.Server.Implementations.Library.LibraryManager.PerformLibraryValidation(IProgress`1 progress, CancellationToken cancellationToken)
at Emby.Server.Implementations.Library.LibraryManager.ValidateMediaLibraryInternal(IProgress`1 progress, CancellationToken cancellationToken)
at Emby.Server.Implementations.ScheduledTasks.ScheduledTaskWorker.ExecuteInternal(TaskOptions options)
[2021-05-14 10:29:27.617 +07:00] [INF] "Scan Media Library" Failed after 0 minute(s) and 19 seconds
For many shows there are deleted scenes or interviews or DVD extras that the plugin will retrieve and populate into Jellyfin. I don't think the average user is interested in these as they are upcoming episodes or missing episodes assuming they have this provider enabled.
On the Dashboard plugin screen, the TVDB plugin has "Malfunction" in the Status line.
Jellyfin
Version: 10.7.1
Operating System: Linux
Architecture: X64
As tvdb also sorts by collection (franchise) I thought it would be a good feature to include it in the choice of sources for boxset collections like tmdb
When in the manual image selector for an actor TheTVDB preview is blank
I did a full library rescan with this plugin, and I'm seeing weird exceptions where it looks like it's querying with the wrong IDs:
TvDbSharper.TvDbServerException: No records are found that match your query; Resource not found
at TvDbSharper.Infrastructure.Parser.Parse[T](ApiResponse response, IReadOnlyDictionary`2 errorMap)
at TvDbSharper.Clients.SearchClient.SearchSeriesAsync(String value, String parameterKey, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.<>c__DisplayClass24_0`1.<<TryGetValue>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.Extensions.Caching.Memory.CacheExtensions.GetOrCreateAsync[TItem](IMemoryCache cache, Object key, Func`2 factory)
at Jellyfin.Plugin.Tvdb.Providers.TvdbSeriesProvider.GetSeriesByRemoteId(String id, String idType, String language, CancellationToken cancellationToken)
[17:01:50] [ERR] [74] Jellyfin.Plugin.Tvdb.Providers.TvdbSeriesProvider: Failed to retrieve series with remote id tt13780080
TvDbSharper.TvDbServerException: No records are found that match your query; Resource not found
at TvDbSharper.Infrastructure.Parser.Parse[T](ApiResponse response, IReadOnlyDictionary`2 errorMap)
at TvDbSharper.Clients.SearchClient.SearchSeriesAsync(String value, String parameterKey, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.<>c__DisplayClass24_0`1.<<TryGetValue>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.Extensions.Caching.Memory.CacheExtensions.GetOrCreateAsync[TItem](IMemoryCache cache, Object key, Func`2 factory)
at Jellyfin.Plugin.Tvdb.Providers.TvdbSeriesProvider.GetSeriesByRemoteId(String id, String idType, String language, CancellationToken cancellationToken)
[17:01:50] [ERR] [10] Jellyfin.Plugin.Tvdb.Providers.TvdbSeriesProvider: Failed to retrieve series with remote id EP01216702
TvDbSharper.TvDbServerException: No records are found that match your query; Resource not found
at TvDbSharper.Infrastructure.Parser.Parse[T](ApiResponse response, IReadOnlyDictionary`2 errorMap)
at TvDbSharper.Clients.SearchClient.SearchSeriesAsync(String value, String parameterKey, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.<>c__DisplayClass24_0`1.<<TryGetValue>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.Extensions.Caching.Memory.CacheExtensions.GetOrCreateAsync[TItem](IMemoryCache cache, Object key, Func`2 factory)
at Jellyfin.Plugin.Tvdb.Providers.TvdbSeriesProvider.GetSeriesByRemoteId(String id, String idType, String language, CancellationToken cancellationToken)
[17:01:50] [ERR] [74] Jellyfin.Plugin.Tvdb.Providers.TvdbSeriesProvider: Failed to retrieve series with id null
TvDbSharper.TvDbServerException: The given series ID does not exist; ID: 0 not found
at TvDbSharper.Infrastructure.Parser.Parse[T](ApiResponse response, IReadOnlyDictionary`2 errorMap)
at TvDbSharper.Clients.SeriesClient.GetAsync(Int32 seriesId, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.<>c__DisplayClass24_0`1.<<TryGetValue>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.Extensions.Caching.Memory.CacheExtensions.GetOrCreateAsync[TItem](IMemoryCache cache, Object key, Func`2 factory)
at Jellyfin.Plugin.Tvdb.Providers.TvdbSeriesProvider.FetchSeriesMetadata(MetadataResult`1 result, String metadataLanguage, Dictionary`2 seriesProviderIds, CancellationToken cancellationToken)
[17:01:50] [ERR] [61] Jellyfin.Plugin.Tvdb.Providers.TvdbSeriesProvider: Failed to retrieve series with id null
TvDbSharper.TvDbServerException: The given series ID does not exist; ID: 0 not found
at TvDbSharper.Infrastructure.Parser.Parse[T](ApiResponse response, IReadOnlyDictionary`2 errorMap)
at TvDbSharper.Clients.SeriesClient.GetAsync(Int32 seriesId, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.<>c__DisplayClass24_0`1.<<TryGetValue>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.Extensions.Caching.Memory.CacheExtensions.GetOrCreateAsync[TItem](IMemoryCache cache, Object key, Func`2 factory)
at Jellyfin.Plugin.Tvdb.Providers.TvdbSeriesProvider.FetchSeriesMetadata(MetadataResult`1 result, String metadataLanguage, Dictionary`2 seriesProviderIds, CancellationToken cancellationToken)
One of those is clearly an IMDB ID. I don't know what EP01216702
is. And it also tried to use an ID of null
. Is there a race condition perhaps where it is occasionally trying to use the wrong ID?
When editing images of an item, you can choose whether you want to see only images of your own language or from all the languages:
That option works perfectly for TMDB, but not for TVDB.
Steps to reproduce
Expected behaviour
"All languages" checkbox should return posters and imagesa in other languages from TVDB.
Additional details
Tested in Jellyfin 10.5.3. Although this is not strictly related, it's very close to #7, as I also noticed that, pre-10.5.0, TVDb metadata provider doesn't fallback to English when no poster is found in Spanish.
The checkbox works perfectly for TMDB, so it seems specific to TVDB
Is there a reason why NormalizationForm.FormKD
is used as opposed to something like NormalizationForm.FormC
?
I'm asking because said normalization form is screwing up korean video titles encoded in utf8 (i.e., it works if I change it FormC
). Are there any languages that depend on it? If so, I'll add a special case for korean, if not I'll add a pull request just changing it to FormC
.
Some episodes fail to fetch metadata, while others from the same show and season fetch them fine. File names are all in similar fashion (S##E##.mkv)
When I setup up my library I didnt use TVDB, now that I installed it I want it to try and rematch 500+ series that should match, would I just move the agent up in the list and run a scan, refresh meta? The only way currently I can see to do this is to "Identify" each file copy the folder name, search, pick the show. Out of 5000 series about 500 have no images and dont look "matched" but jelly has no way like plex for me to identify non matched/identified, so I sorted by release date and the first 500 are all wonky out of order than somewhere in 500+ the "correctly" matched ones look right, so Im hoping the new agent will find these, or do I need to remove the paths from library and do it all over from scratch?
Am getting the following error on start-up. (Unstable with new plugin manager running)
It looks to be caused by TvdbClientManager not getting instantiated first.
Please close if i'm testing on an older version.
Can reproduce if testing needed.
[14:02:12] [ERR] [1] Emby.Server.Implementations.ApplicationHost: Error creating Jellyfin.Plugin.Tvdb.Providers.TvdbEpisodeImageProvider
System.InvalidOperationException: Unable to resolve service for type 'Jellyfin.Plugin.Tvdb.TvdbClientManager' while attempting to activate 'Jellyfin.Plugin.T
at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.ConstructorMatcher.CreateInstance(IServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance(IServiceProvider provider, Type instanceType, Object[] parameters)
at Emby.Server.Implementations.ApplicationHost.CreateInstanceSafe(Type type) in C:\Code\jellyfin\Emby.Server.Implementations\ApplicationHost.cs:line 411
[14:02:12] [ERR] [1] Emby.Server.Implementations.ApplicationHost: Error creating Jellyfin.Plugin.Tvdb.Providers.TvdbPersonImageProvider
System.InvalidOperationException: Unable to resolve service for type 'Jellyfin.Plugin.Tvdb.TvdbClientManager' while attempting to activate 'Jellyfin.Plugin.T
at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.ConstructorMatcher.CreateInstance(IServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance(IServiceProvider provider, Type instanceType, Object[] parameters)
at Emby.Server.Implementations.ApplicationHost.CreateInstanceSafe(Type type) in C:\Code\jellyfin\Emby.Server.Implementations\ApplicationHost.cs:line 411
[14:02:12] [ERR] [1] Emby.Server.Implementations.ApplicationHost: Error creating Jellyfin.Plugin.Tvdb.Providers.TvdbSeasonImageProvider
System.InvalidOperationException: Unable to resolve service for type 'Jellyfin.Plugin.Tvdb.TvdbClientManager' while attempting to activate 'Jellyfin.Plugin.T
at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.ConstructorMatcher.CreateInstance(IServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance(IServiceProvider provider, Type instanceType, Object[] parameters)
at Emby.Server.Implementations.ApplicationHost.CreateInstanceSafe(Type type) in C:\Code\jellyfin\Emby.Server.Implementations\ApplicationHost.cs:line 411
[14:02:12] [ERR] [1] Emby.Server.Implementations.ApplicationHost: Error creating Jellyfin.Plugin.Tvdb.Providers.TvdbSeriesImageProvider
System.InvalidOperationException: Unable to resolve service for type 'Jellyfin.Plugin.Tvdb.TvdbClientManager' while attempting to activate 'Jellyfin.Plugin.T
at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.ConstructorMatcher.CreateInstance(IServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance(IServiceProvider provider, Type instanceType, Object[] parameters)
at Emby.Server.Implementations.ApplicationHost.CreateInstanceSafe(Type type) in C:\Code\jellyfin\Emby.Server.Implementations\ApplicationHost.cs:line 411
[14:02:12] [ERR] [1] Emby.Server.Implementations.ApplicationHost: Error creating Jellyfin.Plugin.Tvdb.Providers.TvdbEpisodeProvider
System.InvalidOperationException: Unable to resolve service for type 'Jellyfin.Plugin.Tvdb.TvdbClientManager' while attempting to activate 'Jellyfin.Plugin.T
at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.ConstructorMatcher.CreateInstance(IServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance(IServiceProvider provider, Type instanceType, Object[] parameters)
at Emby.Server.Implementations.ApplicationHost.CreateInstanceSafe(Type type) in C:\Code\jellyfin\Emby.Server.Implementations\ApplicationHost.cs:line 411
[14:02:12] [ERR] [1] Emby.Server.Implementations.ApplicationHost: Error creating Jellyfin.Plugin.Tvdb.Providers.TvdbSeriesProvider
System.InvalidOperationException: Unable to resolve service for type 'Jellyfin.Plugin.Tvdb.TvdbClientManager' while attempting to activate 'Jellyfin.Plugin.T
at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.ConstructorMatcher.CreateInstance(IServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance(IServiceProvider provider, Type instanceType, Object[] parameters)
at Emby.Server.Implementations.ApplicationHost.CreateInstanceSafe(Type type) in C:\Code\jellyfin\Emby.Server.Implementations\ApplicationHost.cs:line 411
I have tried doing that by using the Season ID of the absolute order but with no success, is there a limitation I am not familiar with?
Tried with https://thetvdb.com/series/one-piece/
Describe the bug
Jellyfin 1.6.4 used to edit the metadata of TV shows but no longer does it in 1.7.0. I started using rc3 and noticed the issue and there was a bug report in github that you could open the metadata sub folders in rc3 and rc4 fixed that but still has the issue where it doesn't edit the metadata of TV shows but movies is fine.
Took a screenshot of episodes set by date they were put into jellyfin, Stargate episodes were during 1.6.4 and Top Gear is from 1.7.0 rc4
https://imgbox.com/u7AhawqF
System (please complete the following information):
To Reproduce
Expected behavior
Edit metadata of the TV Show or episode
Logs
If logs are needed please let me know what to do to get what you need.
Screenshots
https://imgbox.com/u7AhawqF
Additional context
N/A
Jellyfin version 10.8.11
thetvdb plugin 10.0.0
OS: Windows 10
thetvdb plugin doesn't seem to be working at all. I tried to replicate this issue and it's happening everywhere. All my media is tagget before I insert it to Jellyfin (contains ID to tvdb and others, by mediaelk).
I don't know if this is somehow connected to API v4, but nothing working right now in Jellyfin. Everything works corretly when i disable tvdb plugin and use only themoviedb... but it has different numbering scheme so it's not good.
Here are some examples from logs when I tried to add TV Shows:
at Microsoft.Extensions.Caching.Memory.CacheExtensions.GetOrCreateAsync[TItem](IMemoryCache cache, Object key, Func
2 factory)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.GetEpisodeTvdbId(Int32 seriesTvdbId, EpisodeQuery episodeQuery, String language, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.Providers.TvdbEpisodeImageProvider.GetImages(BaseItem item, CancellationToken cancellationToken)
[2023-10-22 21:01:17.746 +02:00] [ERR] [65] Jellyfin.Plugin.Tvdb.Providers.TvdbEpisodeProvider: Failed to retrieve episode with id null, series id null:"NAME OF EPISODE"
TvDbSharper.TvDbServerException: The given series ID does not exist; No results for your query: map[AiredSeason:5 EpisodeNumber:10]
at TvDbSharper.Infrastructure.Parser.Parse[T](ApiResponse response, IReadOnlyDictionary2 errorMap) at TvDbSharper.Clients.SeriesClient.GetEpisodesAsync(Int32 seriesId, Int32 page, EpisodeQuery query, CancellationToken cancellationToken) at Jellyfin.Plugin.Tvdb.TvdbClientManager.<>c__DisplayClass24_0
1.<b__0>d.MoveNext()
at Microsoft.Extensions.Caching.Memory.CacheExtensions.GetOrCreateAsync[TItem](IMemoryCache cache, Object key, Func2 factory) at Jellyfin.Plugin.Tvdb.TvdbClientManager.GetImageKeyTypesForSeriesAsync(Int32 tvdbId, String language, CancellationToken cancellationToken)+MoveNext() at Jellyfin.Plugin.Tvdb.TvdbClientManager.GetImageKeyTypesForSeriesAsync(Int32 tvdbId, String language, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult() at Jellyfin.Plugin.Tvdb.Providers.TvdbSeriesImageProvider.GetImages(BaseItem item, CancellationToken cancellationToken) at Jellyfin.Plugin.Tvdb.Providers.TvdbSeriesImageProvider.GetImages(BaseItem item, CancellationToken cancellationToken) at MediaBrowser.Providers.Manager.ProviderManager.GetImages(BaseItem item, IRemoteImageProvider provider, String preferredLanguage, Boolean includeAllLanguages, CancellationToken cancellationToken, Nullable
1 type)
[ERR] [65] MediaBrowser.Providers.Manager.ProviderManager: "TvdbSeriesImageProvider" failed in GetImageInfos for type "Series" at "F:\IMAGINEPATH\IMAGINE SHOW(YEAR)"
TvDbSharper.TvDbServerException: The given series ID does not exist; Resource not found
at TvDbSharper.Infrastructure.Parser.Parse[T](ApiResponse response, IReadOnlyDictionary2 errorMap) at TvDbSharper.Clients.SeriesClient.GetImagesSummaryAsync(Int32 seriesId, CancellationToken cancellationToken) at Jellyfin.Plugin.Tvdb.TvdbClientManager.<>c__DisplayClass24_0
1.<b__0>d.MoveNext()
`
Hello,
I am getting this WRN in the log
[2023-08-12 16:54:51.068 +02:00] [WRN] [14] Jellyfin.Plugin.Tvdb.Providers.TvdbMissingEpisodeProvider: Unable to get episodes from TVDB
TvDbSharper.TvDbServerException: Invalid credentials; API Key Required
at TvDbSharper.Infrastructure.Parser.Parse[T](ApiResponse response, IReadOnlyDictionary`2 errorMap)
at TvDbSharper.Clients.AuthenticationClient.AuthenticateAsync(AuthenticationData authenticationData, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.GetTvDbClient(String language)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.<>c__DisplayClass24_0`1.<<TryGetValue>b__0>d.MoveNext()
--- End of stack trace from previous location ---
The missing episodes are not working is there a way to fix this issue? I have API from TVDB and I am using it in the plugin
Thank you.
Hi!
While refreshing the metadata I keep getting a bunch of the following errors.
[2022-08-02 20:47:57.445 +02:00] [ERR] Failed to retrieve episode with id null, series id null
TvDbSharper.TvDbServerException: Invalid credentials; API Key Required
at TvDbSharper.Infrastructure.Parser.Parse[T](ApiResponse response, IReadOnlyDictionary`2 errorMap)
at TvDbSharper.Clients.AuthenticationClient.AuthenticateAsync(AuthenticationData authenticationData, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.GetTvDbClient(String language)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.<>c__DisplayClass24_0`1.<<TryGetValue>b__0>d.MoveNext()
--- End of stack trace from previous location ---
Jellyfin 10.8.3, arm64, Debian
TVDB has "role-specific images" for each show (if they where added). This causes the cast and crew for a show to have the wrong images if the role-specific images were downloaded from another show. This especially affects if the cast and crew images were downloaded for an animated show.
some solutions:
1 - if possible, fetch the "Persons" ID from a Series to download the image of the actor, not the image of the actor from the series
2 - the ability to disable TVDB for actor images or prioritize a different fetcher
3 - when TVDB is used make every show have there own actor images instead of the actor images being global
Hello! I try to build a project and got this error
Microsoft (R) Build Engine version 16.8.0+126527ff1 for .NET
Copyright (C) Microsoft Corporation. All rights reserved.
Determining projects to restore...
All projects are up-to-date for restore.
/mnt/e/jellyfin-plugin-tvdb/Jellyfin.Plugin.Tvdb/TvdbPluginServiceRegistrator.cs(9,49): error CS0246: The type or namespace name 'IPluginServiceRegistrator' could not be found (are you missing a using directive or an assembly reference?) [/mnt/e/jellyfin-plugin-tvdb/Jellyfin.Plugin.Tvdb/Jellyfin.Plugin.Tvdb.csproj]
/mnt/e/jellyfin-plugin-tvdb/Jellyfin.Plugin.Tvdb/Providers/TvdbSeriesImageProvider.cs(24,44): error CS0738: 'TvdbSeriesImageProvider' does not implement interface member 'IRemoteImageProvider.GetImageResponse(string, CancellationToken)'. 'TvdbSeriesImageProvider.GetImageResponse(string, CancellationToken)' cannot implement 'IRemoteImageProvider.GetImageResponse(string, CancellationToken)' because it does not have the matching return type of 'Task<HttpResponseInfo>'. [/mnt/e/jellyfin-plugin-tvdb/Jellyfin.Plugin.Tvdb/Jellyfin.Plugin.Tvdb.csproj]
/mnt/e/jellyfin-plugin-tvdb/Jellyfin.Plugin.Tvdb/Providers/TvdbSeasonImageProvider.cs(24,44): error CS0738: 'TvdbSeasonImageProvider' does not implement interface member 'IRemoteImageProvider.GetImageResponse(string, CancellationToken)'. 'TvdbSeasonImageProvider.GetImageResponse(string, CancellationToken)' cannot implement 'IRemoteImageProvider.GetImageResponse(string, CancellationToken)' because it does not have the matching return type of 'Task<HttpResponseInfo>'. [/mnt/e/jellyfin-plugin-tvdb/Jellyfin.Plugin.Tvdb/Jellyfin.Plugin.Tvdb.csproj]
/mnt/e/jellyfin-plugin-tvdb/Jellyfin.Plugin.Tvdb/Providers/TvdbPersonImageProvider.cs(24,44): error CS0738: 'TvdbPersonImageProvider' does not implement interface member 'IRemoteImageProvider.GetImageResponse(string, CancellationToken)'. 'TvdbPersonImageProvider.GetImageResponse(string, CancellationToken)' cannot implement 'IRemoteImageProvider.GetImageResponse(string, CancellationToken)' because it does not have the matching return type of 'Task<HttpResponseInfo>'. [/mnt/e/jellyfin-plugin-tvdb/Jellyfin.Plugin.Tvdb/Jellyfin.Plugin.Tvdb.csproj]
/mnt/e/jellyfin-plugin-tvdb/Jellyfin.Plugin.Tvdb/Providers/TvdbEpisodeImageProvider.cs(20,45): error CS0738: 'TvdbEpisodeImageProvider' does not implement interface member 'IRemoteImageProvider.GetImageResponse(string, CancellationToken)'. 'TvdbEpisodeImageProvider.GetImageResponse(string, CancellationToken)' cannot implement 'IRemoteImageProvider.GetImageResponse(string, CancellationToken)' because it does not have the matching return type of 'Task<HttpResponseInfo>'. [/mnt/e/jellyfin-plugin-tvdb/Jellyfin.Plugin.Tvdb/Jellyfin.Plugin.Tvdb.csproj]
/mnt/e/jellyfin-plugin-tvdb/Jellyfin.Plugin.Tvdb/Providers/TvdbEpisodeProvider.cs(22,40): error CS0738: 'TvdbEpisodeProvider' does not implement interface member 'IRemoteSearchProvider.GetImageResponse(string, CancellationToken)'. 'TvdbEpisodeProvider.GetImageResponse(string, CancellationToken)' cannot implement 'IRemoteSearchProvider.GetImageResponse(string, CancellationToken)' because it does not have the matching return type of 'Task<HttpResponseInfo>'. [/mnt/e/jellyfin-plugin-tvdb/Jellyfin.Plugin.Tvdb/Jellyfin.Plugin.Tvdb.csproj]
/mnt/e/jellyfin-plugin-tvdb/Jellyfin.Plugin.Tvdb/Providers/TvdbSeriesProvider.cs(26,39): error CS0738: 'TvdbSeriesProvider' does not implement interface member 'IRemoteSearchProvider.GetImageResponse(string, CancellationToken)'. 'TvdbSeriesProvider.GetImageResponse(string, CancellationToken)' cannot implement 'IRemoteSearchProvider.GetImageResponse(string, CancellationToken)' because it does not have the matching return type of 'Task<HttpResponseInfo>'. [/mnt/e/jellyfin-plugin-tvdb/Jellyfin.Plugin.Tvdb/Jellyfin.Plugin.Tvdb.csproj]
Could you help me with this?
before found out about issue #16, I was redoing my whole collections. now, after doing manual identify on everything, 1 show (an old obscure anime) still failed to be identified correctly.
even when i manually input tvdb id (79471)
log excerpt:
[2020-12-28 17:29:45.433 +07:00] [INF] [61] Jellyfin.Api.Controllers.ItemLookupController: Setting provider id's to item 1809aa93-019a-ab35-611f-f4335e255c72-"Salaryman Kintaro (1999)": "{\"Tvdb\":
\"79471\"}"
[2020-12-28 17:29:45.642 +07:00] [ERR] [140] Jellyfin.Plugin.Tvdb.Providers.TvdbSeriesProvider: Failed to retrieve actors for series "79471"
TvDbSharper.TvDbServerException: The given series ID does not exist; not found
at TvDbSharper.Infrastructure.Parser.Parse[T](ApiResponse response, IReadOnlyDictionary`2 errorMap)
at TvDbSharper.Clients.SeriesClient.GetActorsAsync(Int32 seriesId, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.<>c__DisplayClass24_0`1.<<TryGetValue>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.Extensions.Caching.Memory.CacheExtensions.GetOrCreateAsync[TItem](IMemoryCache cache, Object key, Func`2 factory)
at Jellyfin.Plugin.Tvdb.Providers.TvdbSeriesProvider.FetchSeriesMetadata(MetadataResult`1 result, String metadataLanguage, Dictionary`2 seriesProviderIds, CancellationToken cancellationToken)
[2020-12-28 17:29:46.877 +07:00] [ERR] [219] Jellyfin.Plugin.Tvdb.Providers.TvdbEpisodeProvider: Failed to retrieve episode with id null, series id "131011"
TvDbSharper.TvDbServerException: The given series ID does not exist; No results for your query: map[AiredSeason:1 EpisodeNumber:12]
at TvDbSharper.Infrastructure.Parser.Parse[T](ApiResponse response, IReadOnlyDictionary`2 errorMap)
at TvDbSharper.Clients.SeriesClient.GetEpisodesAsync(Int32 seriesId, Int32 page, EpisodeQuery query, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.<>c__DisplayClass24_0`1.<<TryGetValue>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.Extensions.Caching.Memory.CacheExtensions.GetOrCreateAsync[TItem](IMemoryCache cache, Object key, Func`2 factory)
at Jellyfin.Plugin.Tvdb.TvdbClientManager.GetEpisodeTvdbId(Int32 seriesTvdbId, EpisodeQuery episodeQuery, String language, CancellationToken cancellationToken)
at Jellyfin.Plugin.Tvdb.Providers.TvdbEpisodeProvider.GetEpisode(EpisodeInfo searchInfo, CancellationToken cancellationToken)
On first line, it shows the correct id (79471) but not the correct title.
On third line, it switches to wrong id (131011).
last result: jellyfin uses 131011 metadata instead.
Jellyfin v10.7.0RC1
Plugin: 1.0.0.0
Hey everyone.
I'm trying to setup Fairy Tail in absolute order as described here. The serie order in the metadata is set to absolute. I got 4 episodes to test and here are the path:
In the aired order, 001 et 048 are part of the season 1, and 49 and 50 of season 2.
Now Jellyfin detects a season 1, the first two episodes are working but the other two are bundled in the season 1 as files.
I'm guessing this is due to the TV library not having TVDB as a season metadata fetcher, and only TMDB.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.