VOD references not updated correctly after updating Xtream credentials #190

Open
opened 2025-07-18 09:48:35 +00:00 by gioelecrispo · 1 comment
gioelecrispo commented 2025-07-18 09:48:35 +00:00 (Migrated from github.com)

Describe the bug
VOD references are not updated correctly after updating Xtream credentials.
My IPTV provider changed the base url and the credentials and some videos keep the old reference and they cannot be reproduced (check the screenshots).
Some others have the new one and they can be reproduced without any issue (check the screenshots).

New url: http://r_XXXXXX_1.ddns.net/...
Ord url: http://i_XXXXXX_g.ddns.net/...

To Reproduce
Steps to reproduce the behavior:

  1. Go to "Xtream Movies"
  2. Click on a video and see it will not start
  3. Checking the logs, we can see the ffmpeg using the old url

Expected behavior
It should use the new url and reproduce without any issue.

Screenshots

Image
Image
Image
Image

Software stack
Plugin version: 0.7.1
Server version: 10.10.6

Tested clients:

  • Web browser version: 10.10.6
  • Official Android TV app version: 0.18.11
  • Official Android app version: 2.6.3

Additional context
Jellyfin 10.10.6 is running on Docker.
I have deleted the cache, no effect.

I can only check the path from the Android App, but the error is happening on any client (logs confirm it).

Logs

[2025-07-18 11:37:00.715 +02:00] [INF] [47] Jellyfin.Server.Implementations.Users.UserManager: Authentication request for "sergio" has succeeded.
[2025-07-18 11:37:00.715 +02:00] [INF] [47] Emby.Server.Implementations.Session.SessionManager: Current/Max sessions for user "sergio": 0/0
[2025-07-18 11:37:00.715 +02:00] [INF] [47] Emby.Server.Implementations.Session.SessionManager: Creating new access token for user 0ab48ec3-7f8d-4b0e-8337-15b2b16e7fcf
[2025-07-18 11:37:00.749 +02:00] [INF] [27] Emby.Server.Implementations.HttpServer.WebSocketManager: WS "::ffff:172.18.0.20" request
[2025-07-18 11:37:09.355 +02:00] [INF] [43] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "sergio". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: False
[2025-07-18 11:37:09.355 +02:00] [INF] [43] Jellyfin.Api.Helpers.MediaInfoHelper: RemoteClientBitrateLimit: 20000000, RemoteIP: "172.18.0.20", IsInLocalNetwork: True
[2025-07-18 11:37:09.712 +02:00] [ERR] [53] Jellyfin.MediaEncoding.Hls.Extractors.MatroskaKeyframeExtractor: Extracting keyframes from "http://i_XXXXXX_g.ddns.net/movie/YYYYYY/ZZZZZZ/3148.mkv" using matroska metadata failed
System.IO.DirectoryNotFoundException: Could not find a part of the path '/http:/i_XXXXXX_g.ddns.net/movie/YYYYYY/ZZZZZZ/3148.mkv'.
   at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirError)
   at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, UnixFileMode openPermissions, Int64& fileLength, UnixFileMode& filePermissions, Boolean failForSymlink, Boolean& wasSymlink, Func`4 createOpenException)
   at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
   at System.IO.File.OpenRead(String path)
   at Jellyfin.MediaEncoding.Keyframes.Matroska.MatroskaKeyframeExtractor.GetKeyframeData(String filePath)
   at Jellyfin.MediaEncoding.Hls.Extractors.MatroskaKeyframeExtractor.TryExtractKeyframes(String filePath, KeyframeData& keyframeData)
[2025-07-18 11:37:09.745 +02:00] [INF] [34] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[2025-07-18 11:37:09.745 +02:00] [INF] [34] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G -fflags +genpts -f matroska  -i \"http://i_XXXXXX_g.ddns.net/movie/YYYYYY/ZZZZZZ/3148.mkv\" -map_metadata -1 -map_chapters -1 -threads 0 -sn -codec:v:0 copy -start_at_zero -codec:a:0 copy -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 6 -hls_segment_type fmp4 -hls_fmp4_init_filename \"bad34873242d9169e5f4c1e0c29b08fc-1.mp4\" -start_number 0 -hls_segment_filename \"/cache/transcodes/bad34873242d9169e5f4c1e0c29b08fc%d.mp4\" -hls_playlist_type vod -hls_list_size 0 -y \"/cache/transcodes/bad34873242d9169e5f4c1e0c29b08fc.m3u8\""
[2025-07-18 11:37:10.117 +02:00] [ERR] [53] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 8
[2025-07-18 11:37:10.174 +02:00] [ERR] [53] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL "GET" "/videos/0f172a88-e2a2-7de6-75e9-4586e69cb8f0/hls1/main/-1.mp4".
MediaBrowser.Common.FfmpegException: FFmpeg exited with code 8
   at MediaBrowser.MediaEncoding.Transcoding.TranscodeManager.StartFfMpeg(StreamState state, String outputPath, String commandLineArguments, Guid userId, TranscodingJobType transcodingJobType, CancellationTokenSource cancellationTokenSource, String workingDirectory)
   at Jellyfin.Api.Controllers.DynamicHlsController.GetDynamicSegment(StreamingRequestDto streamingRequest, Int32 segmentId)
   at Jellyfin.Api.Controllers.DynamicHlsController.GetHlsVideoSegment(Guid itemId, String playlistId, Int32 segmentId, String container, Int64 runtimeTicks, Int64 actualSegmentLengthTicks, Nullable`1 static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Nullable`1 segmentLength, Nullable`1 minSegments, String mediaSourceId, String deviceId, String audioCodec, Nullable`1 enableAutoStreamCopy, Nullable`1 allowVideoStreamCopy, Nullable`1 allowAudioStreamCopy, Nullable`1 breakOnNonKeyFrames, Nullable`1 audioSampleRate, Nullable`1 maxAudioBitDepth, Nullable`1 audioBitRate, Nullable`1 audioChannels, Nullable`1 maxAudioChannels, String profile, String level, Nullable`1 framerate, Nullable`1 maxFramerate, Nullable`1 copyTimestamps, Nullable`1 startTimeTicks, Nullable`1 width, Nullable`1 height, Nullable`1 maxWidth, Nullable`1 maxHeight, Nullable`1 videoBitRate, Nullable`1 subtitleStreamIndex, Nullable`1 subtitleMethod, Nullable`1 maxRefFrames, Nullable`1 maxVideoBitDepth, Nullable`1 requireAvc, Nullable`1 deInterlace, Nullable`1 requireNonAnamorphic, Nullable`1 transcodingMaxAudioChannels, Nullable`1 cpuCoreLimit, String liveStreamId, Nullable`1 enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Nullable`1 audioStreamIndex, Nullable`1 videoStreamIndex, Nullable`1 context, Dictionary`2 streamOptions, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding)
   at lambda_method2672(Closure, Object)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfActionResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Jellyfin.Api.Middleware.ServerStartupMessageMiddleware.Invoke(HttpContext httpContext, IServerApplicationHost serverApplicationHost, ILocalizationManager localizationManager)
   at Jellyfin.Api.Middleware.WebSocketHandlerMiddleware.Invoke(HttpContext httpContext, IWebSocketManager webSocketManager)
   at Jellyfin.Api.Middleware.IPBasedAccessValidationMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager)
   at Jellyfin.Api.Middleware.LanFilteringMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager, IServerConfigurationManager serverConfigurationManager)
   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
   at Jellyfin.Api.Middleware.QueryStringDecodingMiddleware.Invoke(HttpContext httpContext)
   at Swashbuckle.AspNetCore.ReDoc.ReDocMiddleware.Invoke(HttpContext httpContext)
   at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
   at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
   at Jellyfin.Api.Middleware.RobotsRedirectionMiddleware.Invoke(HttpContext httpContext)
   at Jellyfin.Api.Middleware.LegacyEmbyRouteRewriteMiddleware.Invoke(HttpContext httpContext)
   at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
   at Jellyfin.Api.Middleware.ResponseTimeMiddleware.Invoke(HttpContext context, IServerConfigurationManager serverConfigurationManager)
   at Jellyfin.Api.Middleware.ExceptionMiddleware.Invoke(HttpContext context)
[2025-07-18 11:37:10.303 +02:00] [INF] [39] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: Deleting partial stream file(s) "/cache/transcodes/bad34873242d9169e5f4c1e0c29b08fc.m3u8"
[2025-07-18 11:37:11.804 +02:00] [INF] [43] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app "Jellyfin Web" "10.10.6" playing "Effetti indesiderati". Stopped at "0" ms
[2025-07-18 11:37:15.435 +02:00] [INF] [43] Emby.Server.Implementations.HttpServer.WebSocketManager: WS "::ffff:172.18.0.20" closed
**Describe the bug** VOD references are not updated correctly after updating Xtream credentials. My IPTV provider changed the base url and the credentials and some videos keep the old reference and they cannot be reproduced (check the screenshots). Some others have the new one and they can be reproduced without any issue (check the screenshots). New url: `http://r_XXXXXX_1.ddns.net/...` Ord url: `http://i_XXXXXX_g.ddns.net/...` **To Reproduce** Steps to reproduce the behavior: 1. Go to "Xtream Movies" 2. Click on a video and see it will not start 3. Checking the logs, we can see the ffmpeg using the old url **Expected behavior** It should use the new url and reproduce without any issue. **Screenshots** ![Image](https://github.com/user-attachments/assets/9d4c74ef-5ccb-4b2f-b4d6-8a5efdb037d9) ![Image](https://github.com/user-attachments/assets/c7021031-e201-4588-a133-6634124255d3) ![Image](https://github.com/user-attachments/assets/ffdf9592-aa90-4dd7-a1f3-b3f46a342b7e) <img width="1701" height="889" alt="Image" src="https://github.com/user-attachments/assets/ed5ea324-7a69-4aa9-bf51-6072cf19a0af" /> **Software stack** Plugin version: 0.7.1 Server version: 10.10.6 Tested clients: - [x] Web browser version: 10.10.6 - [x] Official Android TV app version: 0.18.11 - [x] Official Android app version: 2.6.3 **Additional context** Jellyfin 10.10.6 is running on Docker. I have deleted the cache, no effect. I can only check the path from the Android App, but the error is happening on any client (logs confirm it). ## Logs ``` [2025-07-18 11:37:00.715 +02:00] [INF] [47] Jellyfin.Server.Implementations.Users.UserManager: Authentication request for "sergio" has succeeded. [2025-07-18 11:37:00.715 +02:00] [INF] [47] Emby.Server.Implementations.Session.SessionManager: Current/Max sessions for user "sergio": 0/0 [2025-07-18 11:37:00.715 +02:00] [INF] [47] Emby.Server.Implementations.Session.SessionManager: Creating new access token for user 0ab48ec3-7f8d-4b0e-8337-15b2b16e7fcf [2025-07-18 11:37:00.749 +02:00] [INF] [27] Emby.Server.Implementations.HttpServer.WebSocketManager: WS "::ffff:172.18.0.20" request [2025-07-18 11:37:09.355 +02:00] [INF] [43] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "sergio". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: False [2025-07-18 11:37:09.355 +02:00] [INF] [43] Jellyfin.Api.Helpers.MediaInfoHelper: RemoteClientBitrateLimit: 20000000, RemoteIP: "172.18.0.20", IsInLocalNetwork: True [2025-07-18 11:37:09.712 +02:00] [ERR] [53] Jellyfin.MediaEncoding.Hls.Extractors.MatroskaKeyframeExtractor: Extracting keyframes from "http://i_XXXXXX_g.ddns.net/movie/YYYYYY/ZZZZZZ/3148.mkv" using matroska metadata failed System.IO.DirectoryNotFoundException: Could not find a part of the path '/http:/i_XXXXXX_g.ddns.net/movie/YYYYYY/ZZZZZZ/3148.mkv'. at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirError) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, UnixFileMode openPermissions, Int64& fileLength, UnixFileMode& filePermissions, Boolean failForSymlink, Boolean& wasSymlink, Func`4 createOpenException) at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode) at System.IO.File.OpenRead(String path) at Jellyfin.MediaEncoding.Keyframes.Matroska.MatroskaKeyframeExtractor.GetKeyframeData(String filePath) at Jellyfin.MediaEncoding.Hls.Extractors.MatroskaKeyframeExtractor.TryExtractKeyframes(String filePath, KeyframeData& keyframeData) [2025-07-18 11:37:09.745 +02:00] [INF] [34] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request [2025-07-18 11:37:09.745 +02:00] [INF] [34] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G -fflags +genpts -f matroska -i \"http://i_XXXXXX_g.ddns.net/movie/YYYYYY/ZZZZZZ/3148.mkv\" -map_metadata -1 -map_chapters -1 -threads 0 -sn -codec:v:0 copy -start_at_zero -codec:a:0 copy -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 6 -hls_segment_type fmp4 -hls_fmp4_init_filename \"bad34873242d9169e5f4c1e0c29b08fc-1.mp4\" -start_number 0 -hls_segment_filename \"/cache/transcodes/bad34873242d9169e5f4c1e0c29b08fc%d.mp4\" -hls_playlist_type vod -hls_list_size 0 -y \"/cache/transcodes/bad34873242d9169e5f4c1e0c29b08fc.m3u8\"" [2025-07-18 11:37:10.117 +02:00] [ERR] [53] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 8 [2025-07-18 11:37:10.174 +02:00] [ERR] [53] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL "GET" "/videos/0f172a88-e2a2-7de6-75e9-4586e69cb8f0/hls1/main/-1.mp4". MediaBrowser.Common.FfmpegException: FFmpeg exited with code 8 at MediaBrowser.MediaEncoding.Transcoding.TranscodeManager.StartFfMpeg(StreamState state, String outputPath, String commandLineArguments, Guid userId, TranscodingJobType transcodingJobType, CancellationTokenSource cancellationTokenSource, String workingDirectory) at Jellyfin.Api.Controllers.DynamicHlsController.GetDynamicSegment(StreamingRequestDto streamingRequest, Int32 segmentId) at Jellyfin.Api.Controllers.DynamicHlsController.GetHlsVideoSegment(Guid itemId, String playlistId, Int32 segmentId, String container, Int64 runtimeTicks, Int64 actualSegmentLengthTicks, Nullable`1 static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Nullable`1 segmentLength, Nullable`1 minSegments, String mediaSourceId, String deviceId, String audioCodec, Nullable`1 enableAutoStreamCopy, Nullable`1 allowVideoStreamCopy, Nullable`1 allowAudioStreamCopy, Nullable`1 breakOnNonKeyFrames, Nullable`1 audioSampleRate, Nullable`1 maxAudioBitDepth, Nullable`1 audioBitRate, Nullable`1 audioChannels, Nullable`1 maxAudioChannels, String profile, String level, Nullable`1 framerate, Nullable`1 maxFramerate, Nullable`1 copyTimestamps, Nullable`1 startTimeTicks, Nullable`1 width, Nullable`1 height, Nullable`1 maxWidth, Nullable`1 maxHeight, Nullable`1 videoBitRate, Nullable`1 subtitleStreamIndex, Nullable`1 subtitleMethod, Nullable`1 maxRefFrames, Nullable`1 maxVideoBitDepth, Nullable`1 requireAvc, Nullable`1 deInterlace, Nullable`1 requireNonAnamorphic, Nullable`1 transcodingMaxAudioChannels, Nullable`1 cpuCoreLimit, String liveStreamId, Nullable`1 enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Nullable`1 audioStreamIndex, Nullable`1 videoStreamIndex, Nullable`1 context, Dictionary`2 streamOptions, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding) at lambda_method2672(Closure, Object) at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfActionResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope) at Jellyfin.Api.Middleware.ServerStartupMessageMiddleware.Invoke(HttpContext httpContext, IServerApplicationHost serverApplicationHost, ILocalizationManager localizationManager) at Jellyfin.Api.Middleware.WebSocketHandlerMiddleware.Invoke(HttpContext httpContext, IWebSocketManager webSocketManager) at Jellyfin.Api.Middleware.IPBasedAccessValidationMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager) at Jellyfin.Api.Middleware.LanFilteringMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager, IServerConfigurationManager serverConfigurationManager) at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) at Jellyfin.Api.Middleware.QueryStringDecodingMiddleware.Invoke(HttpContext httpContext) at Swashbuckle.AspNetCore.ReDoc.ReDocMiddleware.Invoke(HttpContext httpContext) at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext) at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider) at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) at Jellyfin.Api.Middleware.RobotsRedirectionMiddleware.Invoke(HttpContext httpContext) at Jellyfin.Api.Middleware.LegacyEmbyRouteRewriteMiddleware.Invoke(HttpContext httpContext) at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context) at Jellyfin.Api.Middleware.ResponseTimeMiddleware.Invoke(HttpContext context, IServerConfigurationManager serverConfigurationManager) at Jellyfin.Api.Middleware.ExceptionMiddleware.Invoke(HttpContext context) [2025-07-18 11:37:10.303 +02:00] [INF] [39] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: Deleting partial stream file(s) "/cache/transcodes/bad34873242d9169e5f4c1e0c29b08fc.m3u8" [2025-07-18 11:37:11.804 +02:00] [INF] [43] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app "Jellyfin Web" "10.10.6" playing "Effetti indesiderati". Stopped at "0" ms [2025-07-18 11:37:15.435 +02:00] [INF] [43] Emby.Server.Implementations.HttpServer.WebSocketManager: WS "::ffff:172.18.0.20" closed ```
gioelecrispo commented 2025-07-22 06:40:34 +00:00 (Migrated from github.com)

The issue could be related to this reason: IPTV provider is slow and HTTP Client is failing due to timeout. Any suggestion on how to increase timeout?

Maybe this can solve the issue (I see same behaviour with other IPTV app, very slow, and after a couple of mins it can fetch the whole playlist).

Jellyfin Logs:

[2025-07-22 08:34:13.334 +02:00] [ERR] [63] Jellyfin.Xtream.VodChannel: Failed to get channel items
System.Threading.Tasks.TaskCanceledException: The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing.
 ---> System.TimeoutException: A task was canceled.
 ---> System.Threading.Tasks.TaskCanceledException: A task was canceled.
   at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.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.GetStringAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---
   at System.Net.Http.HttpClient.HandleFailure(Exception e, Boolean telemetryStarted, HttpResponseMessage response, CancellationTokenSource cts, CancellationToken cancellationToken, CancellationTokenSource pendingRequestsCts)
   at System.Net.Http.HttpClient.GetStringAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)
   at Jellyfin.Xtream.Client.XtreamClient.QueryApi[T](ConnectionInfo connectionInfo, String urlPath, CancellationToken cancellationToken)
   at Jellyfin.Xtream.Service.StreamService.GetVodCategories(CancellationToken cancellationToken)
   at Jellyfin.Xtream.VodChannel.GetCategories(CancellationToken cancellationToken)
   at Jellyfin.Xtream.VodChannel.GetChannelItems(InternalChannelItemQuery query, CancellationToken cancellationToken)
   at Jellyfin.LiveTv.Channels.ChannelManager.GetChannelItems(IChannel channel, User user, String externalFolderId, Nullable`1 sortField, Boolean sortDescending, CancellationToken cancellationToken)
   at Jellyfin.LiveTv.Channels.ChannelManager.GetChannelItemsInternal(InternalItemsQuery query, IProgress`1 progress, CancellationToken cancellationToken)
The issue could be related to this reason: IPTV provider is slow and HTTP Client is failing due to timeout. Any suggestion on how to increase timeout? Maybe this can solve the issue (I see same behaviour with other IPTV app, very slow, and after a couple of mins it can fetch the whole playlist). Jellyfin Logs: ```txt [2025-07-22 08:34:13.334 +02:00] [ERR] [63] Jellyfin.Xtream.VodChannel: Failed to get channel items System.Threading.Tasks.TaskCanceledException: The request was canceled due to the configured HttpClient.Timeout of 100 seconds elapsing. ---> System.TimeoutException: A task was canceled. ---> System.Threading.Tasks.TaskCanceledException: A task was canceled. at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.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.GetStringAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken) --- End of inner exception stack trace --- --- End of inner exception stack trace --- at System.Net.Http.HttpClient.HandleFailure(Exception e, Boolean telemetryStarted, HttpResponseMessage response, CancellationTokenSource cts, CancellationToken cancellationToken, CancellationTokenSource pendingRequestsCts) at System.Net.Http.HttpClient.GetStringAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken) at Jellyfin.Xtream.Client.XtreamClient.QueryApi[T](ConnectionInfo connectionInfo, String urlPath, CancellationToken cancellationToken) at Jellyfin.Xtream.Service.StreamService.GetVodCategories(CancellationToken cancellationToken) at Jellyfin.Xtream.VodChannel.GetCategories(CancellationToken cancellationToken) at Jellyfin.Xtream.VodChannel.GetChannelItems(InternalChannelItemQuery query, CancellationToken cancellationToken) at Jellyfin.LiveTv.Channels.ChannelManager.GetChannelItems(IChannel channel, User user, String externalFolderId, Nullable`1 sortField, Boolean sortDescending, CancellationToken cancellationToken) at Jellyfin.LiveTv.Channels.ChannelManager.GetChannelItemsInternal(InternalItemsQuery query, IProgress`1 progress, CancellationToken cancellationToken) ```
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Sirherobrine23/Jellyfin_Xtream#190
No description provided.