Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Recording #46

Open
onid opened this issue Oct 24, 2022 · 15 comments
Open

Recording #46

onid opened this issue Oct 24, 2022 · 15 comments
Labels
blocked This PR is blocked due to a commented reason feature This PR or Issue requests or introduces a new feature

Comments

@onid
Copy link

onid commented Oct 24, 2022

Hi, first thanks for this plugin, really simplifies things for me.

Is recording using this plugin supposed to work? When I setup this plugin I can watch Live TV fine but if I try to record just get the circle going around and around.

If I setup the normal JF live TV section with M3U tuner and EPG manually set recording works fine

Thanks

@Kevinjil
Copy link
Owner

Recording is not yet implemented.

@Kevinjil Kevinjil added the feature This PR or Issue requests or introduces a new feature label Oct 24, 2022
@NicolaiVdS
Copy link

is this still in the works ?

@Killerherts
Copy link

What needs to done to make this a possibility? This would be really nice for events and rarer shows that will never get uploaded. I would be happy to contribute

@chminsc
Copy link

chminsc commented Mar 19, 2024

any updates?

@mjohl
Copy link

mjohl commented Jun 17, 2024

@Kevinjil If it is not the plugin causing the failure, then what is?

System.NotImplementedException: The method or operation is not implemented.
   at Jellyfin.Xtream.LiveTvService.CreateTimerAsync(TimerInfo info, CancellationToken cancellationToken)
   at Jellyfin.LiveTv.LiveTvManager.CreateTimer(TimerInfoDto timer, CancellationToken cancellationToken)
   at Jellyfin.Api.Controllers.LiveTvController.CreateTimer(TimerInfoDto timerInfo)
   at lambda_method1604(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()
--- End of stack trace from previous location ---
   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()
--- 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.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)```

@jbumgarden
Copy link

Is there a way to get recording working for the Xtream plugin? I'm using Jellyfin version 10.9.7 and can't seem to figure out how to setup recording.

@mjohl

This comment was marked as off-topic.

@jbumgarden

This comment was marked as off-topic.

@Killerherts

This comment was marked as off-topic.

@Kevinjil
Copy link
Owner

Kevinjil commented Jul 7, 2024

I have no plans to reinvent the wheel and invest lots of time to completely implement stream recording from scratch. As long as Jellyfin does not make it's recording functionality available to plugins, this won't be implemented.

@Kevinjil Kevinjil added the blocked This PR is blocked due to a commented reason label Jul 7, 2024
@jbumgarden
Copy link

jbumgarden commented Jul 7, 2024 via email

@mjohl
Copy link

mjohl commented Jul 7, 2024

@jbumgarden IPTV-Proxy will solve your problem.

@mjohl
Copy link

mjohl commented Jul 10, 2024

@Kevinjil, I completely understand that you don't want to "reinvent the wheel" and why. So, can you please then fix the plugin so it doesn't break the existing recording solution? Your plugin takes over the recording functionality with no implementation or plan to implement. You should warn them that it is the case as well if you not going to do anything about it.

You essentially wrote a plugin that knowingly break functionality in the solution and should be removed as a plugin option till resolved.

@Kevinjil
Copy link
Owner

Kevinjil commented Jul 10, 2024

@mjohl I do not break the existing recording solution. Jellyfin only offers a recording solution for built-in implementations and requires plugins to implement their own in the interface definition. I choose to not implement it and signal so by throwing a NotImplemented exception.

I'd rather not have to implement this specific interface and change Jellyfin to use it's built-in recording for a plugin doesn't implement it itself, but I simply don't have the time to make these changes upstream.

@mjohl
Copy link

mjohl commented Jul 10, 2024

@Kevinjil With the plugin the recording function stopped working in total and an exception from the plugin was thrown. I tracked it back in the stack trace. Removed the plugin and recording started to function.

I will debug the source tomorrow to see if it is the plugin or not with 100% certainty.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked This PR is blocked due to a commented reason feature This PR or Issue requests or introduces a new feature
Projects
None yet
Development

No branches or pull requests

7 participants