jellyfin / jellyfin-plugin-nextpvr

https://jellyfin.org
MIT License
25 stars 10 forks source link

Unable to stream recordings because plugin does not authenticate #46

Open gbdrbob opened 6 months ago

gbdrbob commented 6 months ago

Hi,

I have NextPVR installed on my NAS, but Jellyfin runs on my Windows NUC HTPC as it has hardware capable of transcoding.

Live TV playback works in Jellyfin but unfortunately PVR recordings do not play. This is because the plugin does not authenticate with NextPVR when attempting to play the recording. Unathenticated streaming of LiveTV is supported, but streaming of recordings requires authetication, see here for confirmation of this from the NextPVR dev.

The Jellyfin transcode log shows that NextPVR returns a 500 error: FFmpeg.Transcode-2023-12-20_23-21-46_1a5350c68513569d84a57afb48a4aa7c_1ff5fe88.log

The nextpvr log shows that a required ID was not provided:

2023-12-20 23:54:28.734 [DEBUG][93] Sent total of 0 bytes
2023-12-20 23:54:28.740 [DEBUG][93] Got request [192.168.1.157]: /live
2023-12-20 23:54:28.740 [DEBUG][93] /live?recording=866
2023-12-20 23:54:28.741 [DEBUG][93]  - recording: 866
2023-12-20 23:54:28.741 [DEBUG][93] StreamNative@1..
2023-12-20 23:54:28.741 [DEBUG][93] StreamNative@2
2023-12-20 23:54:28.741 [DEBUG][93] StreamNative@3
2023-12-20 23:54:28.741 [DEBUG][93] StreamNative@4
2023-12-20 23:54:28.741 [DEBUG][93] RollingFile.Open(/srv/mediastore/DTV/Channel 4 News/Channel 4 News_20231220_19002000.ts) ..
2023-12-20 23:54:28.741 [DEBUG][93] About to stream recording: /srv/mediastore/DTV/Channel 4 News/Channel 4 News_20231220_19002000.ts
2023-12-20 23:54:28.742 [ERROR][93] Unexpected error streaming recording: System.Collections.Generic.KeyNotFoundException: The given key 'sid' was not present in the dictionary.
   at NShared.Streaming.StreamingHelper.StreamNativeRecording(ServiceResponseStream responseStream, Dictionary`2 parameters)
2023-12-20 23:54:28.742 [DEBUG][93] Sent total of 0 bytes

Streaming of recordings from the NextPVR server does work if a valid client sid is provided, this is the log when I successfully play the same file with Kodi's nextpvr plugin:

2023-12-21 00:00:04.548 [DEBUG][94] Got request [192.168.1.75]: /live
2023-12-21 00:00:04.548 [DEBUG][94] /live?recording=866&client=XBMC-7e53684d808b83b2256fb825778db597
2023-12-21 00:00:04.548 [DEBUG][94]  - recording: 866
2023-12-21 00:00:04.548 [DEBUG][94]  - client: XBMC-7e53684d808b83b2256fb825778db597
2023-12-21 00:00:04.548 [DEBUG][94] range: bytes=0-
2023-12-21 00:00:04.548 [DEBUG][94] StreamNative@1..
2023-12-21 00:00:04.548 [DEBUG][94] StreamNative@2
2023-12-21 00:00:05.381 [DEBUG][94] StreamNative@3
2023-12-21 00:00:05.381 [DEBUG][94] XBMC client sid is: 7e53684d808b83b2256fb825778db597
2023-12-21 00:00:05.381 [DEBUG][94] StreamNative@4
2023-12-21 00:00:05.381 [DEBUG][94] RollingFile.Open(/srv/mediastore/DTV/Channel 4 News/Channel 4 News_20231220_19002000.ts) ..
2023-12-21 00:00:05.381 [DEBUG][94] About to stream recording: /srv/mediastore/DTV/Channel 4 News/Channel 4 News_20231220_19002000.ts
2023-12-21 00:00:05.381 [DEBUG][94] Request had range request
2023-12-21 00:00:05.382 [DEBUG][94] Requested Range: 0- (1553454716 bytes)

(id altered)

Hope the above helps in working out how to fix the issue. Let me know if you need any more logs.

gbdrbob commented 6 months ago

Reading through the source code, it appears that the plugin does correctly authenticate and provide an sid for LIve TV in LiveTvService.cs:

public Task<MediaSourceInfo> GetChannelStream(string channelId, string streamId, CancellationToken cancellationToken)
    {
        _logger.LogInformation("[NextPVR] Start ChannelStream");
        var baseUrl = Plugin.Instance.Configuration.WebServiceUrl;
        _liveStreams++;

        string streamUrl = $"{baseUrl}/live?channeloid={channelId}&client=jellyfin.{_liveStreams.ToString(CultureInfo.InvariantCulture)}&sid={Sid}";
        _logger.LogInformation("[NextPVR] Streaming {Url}", streamUrl);

However there is no method to construct a valid recording stream URL in LiveTvService.cs, instead, in Responses/RecordingResponse.cs the recording stream is called with no sid:


if (i.File != null)
        {
            if (Plugin.Instance.Configuration.RecordingTransport == 2)
            {
                info.Url = i.File;
            }
            else
            {
                info.Url = $"{_baseUrl}/live?recording={i.Id}";
            }
        }

I don't know enough about how Jellyfin plugins work to risk tinkering with the source, but I hope this is helpful to anyone with the skills to fix the issue.

TauCubed commented 2 months ago

I made a crude patch that reuses LiveTVServices's sid and that's been working fine for me.

tau-recordsings.patch

emveepee commented 2 months ago

This is a documented issue since the recording playback API didn't provide a call back to provide an updated token. That is why the workaround is to disable sid authentication in the server.

I am not sure about the newer versions but the recordings URL were stored separately in a database and the patch above will fail when the sid expires or is logged out which is why the sid is not saved.

emveepee commented 2 months ago

As an update to this thread in updating for 10.9, it was pointed out there was a regression bug in NextPVR that was causing the sid to be required but the value is actually not important when unauthenticated access is required. I have taken ideas from the patch @TauCubed and incorporated them in in the 10.9 update. Unauthenticated access on the server is still required as there is still no added security.

prahal commented 1 month ago

I got a 401 when attempting to play a recorded show. I enabled " Allow unauthenticated access for streaming Live TV / Recordings"' which was not before (seems to me the plugin was playing fine with it disabled before I upgade both jellyfin and the plugin to 10.9, so this report might be another issue, ie its error is 500 not 401):

NextPVR Version: 6.1.5.231022
Jellyfin 10.9.2 NextPVR plugin 9.0.0

Playing the recorded show:

[06:46:22] [INF] [84] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting /usr/lib/jellyfin-ffmpeg/ffprobe with args -analyzeduration 200M -probesize 1G -i "http://argos.prahal.homelinux.net:8866/live?recording=852&sid=jellyfin" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format
http://argos.prahal.homelinux.net:8866/live?recording=852&sid=jellyfin: Server returned 401 Unauthorized (authorization failed)
[06:46:22] [ERR] [84] MediaBrowser.Providers.Videos.VideoMetadataService: Error in Probe Provider
MediaBrowser.Common.FfmpegException: ffprobe failed - streams and format are both null.
   at MediaBrowser.MediaEncoding.Encoder.MediaEncoder.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, Boolean extractChapters, String probeSizeArgument, Boolean isAudio, Nullable`1 videoType, CancellationToken cancellationToken)
   at MediaBrowser.MediaEncoding.Encoder.MediaEncoder.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, Boolean extractChapters, String probeSizeArgument, Boolean isAudio, Nullable`1 videoType, CancellationToken cancellationToken)
   at MediaBrowser.Providers.MediaInfo.FFProbeVideoInfo.ProbeVideo[T](T item, MetadataRefreshOptions options, CancellationToken cancellationToken)
   at MediaBrowser.Providers.Manager.MetadataService`2.RunCustomProvider(ICustomMetadataProvider`1 provider, TItemType item, String logName, MetadataRefreshOptions options, RefreshResult refreshResult, CancellationToken cancellationToken)
[06:46:22] [INF] [84] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for Alban. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[06:46:23] [INF] [84] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[06:46:23] [INF] [84] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -noautorotate -i "http://argos.prahal.homelinux.net:8866/live?recording=852&sid=jellyfin" -map_metadata -1 -map_chapters -1 -threads 0 -sn   -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type fmp4 -hls_fmp4_init_filename "2140fee40da0c979f03b9828da66dc6c-1.mp4" -start_number 0 -hls_base_url "hls/2140fee40da0c979f03b9828da66dc6c/" -hls_segment_filename "/config/transcodes/2140fee40da0c979f03b9828da66dc6c%d.mp4" -hls_playlist_type event -hls_list_size 0 -y "/config/transcodes/2140fee40da0c979f03b9828da66dc6c.m3u8"
[06:46:23] [ERR] [84] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 1
[06:46:23] [ERR] [84] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL GET /videos/d2853486-59dd-4505-102f-2737f90b6047/live.m3u8.
MediaBrowser.Common.FfmpegException: FFmpeg exited with code 1
   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.GetLiveHlsStream(Guid itemId, String container, 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 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, Nullable`1 maxWidth, Nullable`1 maxHeight, Nullable`1 enableSubtitlesInManifest)
   at lambda_method1453(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)
[06:46:23] [INF] [81] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting /usr/lib/jellyfin-ffmpeg/ffprobe with args -analyzeduration 200M -probesize 1G -i "http://argos.prahal.homelinux.net:8866/live?recording=852&sid=jellyfin" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format
http://argos.prahal.homelinux.net:8866/live?recording=852&sid=jellyfin: Server returned 401 Unauthorized (authorization failed)
[06:46:23] [ERR] [81] MediaBrowser.Providers.Videos.VideoMetadataService: Error in Probe Provider
MediaBrowser.Common.FfmpegException: ffprobe failed - streams and format are both null.
   at MediaBrowser.MediaEncoding.Encoder.MediaEncoder.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, Boolean extractChapters, String probeSizeArgument, Boolean isAudio, Nullable`1 videoType, CancellationToken cancellationToken)
   at MediaBrowser.MediaEncoding.Encoder.MediaEncoder.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, Boolean extractChapters, String probeSizeArgument, Boolean isAudio, Nullable`1 videoType, CancellationToken cancellationToken)
   at MediaBrowser.Providers.MediaInfo.FFProbeVideoInfo.ProbeVideo[T](T item, MetadataRefreshOptions options, CancellationToken cancellationToken)
   at MediaBrowser.Providers.Manager.MetadataService`2.RunCustomProvider(ICustomMetadataProvider`1 provider, TItemType item, String logName, MetadataRefreshOptions options, RefreshResult refreshResult, CancellationToken cancellationToken)
[06:46:23] [INF] [81] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for Alban. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[06:46:23] [INF] [81] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: Deleting partial stream file(s) /config/transcodes/2140fee40da0c979f03b9828da66dc6c.m3u8
[06:46:23] [INF] [81] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[06:46:23] [INF] [81] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -noautorotate -i "http://argos.prahal.homelinux.net:8866/live?recording=852&sid=jellyfin" -map_metadata -1 -map_chapters -1 -threads 0 -sn   -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type fmp4 -hls_fmp4_init_filename "55ab0d506666d6856a532ac8cec8ac81-1.mp4" -start_number 0 -hls_base_url "hls/55ab0d506666d6856a532ac8cec8ac81/" -hls_segment_filename "/config/transcodes/55ab0d506666d6856a532ac8cec8ac81%d.mp4" -hls_playlist_type event -hls_list_size 0 -y "/config/transcodes/55ab0d506666d6856a532ac8cec8ac81.m3u8"
[06:46:24] [ERR] [81] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 1
[06:46:24] [ERR] [81] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL GET /videos/d2853486-59dd-4505-102f-2737f90b6047/live.m3u8.
MediaBrowser.Common.FfmpegException: FFmpeg exited with code 1
   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.GetLiveHlsStream(Guid itemId, String container, 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 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, Nullable`1 maxWidth, Nullable`1 maxHeight, Nullable`1 enableSubtitlesInManifest)
   at lambda_method1453(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)
[06:46:24] [INF] [81] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting /usr/lib/jellyfin-ffmpeg/ffprobe with args -analyzeduration 200M -probesize 1G -i "http://argos.prahal.homelinux.net:8866/live?recording=852&sid=jellyfin" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format
http://argos.prahal.homelinux.net:8866/live?recording=852&sid=jellyfin: Server returned 401 Unauthorized (authorization failed)
[06:46:24] [ERR] [81] MediaBrowser.Providers.Videos.VideoMetadataService: Error in Probe Provider
MediaBrowser.Common.FfmpegException: ffprobe failed - streams and format are both null.
   at MediaBrowser.MediaEncoding.Encoder.MediaEncoder.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, Boolean extractChapters, String probeSizeArgument, Boolean isAudio, Nullable`1 videoType, CancellationToken cancellationToken)
   at MediaBrowser.MediaEncoding.Encoder.MediaEncoder.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, Boolean extractChapters, String probeSizeArgument, Boolean isAudio, Nullable`1 videoType, CancellationToken cancellationToken)
   at MediaBrowser.Providers.MediaInfo.FFProbeVideoInfo.ProbeVideo[T](T item, MetadataRefreshOptions options, CancellationToken cancellationToken)
   at MediaBrowser.Providers.Manager.MetadataService`2.RunCustomProvider(ICustomMetadataProvider`1 provider, TItemType item, String logName, MetadataRefreshOptions options, RefreshResult refreshResult, CancellationToken cancellationToken)
[06:46:24] [INF] [81] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for Alban. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[06:46:24] [INF] [81] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: Deleting partial stream file(s) /config/transcodes/55ab0d506666d6856a532ac8cec8ac81.m3u8
[06:46:24] [INF] [81] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[06:46:24] [INF] [81] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -noautorotate -i "http://argos.prahal.homelinux.net:8866/live?recording=852&sid=jellyfin" -map_metadata -1 -map_chapters -1 -threads 0 -sn   -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type fmp4 -hls_fmp4_init_filename "1704367b8596470ed5bece1104295853-1.mp4" -start_number 0 -hls_base_url "hls/1704367b8596470ed5bece1104295853/" -hls_segment_filename "/config/transcodes/1704367b8596470ed5bece1104295853%d.mp4" -hls_playlist_type event -hls_list_size 0 -y "/config/transcodes/1704367b8596470ed5bece1104295853.m3u8"
[06:46:24] [INF] [84] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Adding playback tracker : TW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0OyBydjoxMDkuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC8xMTcuMHwxNzAwNjUyNDAyMzIz-f0f250cf42a24340b5634087be9de6ad-d285348659dd4505102f2737f90b6047
[06:46:24] [INF] [84] Jellyfin.Plugin.PlaybackReporting.Data.PlaybackTracker: PlaybackTracker : Adding Start Event : 05/22/2024 06:46:24
[06:46:24] [INF] [84] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Creating StartPlaybackTimer Task
[06:46:24] [INF] [84] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Entered
[06:46:24] [ERR] [81] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 1
[06:46:24] [ERR] [81] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL GET /videos/d2853486-59dd-4505-102f-2737f90b6047/live.m3u8.
MediaBrowser.Common.FfmpegException: FFmpeg exited with code 1
   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.GetLiveHlsStream(Guid itemId, String container, 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 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, Nullable`1 maxWidth, Nullable`1 maxHeight, Nullable`1 enableSubtitlesInManifest)
   at lambda_method1453(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)
[06:46:24] [INF] [81] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: Deleting partial stream file(s) /config/transcodes/1704367b8596470ed5bece1104295853.m3u8
[06:46:26] [INF] [81] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app Jellyfin Web 10.9.2 playing Journal 20h00. Stopped at 0 ms
[06:46:26] [INF] [84] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Playback stop tracker found, processing stop : TW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0OyBydjoxMDkuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC8xMTcuMHwxNzAwNjUyNDAyMzIz-f0f250cf42a24340b5634087be9de6ad-d285348659dd4505102f2737f90b6047
[06:46:26] [INF] [84] Jellyfin.Plugin.PlaybackReporting.Data.PlaybackTracker: PlaybackTracker : Adding Stop Event : 05/22/2024 06:46:26
[06:46:26] [INF] [84] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Playback stop but TrackedPlaybackInfo not found! not storing activity in DB

Jellyfin startup

[06:25:39] [INF] [1] Main: Jellyfin version: 10.9.2
[06:25:39] [INF] [1] Main: Environment Variables: ["[JELLYFIN_DATA_DIR, /config]", "[JELLYFIN_LOG_DIR, /config/log]", "[JELLYFIN_FFMPEG, /usr/lib/jellyfin-ffmpeg/ffmpeg]", "[JELLYFIN_CONFIG_DIR, /config/config]", "[JELLYFIN_CACHE_DIR, /cache]", "[JELLYFIN_WEB_DIR, /jellyfin/jellyfin-web]"]
[06:25:39] [INF] [1] Main: Arguments: ["/jellyfin/jellyfin.dll", "--ffmpeg", "/usr/lib/jellyfin-ffmpeg/ffmpeg"]
[06:25:39] [INF] [1] Main: Operating system: Debian GNU/Linux 12 (bookworm)
[06:25:39] [INF] [1] Main: Architecture: Arm64
[06:25:39] [INF] [1] Main: 64-Bit Process: True
[06:25:39] [INF] [1] Main: User Interactive: True
[06:25:39] [INF] [1] Main: Processor count: 6
[06:25:39] [INF] [1] Main: Program data path: /config
[06:25:39] [INF] [1] Main: Log directory path: /config/log
[06:25:39] [INF] [1] Main: Config directory path: /config/config
[06:25:39] [INF] [1] Main: Cache path: /cache
[06:25:39] [INF] [1] Main: Web resources path: /jellyfin/jellyfin-web
[06:25:39] [INF] [1] Main: Application directory: /jellyfin/
[06:25:40] [INF] [1] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Setting cache path: /cache
[06:25:40] [INF] [1] Emby.Server.Implementations.ApplicationHost: Loading assemblies
[06:25:40] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly Jellyfin.Plugin.Bookshelf, Version=11.0.0.0, Culture=neutral, PublicKeyToken=null from /config/plugins/Bookshelf_11.0.0.0/Jellyfin.Plugin.Bookshelf.dll
[06:25:40] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly Jellyfin.Plugin.Dlna, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null from /config/plugins/DLNA_1.0.0.0/Jellyfin.Plugin.Dlna.dll
[06:25:40] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly Jellyfin.Plugin.Dlna.Playback, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null from /config/plugins/DLNA_1.0.0.0/Jellyfin.Plugin.Dlna.Playback.dll
[06:25:40] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly Rssdp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null from /config/plugins/DLNA_1.0.0.0/Rssdp.dll
[06:25:40] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly Jellyfin.Plugin.Dlna.Model, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null from /config/plugins/DLNA_1.0.0.0/Jellyfin.Plugin.Dlna.Model.dll
[06:25:40] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly Jellyfin.Plugin.IMVDb, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null from /config/plugins/IMVDb_4.0.0.0/Jellyfin.Plugin.IMVDb.dll
[06:25:40] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly Jellyfin.Plugin.KodiSyncQueue, Version=11.0.0.0, Culture=neutral, PublicKeyToken=null from /config/plugins/Kodi Sync Queue_11.0.0.0/Jellyfin.Plugin.KodiSyncQueue.dll
[06:25:40] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly LiteDB, Version=5.0.15.0, Culture=neutral, PublicKeyToken=4ee40123013c9f27 from /config/plugins/Kodi Sync Queue_11.0.0.0/LiteDB.dll
[06:25:40] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly Jellyfin.Plugin.NextPVR, Version=9.0.0.0, Culture=neutral, PublicKeyToken=null from /config/plugins/NextPVR_9.0.0.0/Jellyfin.Plugin.NextPVR.dll
[06:25:40] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly Jellyfin.Plugin.Opds, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null from /config/plugins/OPDS_5.0.0.0/Jellyfin.Plugin.Opds.dll
[06:25:40] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly Jellyfin.Plugin.OpenSubtitles, Version=20.0.0.0, Culture=neutral, PublicKeyToken=null from /config/plugins/Open Subtitles_20.0.0.0/Jellyfin.Plugin.OpenSubtitles.dll
[06:25:40] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly SQLitePCL.pretty, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null from /config/plugins/Playback Reporting_14.0.0.0/SQLitePCL.pretty.dll
[06:25:40] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly Jellyfin.Plugin.PlaybackReporting, Version=14.0.0.0, Culture=neutral, PublicKeyToken=null from /config/plugins/Playback Reporting_14.0.0.0/Jellyfin.Plugin.PlaybackReporting.dll
[06:25:40] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly ExcelNumberFormat, Version=1.1.0.0, Culture=neutral, PublicKeyToken=23c6f5d73be07eca from /config/plugins/Reports_17.0.0.0/ExcelNumberFormat.dll
[06:25:40] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly System.IO.Packaging, Version=4.0.5.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a from /config/plugins/Reports_17.0.0.0/System.IO.Packaging.dll
[06:25:41] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly DocumentFormat.OpenXml, Version=2.16.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17 from /config/plugins/Reports_17.0.0.0/DocumentFormat.OpenXml.dll
[06:25:41] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly SixLabors.Fonts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d998eea7b14cab13 from /config/plugins/Reports_17.0.0.0/SixLabors.Fonts.dll
[06:25:41] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly ClosedXML, Version=0.97.0.0, Culture=neutral, PublicKeyToken=fd1eb21b62ae805b from /config/plugins/Reports_17.0.0.0/ClosedXML.dll
[06:25:41] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly Jellyfin.Plugin.Reports, Version=17.0.0.0, Culture=neutral, PublicKeyToken=null from /config/plugins/Reports_17.0.0.0/Jellyfin.Plugin.Reports.dll
[06:25:41] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly Jellyfin.Plugin.Tvdb, Version=11.0.0.0, Culture=neutral, PublicKeyToken=null from /config/plugins/TheTVDB_11.0.0.0/Jellyfin.Plugin.Tvdb.dll
[06:25:41] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly Tvdb.Sdk, Version=4.7.9.1, Culture=neutral, PublicKeyToken=null from /config/plugins/TheTVDB_11.0.0.0/Tvdb.Sdk.dll
[06:25:41] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly Jellyfin.Plugin.Vgmdb, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null from /config/plugins/VGMdb_4.0.0.0/Jellyfin.Plugin.Vgmdb.dll
[06:25:41] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly NYoutubeDLP, Version=0.12.1.0, Culture=neutral, PublicKeyToken=null from /config/plugins/YoutubeMetadata_1.0.3.9/NYoutubeDLP.dll
[06:25:41] [ERR] [1] Emby.Server.Implementations.Plugins.PluginManager: Failed to load assembly /config/plugins/YoutubeMetadata_1.0.3.9/Jellyfin.Plugin.YoutubeMetadata.dll. This error occurs when a plugin references an incompatible version of one of the shared libraries. Disabling plugin
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types.
Could not load type 'MediaBrowser.Common.Plugins.IPluginServiceRegistrator' from assembly 'MediaBrowser.Common, Version=10.9.2.0, Culture=neutral, PublicKeyToken=null'.
   at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
   at System.Reflection.RuntimeModule.GetTypes()
   at Emby.Server.Implementations.Plugins.PluginManager.LoadAssemblies()+MoveNext()
System.TypeLoadException: Could not load type 'MediaBrowser.Common.Plugins.IPluginServiceRegistrator' from assembly 'MediaBrowser.Common, Version=10.9.2.0, Culture=neutral, PublicKeyToken=null'.
[06:25:41] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Defined LAN subnets: ["192.168.10.0/24"]
[06:25:41] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Defined LAN exclusions: []
[06:25:41] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Used LAN subnets: ["192.168.10.0/24"]
[06:25:41] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Filtered interface addresses: ["127.0.0.1", "192.168.10.48", "172.17.0.1", "172.19.0.1", "172.18.0.1", "172.21.0.1", "::1", "fc00:10::95d0:9841:2f1:aaf8", "fe80::e93d:6c72:65aa:61ac%2", "fe80::42:4cff:fef9:1fe5%5", "fe80::42:8eff:fe46:810b%6", "fe80::42:15ff:fe30:7b28%7", "fe80::42:b9ff:fe55:d31d%8", "fe80::6415:adff:fec2:830b%10", "fe80::e841:8eff:fe8d:9b74%12", "fe80::5800:7fff:fe1f:2c5f%14", "fe80::40c:16ff:feb7:bbb3%16", "fe80::608f:34ff:fe64:ad02%18"]
[06:25:41] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Bind Addresses ["::"]
[06:25:41] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Remote IP filter is Allowlist
[06:25:41] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Filtered subnets: []
[06:25:41] [ERR] [1] Emby.Server.Implementations.ApplicationHost: No private key included in SSL cert /etc/pki/realms/domain/default.pem.
[06:26:36] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: Bookshelf 11.0.0.0
[06:26:36] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: DLNA 1.0.0.0
[06:26:36] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: IMVDb 4.0.0.0
[06:26:37] [INF] [1] Jellyfin.Plugin.KodiSyncQueue.KodiSyncQueuePlugin: KodiSyncQueue is starting...
[06:26:37] [INF] [1] Jellyfin.Plugin.KodiSyncQueue.Data.DbRepo: Creating DB Repository...
[06:26:37] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: Kodi Sync Queue 11.0.0.0
[06:26:37] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: NextPVR 9.0.0.0
[06:26:37] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: OPDS Feed 5.0.0.0
[06:26:37] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: Open Subtitles 20.0.0.0
[06:26:37] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: Playback Reporting 14.0.0.0
[06:26:37] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: Reports 17.0.0.0
[06:26:37] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: TheTVDB 11.0.0.0
[06:26:37] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: VGMdb 4.0.0.0
[06:26:37] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: TMDb 10.9.2.0
[06:26:37] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: Studio Images 10.9.2.0
[06:26:37] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: OMDb 10.9.2.0
[06:26:37] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: MusicBrainz 10.9.2.0
[06:26:37] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: AudioDB 10.9.2.0
[06:26:37] [WRN] [1] Microsoft.AspNetCore.DataProtection.Repositories.EphemeralXmlRepository: Using an in-memory repository. Keys will not be persisted to storage.
[06:26:37] [WRN] [1] Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager: Neither user profile nor HKLM registry available. Using an ephemeral key repository. Protected data will be unavailable when application exits.
[06:26:38] [INF] [1] Main: Kestrel is listening on all interfaces
[06:26:38] [INF] [1] Jellyfin.Plugin.Dlna.Main.DlnaHost: Registering publisher for urn:schemas-upnp-org:device:MediaServer:1 on 127.0.0.1
[06:26:38] [INF] [1] Jellyfin.Plugin.Dlna.Main.DlnaHost: Registering publisher for urn:schemas-upnp-org:device:MediaServer:1 on 192.168.10.48
[06:26:38] [INF] [1] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: EventMonitorEntryPoint Running
[06:26:38] [INF] [1] Jellyfin.Plugin.PlaybackReporting.Data.ActivityRepository: Sqlite version: 3.41.2
[06:26:38] [INF] [1] Jellyfin.Plugin.PlaybackReporting.Data.ActivityRepository: Sqlite compiler options: ATOMIC_INTRINSICS=1,COMPILER=gcc-9.4.0,DEFAULT_AUTOVACUUM,DEFAULT_CACHE_SIZE=-2000,DEFAULT_FILE_FORMAT=4,DEFAULT_FOREIGN_KEYS,DEFAULT_JOURNAL_SIZE_LIMIT=-1,DEFAULT_MMAP_SIZE=0,DEFAULT_PAGE_SIZE=4096,DEFAULT_PCACHE_INITSZ=20,DEFAULT_RECURSIVE_TRIGGERS,DEFAULT_SECTOR_SIZE=4096,DEFAULT_SYNCHRONOUS=2,DEFAULT_WAL_AUTOCHECKPOINT=1000,DEFAULT_WAL_SYNCHRONOUS=2,DEFAULT_WORKER_THREADS=0,ENABLE_COLUMN_METADATA,ENABLE_FTS3,ENABLE_FTS3_PARENTHESIS,ENABLE_FTS4,ENABLE_FTS5,ENABLE_MATH_FUNCTIONS,ENABLE_RTREE,ENABLE_SNAPSHOT,MALLOC_SOFT_LIMIT=1024,MAX_ATTACHED=10,MAX_COLUMN=2000,MAX_COMPOUND_SELECT=500,MAX_DEFAULT_PAGE_SIZE=8192,MAX_EXPR_DEPTH=1000,MAX_FUNCTION_ARG=127,MAX_LENGTH=1000000000,MAX_LIKE_PATTERN_LENGTH=50000,MAX_MMAP_SIZE=0x7fff0000,MAX_PAGE_COUNT=1073741823,MAX_PAGE_SIZE=65536,MAX_SQL_LENGTH=1000000000,MAX_TRIGGER_DEPTH=1000,MAX_VARIABLE_NUMBER=32766,MAX_VDBE_OP=250000000,MAX_WORKER_THREADS=8,MUTEX_PTHREADS,SYSTEM_MALLOC,TEMP_STORE=1,THREADSAFE=1
[06:26:39] [INF] [1] Jellyfin.Plugin.PlaybackReporting.Data.ActivityRepository: Default journal_mode for /config/data/playback_reporting.db is delete
[06:26:39] [INF] [1] Jellyfin.Plugin.PlaybackReporting.Data.ActivityRepository: Initialize PlaybackActivity Repository
[06:26:39] [INF] [1] Jellyfin.Plugin.PlaybackReporting.Data.ActivityRepository: PlaybackActivity table schema OK
[06:26:39] [INF] [1] Jellyfin.Plugin.PlaybackReporting.Data.ActivityRepository: Expected : datecreated:datetime|userid:text|itemid:text|itemtype:text|itemname:text|playbackmethod:text|clientname:text|devicename:text|playduration:int
[06:26:39] [INF] [1] Jellyfin.Plugin.PlaybackReporting.Data.ActivityRepository: Received : datecreated:datetime|userid:text|itemid:text|itemtype:text|itemname:text|playbackmethod:text|clientname:text|devicename:text|playduration:int
[06:26:39] [WRN] [1] Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager: No XML encryptor configured. Key {994d7118-ea27-4a8f-a08f-f416ee5f7b67} may be persisted to storage in unencrypted form.
[06:26:42] [WRN] [1] Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware: The WebRootPath was not found: /wwwroot. Static files may be unavailable.
[06:26:42] [INF] [1] Emby.Server.Implementations.ApplicationHost: Running startup tasks
[06:26:42] [INF] [1] Jellyfin.Plugin.KodiSyncQueue.ScheduledTasks.RetentionTask: Retention task scheduled
[06:26:42] [INF] [1] Jellyfin.Plugin.PlaybackReporting.TaskCleanDb: TaskCleanDb Loaded
[06:26:42] [INF] [1] Jellyfin.Plugin.PlaybackReporting.TaskRunBackup: TaskRunBackup Loaded
[06:26:42] [INF] [10] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /media/movie/TVShows/Fantasy
[06:26:42] [INF] [10] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /media/movie/TVShows/Horror
[06:26:42] [INF] [8] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /media/movie/TVShows/Historical
[06:26:42] [INF] [1] Emby.Server.Implementations.ScheduledTasks.TaskManager: Daily trigger for Remove Old Sync Data set to fire at 2024-05-23 00:01:00.000 +00:00, which is 17:34:17.1081884 from now.
[06:26:42] [INF] [8] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /media/movie/TVShows/Soap
[06:26:42] [INF] [10] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /media/movie/TVShows/SciFi
[06:26:42] [INF] [8] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /media/movie/TVShows/Thrill
[06:26:42] [INF] [11] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /media/movie/TVShows/Animes
[06:26:42] [INF] [19] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /media/movie/Movies
[06:26:42] [INF] [11] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /media/music/Clips
[06:26:43] [INF] [10] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /media/movie/Webcasts
[06:26:43] [INF] [19] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /media/music/Stories
[06:26:43] [INF] [10] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /media/youtube_clips
[06:26:43] [INF] [1] Emby.Server.Implementations.ScheduledTasks.TaskManager: Daily trigger for Playback Reporting Trim Db set to fire at 2024-05-23 00:00:00.000 +00:00, which is 17:33:16.9285622 from now.
[06:26:43] [INF] [1] Emby.Server.Implementations.ScheduledTasks.TaskManager: Daily trigger for Générer des images Trickplay set to fire at 2024-05-23 03:00:00.000 +00:00, which is 20:33:16.8428644 from now.
[06:26:43] [INF] [1] Emby.Server.Implementations.ScheduledTasks.TaskManager: Daily trigger for Extraire les images de chapitre set to fire at 2024-05-23 02:00:00.000 +00:00, which is 19:33:16.5758062 from now.
[06:26:44] [INF] [11] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /media/youtube
[06:26:45] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Found ffmpeg version 6.0.1
[06:26:45] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available decoders: ["libdav1d", "av1", "av1_rkmpp", "h264", "h264_rkmpp", "hevc", "hevc_rkmpp", "mpeg1_rkmpp", "mpeg2video", "mpeg2_rkmpp", "mpeg4", "mpeg4_rkmpp", "msmpeg4", "vp8", "vp8_rkmpp", "libvpx", "vp9", "vp9_rkmpp", "libvpx-vp9", "aac", "ac3", "dca", "flac", "mp3", "truehd"]
[06:26:45] [INF] [18] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /media/documents_books
[06:26:45] [INF] [15] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /media/document_medias
[06:26:45] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available encoders: ["libsvtav1", "libx264", "h264_v4l2m2m", "h264_rkmpp", "libx265", "hevc_rkmpp", "mpeg4", "msmpeg4", "libvpx", "libvpx-vp9", "aac", "libfdk_aac", "ac3", "alac", "dca", "flac", "libmp3lame", "libopus", "truehd", "libvorbis", "srt"]
[06:26:46] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available filters: ["overlay_opencl", "overlay_rkrga", "scale_opencl", "scale_rkrga", "tonemap_opencl", "vpp_rkrga", "zscale", "alphasrc"]
[06:26:46] [WRN] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Filter: scale_cuda with option Output format (default "same") is not available
[06:26:46] [WRN] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Filter: tonemap_cuda with option GPU accelerated HDR to SDR tonemapping is not available
[06:26:46] [WRN] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Filter: overlay_vaapi with option Action to take when encountering EOF from secondary input is not available
[06:26:46] [WRN] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Filter: overlay_vulkan with option Action to take when encountering EOF from secondary input is not available
[06:26:46] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available hwaccel types: ["drm", "opencl", "rkmpp"]
[06:26:46] [INF] [18] Emby.Server.Implementations.ScheduledTasks.TaskManager: Nettoyer les collections et les listes de lecture Completed after 0 minute(s) and 0 seconds
[06:26:47] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: FFmpeg: /usr/lib/jellyfin-ffmpeg/ffmpeg
[06:26:47] [INF] [1] Emby.Server.Implementations.ApplicationHost: ServerId: e448349af6e94601bfc58844e8be6700
[06:26:47] [INF] [1] Emby.Server.Implementations.ApplicationHost: Core startup complete
[06:26:47] [INF] [1] Main: Startup complete 0:01:08.8134892
[06:26:49] [INF] [8] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /media/music/Chansons
[06:26:50] [INF] [19] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /picture
[06:26:54] [INF] [11] Emby.Server.Implementations.ScheduledTasks.TaskManager: Mettre à jour les extensions Completed after 0 minute(s) and 7 seconds
[06:26:56] [INF] [19] Jellyfin.Plugin.NextPVR.LiveTvService: [NextPVR] Start InitiateSession
[06:26:57] [INF] [18] Jellyfin.Plugin.NextPVR.LiveTvService: [NextPVR] Sid: 136bb8e73fc94924be187ea4898b0ebc
[06:26:57] [INF] [18] Jellyfin.Plugin.NextPVR.LiveTvService: [NextPVR] Start Login procedure for Sid: 136bb8e73fc94924be187ea4898b0ebc & Salt: 6dcc79eb-90a0-40ae-812d-74676ab7d56d
[06:26:57] [INF] [18] Jellyfin.Plugin.NextPVR.LiveTvService: [NextPVR] Pin: 7491
[06:26:57] [INF] [18] Jellyfin.Plugin.NextPVR.LiveTvService: [NextPVR] Session initiated
[06:26:57] [INF] [18] Jellyfin.Plugin.NextPVR.LiveTvService: [NextPVR] Start GetDefaultSettings Async
[06:26:57] [INF] [18] Jellyfin.Plugin.NextPVR.LiveTvService: [NextPVR] GetBackendSetting
[06:27:09] [INF] [16] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /media/calibre
[06:27:12] [INF] [16] Emby.Server.Implementations.HttpServer.WebSocketManager: WS ::ffff:192.168.10.175 request
[06:27:12] [INF] [15] Emby.Server.Implementations.HttpServer.WebSocketManager: WS ::ffff:192.168.10.219 request
[06:27:22] [INF] [11] Jellyfin.Plugin.KodiSyncQueue.API.KodiSyncQueueController: Plugin Settings Requested...
[06:27:23] [INF] [11] Jellyfin.Plugin.KodiSyncQueue.API.KodiSyncQueueController: Sync Requested for UserID: 'f0f250cf42a24340b5634087be9de6ad' with LastUpdateDT: '2024-05-21T22:34:18z'
[06:27:28] [INF] [16] Jellyfin.Plugin.KodiSyncQueue.API.KodiSyncQueueController: Plugin Settings Requested...
[06:27:28] [INF] [39] Jellyfin.Plugin.KodiSyncQueue.API.KodiSyncQueueController: Sync Requested for UserID: 'f0f250cf42a24340b5634087be9de6ad' with LastUpdateDT: '2024-05-20T17:38:57z'
[06:27:53] [INF] [15] Jellyfin.Plugin.KodiSyncQueue.API.KodiSyncQueueController: Sync Requested for UserID: 'f0f250cf42a24340b5634087be9de6ad' with LastUpdateDT: '2024-05-21T22:34:18z'
[06:27:54] [INF] [10] Emby.Server.Implementations.HttpServer.WebSocketManager: WS ::ffff:192.168.10.175 request
[06:27:58] [INF] [18] Jellyfin.Plugin.NextPVR.LiveTvService: [NextPVR] Start GetTimer Async, retrieve the 'Pending' recordings
[06:27:58] [INF] [8] Jellyfin.Plugin.KodiSyncQueue.API.KodiSyncQueueController: Sync Requested for UserID: 'f0f250cf42a24340b5634087be9de6ad' with LastUpdateDT: '2024-05-20T17:38:57z'
[06:27:58] [INF] [16] Jellyfin.Plugin.NextPVR.LiveTvService: [NextPVR] Start GetTimer Async, retrieve the 'Pending' recordings
[06:28:01] [INF] [40] Emby.Server.Implementations.Session.SessionWebSocketListener: Sending ForceKeepAlive message to 2 inactive WebSockets.
[06:28:02] [INF] [40] Jellyfin.Plugin.NextPVR.LiveTvService: [NextPVR] Start GetRecordings Async, retrieve all 'Pending', 'Inprogress' and 'Completed' recordings 
[06:28:03] [INF] [10] Jellyfin.Plugin.NextPVR.LiveTvService: [NextPVR] Start GetChannels Async, retrieve all channels
emveepee commented 1 month ago

401 is the expected response if "Unauthenticated Access" is not ticked. The 500 error was the situation corrected in this release. However I am concerned that you are using a hostname for your NextPVR server since Unauthenticated Access shouldn't work over the Internet but I don't know what NextPVR is seeing.

This is a NextPVR question and should be investigated on the NextPVR forum after you provide the zipped NextPVR logs.

prahal commented 1 month ago

thanks. I am not convinced this is a NextPVR issue as it was playing back fine as far as I remember with jellyfin 10.8 and NextPVR plugin v8 (ven with "Unauthenticated Access" unticked, though here I have tried bot with it ticked and unticked before reporting (and the log I pase is with it ticked). https://forums.nextpvr.com/showthread.php?tid=65580&pid=591330#pid591330

(I am not certain I was able to playback recording in jellyfin 10.8 but I was able and still can from Kodi with kodi 20.5 nextpvr plugin 20.4.3, even with "UNauthenticated Access" uniticked)

emveepee commented 1 month ago

As noted on the NextPVR forum the issue is what posted above, NextPVR doesn't see your hostname address as private LAN. If it worked in the past it could be a hole that was patched in IPv6 security. In addition to get the attention of the NextPVR developer posting on GitHub is a waste of time so the NextPVR forum is always the best place to report issues with this addon. I will almost always ask for the zipped NextPVR logs and I hate snippets.