Kevinjil / Jellyfin.Xtream

The Jellyfin.Xtream plugin can be used to integrate the content provided by an Xtream-compatible API in your Jellyfin instance.
GNU General Public License v3.0
105 stars 13 forks source link

Recording #46

Open onid opened 2 years ago

onid commented 2 years ago

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 commented 2 years ago

Recording is not yet implemented.

NicolaiVdS commented 1 year ago

is this still in the works ?

Killerherts commented 9 months ago

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 commented 8 months ago

any updates?

mjohl commented 5 months ago

@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 commented 4 months ago

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 commented 4 months ago

I removed the plugin and had no issues since. I also have no issues with IPTV or the guide, so honestly, I have no idea why this plugin still exists. That is maybe why the code is not fully implemented and is dead.

Remove the plugin and move on because all it does is introduce errors as it is not keeping up in development.

@jbumgarden What problem are you trying to solve with this plugin?

Screenshot 2024-07-06 100635

Screenshot 2024-07-06 100803

Screenshot 2024-07-06 100825

jbumgarden commented 4 months ago

I need a way to connect to stream iptv. Is there an alternate way to do that without this plugin?

I was wanting to connect to xtream iptv, maybe record said streams and use a peg for that same iptv service through jellyfin.

Thanks Joshua

On Jul 6, 2024, at 4:13 AM, mjohl @.***> wrote:



I removed the plugin and had no issues since. I also have no issues with IPTV or the guide, so honestly, I have no idea why this plugin still exists. That is maybe why the code is not fully implemented and is dead.

Remove the plugin and move on because all it does is introduce errors as it is not keeping up in development.

@jbumgardenhttps://github.com/jbumgarden What problem are you trying to solve with this plugin?

Screenshot.2024-07-06.100635.png (view on web)https://github.com/Kevinjil/Jellyfin.Xtream/assets/4193377/21af0bd0-19e1-46c2-84c3-87752fed7492

Screenshot.2024-07-06.100803.png (view on web)https://github.com/Kevinjil/Jellyfin.Xtream/assets/4193377/5efcbaaa-4020-47d9-b567-0cfa38f005ec

Screenshot.2024-07-06.100825.png (view on web)https://github.com/Kevinjil/Jellyfin.Xtream/assets/4193377/8c6cbb89-343d-4a43-876a-d158dc5b5d73

— Reply to this email directly, view it on GitHubhttps://github.com/Kevinjil/Jellyfin.Xtream/issues/46#issuecomment-2211715989, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AR6GBKCDO7NYEHFX4JNBKJDZK6YMBAVCNFSM6AAAAAARNK2IWOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMJRG4YTKOJYHE. You are receiving this because you were mentioned.Message ID: @.***>

Killerherts commented 4 months ago

I need a way to connect to stream iptv. Is there an alternate way to do that without this plugin? I was wanting to connect to xtream iptv, maybe record said streams and use a peg for that same iptv service through jellyfin. Thanks Joshua On Jul 6, 2024, at 4:13 AM, mjohl @.> wrote:  I removed the plugin and had no issues since. I also have no issues with IPTV or the guide, so honestly, I have no idea why this plugin still exists. That is maybe why the code is not fully implemented and is dead. Remove the plugin and move on because all it does is introduce errors as it is not keeping up in development. @jbumgardenhttps://github.com/jbumgarden What problem are you trying to solve with this plugin? Screenshot.2024-07-06.100635.png (view on web)https://github.com/Kevinjil/Jellyfin.Xtream/assets/4193377/21af0bd0-19e1-46c2-84c3-87752fed7492 Screenshot.2024-07-06.100803.png (view on web)https://github.com/Kevinjil/Jellyfin.Xtream/assets/4193377/5efcbaaa-4020-47d9-b567-0cfa38f005ec Screenshot.2024-07-06.100825.png (view on web)https://github.com/Kevinjil/Jellyfin.Xtream/assets/4193377/8c6cbb89-343d-4a43-876a-d158dc5b5d73 — Reply to this email directly, view it on GitHub<#46 (comment)>, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AR6GBKCDO7NYEHFX4JNBKJDZK6YMBAVCNFSM6AAAAAARNK2IWOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMJRG4YTKOJYHE. You are receiving this because you were mentioned.Message ID: @.>

There is a project called IPTV proxy that can generate a m3u for you from a xtream login I have 2 use it as my IPTV provider is blocked by my isp so I use VPN to encapsulate the streams.

Kevinjil commented 4 months ago

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.

jbumgarden commented 4 months ago

Totally understand, thanks for your response Thanks Joshua

mjohl commented 4 months ago

@jbumgarden IPTV-Proxy will solve your problem.

mjohl commented 4 months ago

@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 commented 4 months ago

@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 commented 4 months ago

@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.