Code Monkey home page Code Monkey logo

jellyfin-plugin-nextpvr's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jellyfin-plugin-nextpvr's Issues

Play recording from local folder?

Would it be possible to allow the plugin to play recording from a local folder available to Jellyfin instead of passing a streaming link? Jellyfin in my case won't stream. It worked initially, but not at the moment. But in any case, for performance reason, might be useful to have. I have no problem with LiveTV via NextPVR BTW.
I'm not sure if "Recording Protocol" set to filename does this? It doesnt work either way...


[11:04:56] [INF] [57] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for uri. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True


[11:04:56] [INF] [57] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: Unknown Profile, Path: http://protonvpn:8866/live?recording=2214, isEligibleForDirectPlay: True, isEligibleForDirectStream: True


[11:04:56] [INF] [57] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: Unknown Profile, No video direct play profiles found for http://protonvpn:8866/live?recording=2214 with codec Unknown codec


[11:04:56] [INF] [57] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: Unknown Profile, Path: http://protonvpn:8866/live?recording=2214, isEligibleForDirectPlay: True, isEligibleForDirectStream: True


[11:04:56] [INF] [57] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: Unknown Profile, No video direct play profiles found for http://protonvpn:8866/live?recording=2214 with codec Unknown codec


[11:04:56] [INF] [57] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: Unknown Profile, Path: http://protonvpn:8866/live?recording=2214, isEligibleForDirectPlay: True, isEligibleForDirectStream: True


[11:04:56] [INF] [57] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: Unknown Profile, No video direct play profiles found for http://protonvpn:8866/live?recording=2214 with codec Unknown codec


[11:04:57] [INF] [55] Jellyfin.Api.Helpers.TranscodingJobHelper: /usr/lib/jellyfin-ffmpeg/ffmpeg -i "http://protonvpn:8866/live?recording=2214" -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 mpegts -start_number 0 -hls_base_url "hls/41eec36c5a0ea198c8dce6155bc5db0f/" -hls_playlist_type event -hls_segment_filename "/config/data/transcodes/41eec36c5a0ea198c8dce6155bc5db0f%d.ts" -y "/config/data/transcodes/41eec36c5a0ea198c8dce6155bc5db0f.m3u8"


[11:04:57] [ERR] [54] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 1

Version 5 from the repo is not working with JF 10.7-rc1 and the latest unstable from today

I cannot start any live tv playback on JF 10.7-rc1 and the latest unstable server of today with the plugin version 5 from the repo.

OS: Win 10
Server Version: 10.7-rc1 and Unstable (jellyfin_20201222.3-unstable)
Client: Web/Chrome 87

The guide data is filled so the connection to the npvr backend should be fine.

This is the error I get on the unstable server:

System.NullReferenceException: Object reference not set to an instance of an object.
   at MediaBrowser.Model.Dlna.StreamBuilder.GetVideoDirectPlayProfile(VideoOptions options, MediaSourceInfo mediaSource, MediaStream videoStream, MediaStream audioStream, Boolean isEligibleForDirectPlay, Boolean isEligibleForDirectStream)
   at MediaBrowser.Model.Dlna.StreamBuilder.BuildVideoItem(MediaSourceInfo item, VideoOptions options)
   at MediaBrowser.Model.Dlna.StreamBuilder.BuildVideoItem(VideoOptions options)
   at Jellyfin.Api.Helpers.MediaInfoHelper.SetDeviceSpecificData(BaseItem item, MediaSourceInfo mediaSource, DeviceProfile profile, AuthorizationInfo auth, Nullable`1 maxBitrate, Int64 startTimeTicks, String mediaSourceId, Nullable`1 audioStreamIndex, Nullable`1 subtitleStreamIndex, Nullable`1 maxAudioChannels, String playSessionId, Guid userId, Boolean enableDirectPlay, Boolean enableDirectStream, Boolean enableTranscoding, Boolean allowVideoStreamCopy, Boolean allowAudioStreamCopy, String ipAddress)
   at Jellyfin.Api.Controllers.MediaInfoController.GetPostedPlaybackInfo(Guid itemId, Nullable`1 userId, Nullable`1 maxStreamingBitrate, Nullable`1 startTimeTicks, Nullable`1 audioStreamIndex, Nullable`1 subtitleStreamIndex, Nullable`1 maxAudioChannels, String mediaSourceId, String liveStreamId, Nullable`1 autoOpenLiveStream, Nullable`1 enableDirectPlay, Nullable`1 enableDirectStream, Nullable`1 enableTranscoding, Nullable`1 allowVideoStreamCopy, Nullable`1 allowAudioStreamCopy, PlaybackInfoDto playbackInfoDto)
   at lambda_method905(Closure , Object )
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(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()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|24_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()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
   at Jellyfin.Server.Middleware.ServerStartupMessageMiddleware.Invoke(HttpContext httpContext, IServerApplicationHost serverApplicationHost, ILocalizationManager localizationManager)
   at Jellyfin.Server.Middleware.WebSocketHandlerMiddleware.Invoke(HttpContext httpContext, IWebSocketManager webSocketManager)
   at Jellyfin.Server.Middleware.IpBasedAccessValidationMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager, IServerConfigurationManager serverConfigurationManager)
   at Jellyfin.Server.Middleware.LanFilteringMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager, IServerConfigurationManager serverConfigurationManager)
   at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
   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.Server.Middleware.RobotsRedirectionMiddleware.Invoke(HttpContext httpContext)
   at Jellyfin.Server.Middleware.LegacyEmbyRouteRewriteMiddleware.Invoke(HttpContext httpContext)
   at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.Invoke(HttpContext context)
   at Jellyfin.Server.Middleware.ResponseTimeMiddleware.Invoke(HttpContext context)
   at Jellyfin.Server.Middleware.ExceptionMiddleware.Invoke(HttpContext context)
[2020-12-23 00:05:34.131 +01:00] [WRN] [10] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from "https://xxx.xxx/Items/0e0a99903c233d158125ebd61ac44ed5/PlaybackInfo?UserId=8ede7a0c-3421-4dae-ad44-be1374706eab&StartTimeTicks=0&IsPlayback=true&AutoOpenLiveStream=true&MaxStreamingBitrate=6804375" to "165.225.72.99" in 0:00:10.0027987 with Status Code 500

Can't install version 4 of the plugin

Jellyfin Version: 10.8.8

Trying to install version 4.0.0 of this plugin since it's the latest version still compatible with NextPVR 4.x but get this in the logs and marked as not supported in the web gui.

Failed to load assembly /config/data/plugins/NextPVR_4.0.0.0/NextPvr.dll. This error occurs when a plugin references an incompatible version of one of the shared libraries. Disabling plugin.

Would it be possible to either make this old version work or make a humble request to add a "legacy mode" to the newer versions of this plugin? Updating NextPVR is unfortunately a no go for me since they dropped support for Softcams in version 5 which is sad.

Thanks!

Stop transcoding

I installed NextPVR plugin for jellyfin but my streams stopped (even when I didn't use nextpvr plugin).

Here is the log exception :

[FTL] [10] Main: Unhandled Exception
System.AggregateException: One or more errors occurred. (Connection refused (localhost:8866))
 ---> System.Net.Http.HttpRequestException: Connection refused (localhost:8866)
 ---> System.Net.Sockets.SocketException (111): Connection refused
   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.<ConnectAsync>g__WaitForConnectWithCancellation|285_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken)
   at Jellyfin.Networking.HappyEyeballs.HttpClientExtension.AttemptConnection(AddressFamily addressFamily, SocketsHttpConnectionContext context, CancellationToken cancellationToken)
   at Jellyfin.Networking.HappyEyeballs.HttpClientExtension.OnConnect(SocketsHttpConnectionContext context, 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.TaskCompletionSourceWithCancellation`1.WaitWithCancellationAsync(CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at Microsoft.Extensions.Http.Logging.LoggingHttpMessageHandler.<SendCoreAsync>g__Core|5_0(HttpRequestMessage request, Boolean useAsync, CancellationToken cancellationToken)
   at Microsoft.Extensions.Http.Logging.LoggingScopeHttpMessageHandler.<SendCoreAsync>g__Core|5_0(HttpRequestMessage request, Boolean useAsync, CancellationToken cancellationToken)
   at System.Net.Http.HttpClient.GetStreamAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)
   at Jellyfin.Plugin.NextPVR.LiveTvService.InitiateSession(CancellationToken cancellationToken)
   at Jellyfin.Plugin.NextPVR.LiveTvService.EnsureConnectionAsync(CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at Jellyfin.Plugin.NextPVR.RecordingsChannel.GetService()
   at Jellyfin.Plugin.NextPVR.RecordingsChannel.OnUpdateTimerCallbackAsync(Object state)
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_1(Object state)
   at System.Threading.QueueUserWorkItemCallback.Execute()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()

I disabled the plugin and now everything works.

I just write the problem here for following it :)

NextPVR Recordings won't open.

Not being a jellyfin or Emby user it is hard to explain the logic but there are two Recording Screens and they have different file lists, but they both contain NextPVR recordings

image

Generally when I go to play one of these files through either menu I get this error https://pastebin.com/72G5XjU0

The URL in TypedBaseItems is correct

I believe the items that are type MediaBrowser.Controller.Entities.Video will play and the ones that are type MediaBrowser.Controller.Entities.TV.Episode will not.

Server crashing after installation

This plugin is crashing my server randomly. I'm using Jellyfin 10.7.0 (git master).

System.InvalidOperationException: Sequence contains no elements
   at System.Linq.ThrowHelper.ThrowNoElementsException()
   at System.Linq.Enumerable.First[TSource](IEnumerable`1 source)
   at Jellyfin.Plugin.NextPVR.RecordingsChannel.GetService()
   at Jellyfin.Plugin.NextPVR.RecordingsChannel.GetCacheKey(String userId)
   at Emby.Server.Implementations.Channels.ChannelManager.GetChannelDataCachePath(IChannel channel, String userId, String externalFolderId, Nullable`1 sortField, Boolean sortDescending)
   at Emby.Server.Implementations.Channels.ChannelManager.GetChannelItems(IChannel channel, User user, String externalFolderId, Nullable`1 sortField, Boolean sortDescending, CancellationToken cancellationToken)
   at Emby.Server.Implementations.Channels.ChannelManager.GetChannelItemsInternal(InternalItemsQuery query, IProgress`1 progress, CancellationToken cancellationToken)
   at Emby.Server.Implementations.Channels.ChannelManager.RefreshLatestChannelItems(IChannel channel, CancellationToken cancellationToken)
   at Emby.Server.Implementations.Channels.ChannelManager.GetLatestChannelItemsInternal(InternalItemsQuery query, CancellationToken cancellationToken)
   at Emby.Server.Implementations.Library.UserViewManager.GetItemsForLatestItems(User user, LatestItemsQuery request, DtoOptions options)
   at Emby.Server.Implementations.Library.UserViewManager.GetLatestItems(LatestItemsQuery request, DtoOptions options)
   at Jellyfin.Api.Controllers.UserLibraryController.GetLatestMedia(Guid userId, Nullable`1 parentId, ItemFields[] fields, BaseItemKind[] includeItemTypes, Nullable`1 isPlayed, Nullable`1 enableImages, Nullable`1 imageTypeLimit, ImageType[] enableImageTypes, Nullable`1 enableUserData, Int32 limit, Boolean groupItems)
   at lambda_method899(Closure , Object , Object[] )
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
--- End of stack trace from previous location ---
   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()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|24_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()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
   at Jellyfin.Server.Middleware.ServerStartupMessageMiddleware.Invoke(HttpContext httpContext, IServerApplicationHost serverApplicationHost, ILocalizationManager localizationManager)
   at Jellyfin.Server.Middleware.WebSocketHandlerMiddleware.Invoke(HttpContext httpContext, IWebSocketManager webSocketManager)
   at Jellyfin.Server.Middleware.IpBasedAccessValidationMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager, IServerConfigurationManager serverConfigurationManager)
   at Jellyfin.Server.Middleware.LanFilteringMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager, IServerConfigurationManager serverConfigurationManager)
   at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
   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.Server.Middleware.RobotsRedirectionMiddleware.Invoke(HttpContext httpContext)
   at Jellyfin.Server.Middleware.LegacyEmbyRouteRewriteMiddleware.Invoke(HttpContext httpContext)
   at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.Invoke(HttpContext context)
   at Jellyfin.Server.Middleware.ResponseTimeMiddleware.Invoke(HttpContext context)
   at Jellyfin.Server.Middleware.ExceptionMiddleware.Invoke(HttpContext context)
[19:36:20] [ERR] [26] Jellyfin.Server.Middleware.ExceptionMiddleware: Error processing request. URL GET /Items/76cccb8318c0b9f81429dd93ef7fb856/Images/Primary.
System.InvalidOperationException: Operation is not valid due to the current state of the object.
   at Emby.Server.Implementations.Library.LibraryManager.ConvertImageToLocal(BaseItem item, ItemImageInfo image, Int32 imageIndex)
   at Jellyfin.Api.Controllers.ImageController.GetImageResult(BaseItem item, Guid itemId, Nullable`1 index, Nullable`1 height, Nullable`1 maxHeight, Nullable`1 maxWidth, Nullable`1 quality, Nullable`1 width, Nullable`1 addPlayedIndicator, Nullable`1 percentPlayed, Nullable`1 unplayedCount, Nullable`1 blur, String backgroundColor, String foregroundLayer, ItemImageInfo imageInfo, Boolean cropWhitespace, IReadOnlyCollection`1 supportedFormats, Nullable`1 cacheDuration, IDictionary`2 headers, Boolean isHeadRequest)
   at Jellyfin.Api.Controllers.ImageController.GetImageInternal(Guid itemId, ImageType imageType, Nullable`1 imageIndex, String tag, Nullable`1 format, Nullable`1 maxWidth, Nullable`1 maxHeight, Nullable`1 percentPlayed, Nullable`1 unplayedCount, Nullable`1 width, Nullable`1 height, Nullable`1 quality, Nullable`1 cropWhitespace, Nullable`1 addPlayedIndicator, Nullable`1 blur, String backgroundColor, String foregroundLayer, BaseItem item, Boolean isHeadRequest, ItemImageInfo imageInfo)
   at Jellyfin.Api.Controllers.ImageController.GetItemImage(Guid itemId, ImageType imageType, Nullable`1 maxWidth, Nullable`1 maxHeight, Nullable`1 width, Nullable`1 height, Nullable`1 quality, String tag, Nullable`1 cropWhitespace, Nullable`1 format, Nullable`1 addPlayedIndicator, Nullable`1 percentPlayed, Nullable`1 unplayedCount, Nullable`1 blur, String backgroundColor, String foregroundLayer, Nullable`1 imageIndex)
   at lambda_method878(Closure , Object )
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfActionResultExecutor.Execute(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|24_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|19_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.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
   at Jellyfin.Server.Middleware.ServerStartupMessageMiddleware.Invoke(HttpContext httpContext, IServerApplicationHost serverApplicationHost, ILocalizationManager localizationManager)
   at Jellyfin.Server.Middleware.WebSocketHandlerMiddleware.Invoke(HttpContext httpContext, IWebSocketManager webSocketManager)
   at Jellyfin.Server.Middleware.IpBasedAccessValidationMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager, IServerConfigurationManager serverConfigurationManager)
   at Jellyfin.Server.Middleware.LanFilteringMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager, IServerConfigurationManager serverConfigurationManager)
   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
   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.Server.Middleware.RobotsRedirectionMiddleware.Invoke(HttpContext httpContext)
   at Jellyfin.Server.Middleware.LegacyEmbyRouteRewriteMiddleware.Invoke(HttpContext httpContext)
   at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.Invoke(HttpContext context)
   at Jellyfin.Server.Middleware.ResponseTimeMiddleware.Invoke(HttpContext context)
   at Jellyfin.Server.Middleware.ExceptionMiddleware.Invoke(HttpContext context)
[19:36:20] [WRN] [26] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from https://jellyfin.jakobkukla.xyz/Items/76cccb8318c0b9f81429dd93ef7fb856/Images/Primary?maxWidth=470&tag=b8e4407f0953549fff2da1ba53d577a3&quality=90 to 192.168.8.100 in 0:00:00.5078753 with Status Code 500
[19:36:22] [WRN] [30] Jellyfin.Networking.Manager.NetworkManager: 192.168.8.100/32: GetBindInterface: Loopback 127.0.0.1 returned.
[19:36:22] [FTL] [27] Main: Unhandled Exception
System.InvalidOperationException: Sequence contains no elements
   at System.Linq.ThrowHelper.ThrowNoElementsException()
   at System.Linq.Enumerable.First[TSource](IEnumerable`1 source)
   at Jellyfin.Plugin.NextPVR.RecordingsChannel.GetService()
   at Jellyfin.Plugin.NextPVR.RecordingsChannel.OnUpdateTimerCallbackAsync(Object state)
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__140_1(Object state)
   at System.Threading.QueueUserWorkItemCallback.<>c.<.cctor>b__6_0(QueueUserWorkItemCallback quwi)
   at System.Threading.ExecutionContext.RunForThreadPoolUnsafe[TState](ExecutionContext executionContext, Action`1 callback, TState& state)
   at System.Threading.QueueUserWorkItemCallback.Execute()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
Unhandled exception. System.InvalidOperationException: Sequence contains no elements
   at System.Linq.ThrowHelper.ThrowNoElementsException()
   at System.Linq.Enumerable.First[TSource](IEnumerable`1 source)
   at Jellyfin.Plugin.NextPVR.RecordingsChannel.GetService()
   at Jellyfin.Plugin.NextPVR.RecordingsChannel.OnUpdateTimerCallbackAsync(Object state)
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__140_1(Object state)
   at System.Threading.QueueUserWorkItemCallback.<>c.<.cctor>b__6_0(QueueUserWorkItemCallback quwi)
   at System.Threading.ExecutionContext.RunForThreadPoolUnsafe[TState](ExecutionContext executionContext, Action`1 callback, TState& state)
   at System.Threading.QueueUserWorkItemCallback.Execute()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()

Unable to install NextPVR plugin

Unfortunately, I'm unable to install the version 5 plugin.

Could you please publish the binary in releases of the repository? I was unable to compile it myself either.

MediaBrowser.Common.Extensions.ResourceNotFoundException: Package not found: NextPVR
   at MediaBrowser.Api.PackageService.Post(InstallPackage request)
   at Emby.Server.Implementations.Services.ServiceExecGeneral.GetTaskResult(Task task)
   at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken)
   at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IHttpRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken)

Plugin not working with Jellyfin 10.9

Hi

My instance of Jellfyin upgraded to 10.9 and the NextPVR plugin doesn't start with version 8

07:03:01
[07:03:01] [ERR] [1] Emby.Server.Implementations.Plugins.PluginManager: Failed to load assembly /config/data/plugins/NextPVR_8.0.0.0/Jellyfin.Plugin.NextPVR.dll. This error occurs when a plugin references an incompatible version of one of the shared libraries. Disabling plugin

Unable to stream recordings because plugin does not authenticate

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.

Port to Jellyfin

Are there any plans or a timeline to port this plugin to Jellyfin?
I'd like to also switch my live-TV setup to Jellyfin.

Looking for Jellyfin plugin NextPVR "live TV, program guide"

Hi,

The Github repository About says

This plugin provides access to live TV, program guide, and recordings from a NextPVR server.

However, when I go into Jellyfin and NextPVR,
the case seems that I can only see my NextPVR recordings.
I do not see a way to see my NextPVR "live TV, program guide"

Here is what I see in a tree.

Browse to
   http://localhost:8096/web
     My Media
          [NextPVR]
             NextPVR Recordings
          [LiveTV] -> Recordings

Looks like there is a LiveTV coding file in there:
https://github.com/jellyfin/jellyfin-plugin-nextpvr/blob/master/Jellyfin.Plugin.NextPVR/LiveTvService.cs

Is NextPVR "live TV, program guide" something that will be implemented in the future?

Is it implemened now? Am I missing somthing?

I am using NextPVR_10.0.0.0 of https://github.com/jellyfin/jellyfin-plugin-nextpvr
I am using jellyfin_10.9.4-amd64
I am using Firefox.

Thanks,
Andre Mikulec

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.