cxfksword / jellyfin-plugin-metashark

jellyfin电影元数据插件
GNU General Public License v3.0
1.34k stars 71 forks source link

网络连接通畅,但从tmdb刮削特别慢,有连接失败日志 #93

Open retaw opened 6 days ago

retaw commented 6 days ago

描述错误

对剧集。 豆瓣中只要存在对应的条目,具体每一集的数据从tmdb拉取就很正常。 但如果豆瓣中不存在对应条目, 那么从tmdb获取数据就非常慢。 最后单集的标题,简介,播放图这些都会成功,但过程非常缓慢。日志中,每一集都有一条api.tmdb.org:443连接失败的报错,应该是每一集获取数据时都发生了一次超时等待,导致最终的缓慢。

屏幕截图

日志 以死亡笔记为例:

[2024-10-13 14:58:53.441 +08:00] [WRN] [39] Jellyfin.Plugin.MetaShark.Api.DoubanApi: douban搜索请求失败. keyword: "死亡笔记" statusCode: Forbidden [2024-10-13 14:59:13.551 +08:00] [INF] [39] Jellyfin.Api.Controllers.ItemLookupController: Setting provider id's to item cb40665f-f741-aa63-d6e1-25e2613f5049-"Death Note": [("Tmdb": "13916"), ("MetaSharkID": "Tmdb_13916")] [2024-10-13 14:59:13.557 +08:00] [INF] [39] Jellyfin.Plugin.MetaShark.Providers.SeriesProvider: [MetaShark] GetSeriesMetadata of [name]: [TMDB]死亡笔记 [fileName]: Death.Note metaSource: Tmdb EnableTmdb: True

[2024-10-13 14:59:14.397 +08:00] [INF] [40] Jellyfin.Plugin.MetaShark.Providers.SeriesImageProvider: [MetaShark] GetImageResponse url: "http://image.tmdb.org/t/p/original/mQABf5KFAMD0hLOdpFrthy00BCh.jpg" [2024-10-13 14:59:15.871 +08:00] [INF] [36] Jellyfin.Plugin.MetaShark.Providers.SeriesImageProvider: [MetaShark] GetImageResponse url: "http://image.tmdb.org/t/p/original/yPCXueVCN0eTh1EpLLMWnh8hivK.png" [2024-10-13 14:59:16.097 +08:00] [INF] [39] Jellyfin.Plugin.MetaShark.Providers.SeriesImageProvider: [MetaShark] GetImageResponse url: "http://image.tmdb.org/t/p/original/mOlEbXcb6ufRJKogI35KqsSlCfB.jpg" [2024-10-13 14:59:20.572 +08:00] [INF] [36] Jellyfin.Plugin.MetaShark.Providers.SeriesProvider: [MetaShark] GetSeriesMetadata of [name]: [TMDB]死亡笔记 [fileName]: Death.Note metaSource: Tmdb EnableTmdb: True

[2024-10-13 14:59:20.576 +08:00] [INF] [36] Jellyfin.Plugin.MetaShark.Providers.SeriesImageProvider: [MetaShark] GetImageResponse url: "http://image.tmdb.org/t/p/original/mQABf5KFAMD0hLOdpFrthy00BCh.jpg" [2024-10-13 14:59:20.971 +08:00] [INF] [40] Jellyfin.Plugin.MetaShark.Providers.SeriesImageProvider: [MetaShark] GetImageResponse url: "http://image.tmdb.org/t/p/original/yPCXueVCN0eTh1EpLLMWnh8hivK.png" [2024-10-13 14:59:21.180 +08:00] [INF] [40] Jellyfin.Plugin.MetaShark.Providers.SeriesImageProvider: [MetaShark] GetImageResponse url: "http://image.tmdb.org/t/p/original/mOlEbXcb6ufRJKogI35KqsSlCfB.jpg" [2024-10-13 14:59:21.493 +08:00] [INF] [39] Jellyfin.Plugin.MetaShark.Providers.SeasonProvider: [MetaShark] GetSeasonMetaData of [name]: 第 1 季 [fileName]: s01 number: 1 seriesTmdbId: 13916 sid: metaSource: Tmdb EnableTmdb: True [2024-10-13 14:59:21.728 +08:00] [INF] [36] Jellyfin.Plugin.MetaShark.Providers.SeasonImageProvider: [MetaShark] GetSeasonImages for item: 全 1 季 number: 1 [2024-10-13 14:59:21.941 +08:00] [INF] [40] Jellyfin.Plugin.MetaShark.Providers.SeasonImageProvider: [MetaShark] GetImageResponse url: "http://image.tmdb.org/t/p/original/ffx22PJ1tw73uXZLr6iDEzwfI57.jpg" [2024-10-13 14:59:22.253 +08:00] [INF] [40] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting "ffprobe" with args "-analyzeduration 200M -probesize 1G -i file:\"G:\cartoon.library\Death.Note\s01\Death.Note.episode01.BDrip.1080p.x265.10bit.acc.chs&cht.fx.mkv\" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format" [2024-10-13 14:59:22.335 +08:00] [INF] [40] Jellyfin.Plugin.MetaShark.Providers.EpisodeProvider: [MetaShark] GetEpisodeMetadata of [name]: Death Note [fileName]: Death.Note.episode01.BDrip.1080p.x265.10bit.acc.chs&cht.fx.mkv number: 1 ParentIndexNumber: 1 EnableTmdb: True [2024-10-13 14:59:22.341 +08:00] [INF] [40] Jellyfin.Plugin.MetaShark.Providers.EpisodeImageProvider: [MetaShark] GetEpisodeImages of [name]: 新生 number: 1 ParentIndexNumber: 1 [2024-10-13 14:59:22.343 +08:00] [INF] [40] Jellyfin.Plugin.MetaShark.Providers.EpisodeImageProvider: [MetaShark] GetImageResponse url: "http://image.tmdb.org/t/p/original/3DBzrTd2ZUleqKlGOBfMklDySRH.jpg" [2024-10-13 14:59:43.619 +08:00] [ERR] [40] MediaBrowser.Providers.Manager.ProviderManager: "TmdbEpisodeImageProvider" failed in GetImageInfos for type "Episode" at "G:\cartoon.library\Death.Note\s01\Death.Note.episode01.BDrip.1080p.x265.10bit.acc.chs&cht.fx.mkv" System.Net.Http.HttpRequestException: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 (api.themoviedb.org:443) ---> System.Net.Sockets.SocketException (10060): 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken) at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token) at System.Net.Sockets.Socket.gWaitForConnectWithCancellation|285_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken) --- End of inner exception stack trace --- at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.AddHttp11ConnectionAsync(QueueItem queueItem) at System.Threading.Tasks.TaskCompletionSourceWithCancellation1.WaitWithCancellationAsync(CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken) at System.Net.Http.DiagnosticsHandler.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken) at TMDbLib.Rest.RestRequest.SendInternal(HttpMethod method, CancellationToken cancellationToken) at TMDbLib.Rest.RestRequest.Get[T](CancellationToken cancellationToken) at TMDbLib.Rest.RestRequestExtensions.GetOfT[T](RestRequest request, CancellationToken cancellationToken) at TMDbLib.Client.TMDbClient.GetConfigAsync() at MediaBrowser.Providers.Plugins.Tmdb.TmdbClientManager.EnsureClientConfigAsync() at MediaBrowser.Providers.Plugins.Tmdb.TmdbClientManager.GetEpisodeAsync(Int32 tvShowId, Int32 seasonNumber, Int32 episodeNumber, String displayOrder, String language, String imageLanguages, CancellationToken cancellationToken) at MediaBrowser.Providers.Plugins.Tmdb.TV.TmdbEpisodeImageProvider.GetImages(BaseItem item, CancellationToken cancellationToken) at MediaBrowser.Providers.Manager.ProviderManager.GetImages(BaseItem item, IRemoteImageProvider provider, String preferredLanguage, Boolean includeAllLanguages, CancellationToken cancellationToken, Nullable1 type) [2024-10-13 14:59:43.720 +08:00] [INF] [40] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting "ffprobe" with args "-analyzeduration 200M -probesize 1G -i file:\"G:\cartoon.library\Death.Note\s01\Death.Note.episode02.BDrip.1080p.x265.10bit.acc.chs&cht.fx.mkv\" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format" [2024-10-13 14:59:43.924 +08:00] [INF] [78] Jellyfin.Plugin.MetaShark.Providers.EpisodeProvider: [MetaShark] GetEpisodeMetadata of [name]: Death Note [fileName]: Death.Note.episode02.BDrip.1080p.x265.10bit.acc.chs&cht.fx.mkv number: 2 ParentIndexNumber: 1 EnableTmdb: True [2024-10-13 14:59:43.929 +08:00] [INF] [78] Jellyfin.Plugin.MetaShark.Providers.EpisodeImageProvider: [MetaShark] GetEpisodeImages of [name]: 对决 number: 2 ParentIndexNumber: 1 [2024-10-13 14:59:43.930 +08:00] [INF] [78] Jellyfin.Plugin.MetaShark.Providers.EpisodeImageProvider: [MetaShark] GetImageResponse url: "http://image.tmdb.org/t/p/original/63fCP6HZf5EbP6muq2mcYh6Lvc8.jpg" [2024-10-13 15:00:05.166 +08:00] [ERR] [78] MediaBrowser.Providers.Manager.ProviderManager: "TmdbEpisodeImageProvider" failed in GetImageInfos for type "Episode" at "G:\cartoon.library\Death.Note\s01\Death.Note.episode02.BDrip.1080p.x265.10bit.acc.chs&cht.fx.mkv" System.Net.Http.HttpRequestException: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 (api.themoviedb.org:443) ---> System.Net.Sockets.SocketException (10060): 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken) at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token) at System.Net.Sockets.Socket.gWaitForConnectWithCancellation|285_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken) --- End of inner exception stack trace --- at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.AddHttp11ConnectionAsync(QueueItem queueItem) at System.Threading.Tasks.TaskCompletionSourceWithCancellation1.WaitWithCancellationAsync(CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken) at System.Net.Http.DiagnosticsHandler.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken) at TMDbLib.Rest.RestRequest.SendInternal(HttpMethod method, CancellationToken cancellationToken) at TMDbLib.Rest.RestRequest.Get[T](CancellationToken cancellationToken) at TMDbLib.Rest.RestRequestExtensions.GetOfT[T](RestRequest request, CancellationToken cancellationToken) at TMDbLib.Client.TMDbClient.GetConfigAsync() at MediaBrowser.Providers.Plugins.Tmdb.TmdbClientManager.EnsureClientConfigAsync() at MediaBrowser.Providers.Plugins.Tmdb.TmdbClientManager.GetEpisodeAsync(Int32 tvShowId, Int32 seasonNumber, Int32 episodeNumber, String displayOrder, String language, String imageLanguages, CancellationToken cancellationToken) at MediaBrowser.Providers.Plugins.Tmdb.TV.TmdbEpisodeImageProvider.GetImages(BaseItem item, CancellationToken cancellationToken) at MediaBrowser.Providers.Manager.ProviderManager.GetImages(BaseItem item, IRemoteImageProvider provider, String preferredLanguage, Boolean includeAllLanguages, CancellationToken cancellationToken, Nullable1 type) [2024-10-13 15:00:05.232 +08:00] [INF] [78] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting "ffprobe" with args "-analyzeduration 200M -probesize 1G -i file:\"G:\cartoon.library\Death.Note\s01\Death.Note.episode03.BDrip.1080p.x265.10bit.acc.chs&cht.fx.mkv\" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format" [2024-10-13 15:00:05.310 +08:00] [INF] [40] Jellyfin.Plugin.MetaShark.Providers.EpisodeProvider: [MetaShark] GetEpisodeMetadata of [name]: Death Note [fileName]: Death.Note.episode03.BDrip.1080p.x265.10bit.acc.chs&cht.fx.mkv number: 3 ParentIndexNumber: 1 EnableTmdb: True [2024-10-13 15:00:05.315 +08:00] [INF] [40] Jellyfin.Plugin.MetaShark.Providers.EpisodeImageProvider: [MetaShark] GetEpisodeImages of [name]: 交易 number: 3 ParentIndexNumber: 1 [2024-10-13 15:00:05.315 +08:00] [INF] [40] Jellyfin.Plugin.MetaShark.Providers.EpisodeImageProvider: [MetaShark] GetImageResponse url: "http://image.tmdb.org/t/p/original/Su069fxRnOnuzoOnKsGwlLqPQG.jpg" 运行环境(请填写以下信息):

retaw commented 6 days ago

补充:测试过从https://api.tmdb.org:443 和 https://api.themovie.org:443 获取数据,速度都很快,结果正常。

cxfksword commented 5 days ago

你这是官方themoviedb插件超时了,可以关掉看下

retaw commented 4 days ago

你这是官方themoviedb插件超时了,可以关掉看下

感谢回复。 研究了一下,确实是官方插件的报错。 顺便谢谢您的开发,试了一堆,您的插件最好用