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

Plugin not loading channel icons #90

Open
hardwareadictos opened this issue Aug 12, 2024 · 7 comments
Open

Plugin not loading channel icons #90

hardwareadictos opened this issue Aug 12, 2024 · 7 comments

Comments

@hardwareadictos
Copy link

Hey!!

I just set up the plugin and i can watch the channels and get the epg infor on guide refresh, but i can't seem to make Channel icons to appear, i get this error on logs:

Jellyfin-TEST  | [13:04:09] [ERR] [28] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL GET /Items/294916a531c0c9f30908b3422bb16212/Images/Primary.
Jellyfin-TEST  | System.InvalidOperationException: Unable to convert any images to local
Jellyfin-TEST  |    at Emby.Server.Implementations.Library.LibraryManager.ConvertImageToLocal(BaseItem item, ItemImageInfo image, Int32 imageIndex, Boolean removeOnFailure)
Jellyfin-TEST  |    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 fillWidth, Nullable`1 fillHeight, Nullable`1 blur, String backgroundColor, String foregroundLayer, BaseItem item, ItemImageInfo imageInfo)
Jellyfin-TEST  |    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, Nullable`1 fillWidth, Nullable`1 fillHeight, String tag, Nullable`1 format, Nullable`1 percentPlayed, Nullable`1 unplayedCount, Nullable`1 blur, String backgroundColor, String foregroundLayer, Nullable`1 imageIndex)
Jellyfin-TEST  |    at lambda_method953(Closure, Object)
Jellyfin-TEST  |    at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfActionResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
Jellyfin-TEST  |    at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
Jellyfin-TEST  |    at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
Jellyfin-TEST  |    at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
Jellyfin-TEST  |    at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
Jellyfin-TEST  |    at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
Jellyfin-TEST  |    at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
Jellyfin-TEST  |    at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
Jellyfin-TEST  |    at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
Jellyfin-TEST  |    at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
Jellyfin-TEST  |    at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
Jellyfin-TEST  |    at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
Jellyfin-TEST  |    at Jellyfin.Api.Middleware.ServerStartupMessageMiddleware.Invoke(HttpContext httpContext, IServerApplicationHost serverApplicationHost, ILocalizationManager localizationManager)
Jellyfin-TEST  |    at Jellyfin.Api.Middleware.WebSocketHandlerMiddleware.Invoke(HttpContext httpContext, IWebSocketManager webSocketManager)
Jellyfin-TEST  |    at Jellyfin.Api.Middleware.IPBasedAccessValidationMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager)
Jellyfin-TEST  |    at Jellyfin.Api.Middleware.LanFilteringMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager, IServerConfigurationManager serverConfigurationManager)
Jellyfin-TEST  |    at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
Jellyfin-TEST  |    at Jellyfin.Api.Middleware.QueryStringDecodingMiddleware.Invoke(HttpContext httpContext)
Jellyfin-TEST  |    at Swashbuckle.AspNetCore.ReDoc.ReDocMiddleware.Invoke(HttpContext httpContext)
Jellyfin-TEST  |    at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
Jellyfin-TEST  |    at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
Jellyfin-TEST  |    at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
Jellyfin-TEST  |    at Jellyfin.Api.Middleware.RobotsRedirectionMiddleware.Invoke(HttpContext httpContext)
Jellyfin-TEST  |    at Jellyfin.Api.Middleware.LegacyEmbyRouteRewriteMiddleware.Invoke(HttpContext httpContext)
Jellyfin-TEST  |    at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
Jellyfin-TEST  |    at Jellyfin.Api.Middleware.ResponseTimeMiddleware.Invoke(HttpContext context, IServerConfigurationManager serverConfigurationManager)
Jellyfin-TEST  |    at Jellyfin.Api.Middleware.ExceptionMiddleware.Invoke(HttpContext context)

Thanks in advance!

@hardwareadictos
Copy link
Author

Update: I see those errors also which for me are a no sense:

Jellyfin-TEST  | [10:54:01] [ERR] [46] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL GET /Items/3908c3189a3b45e8f734ca4a950672d1/Images/Primary.
Jellyfin-TEST  | System.Net.Http.HttpRequestException: Response status code does not indicate success: 401 (Unauthorized).
Jellyfin-TEST  |    at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
Jellyfin-TEST  |    at MediaBrowser.Providers.Manager.ProviderManager.SaveImage(BaseItem item, String url, ImageType type, Nullable`1 imageIndex, CancellationToken cancellationToken)
Jellyfin-TEST  |    at Emby.Server.Implementations.Library.LibraryManager.ConvertImageToLocal(BaseItem item, ItemImageInfo image, Int32 imageIndex, Boolean removeOnFailure)
Jellyfin-TEST  |    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 fillWidth, Nullable`1 fillHeight, Nullable`1 blur, String backgroundColor, String foregroundLayer, BaseItem item, ItemImageInfo imageInfo)

I get a 401 error while i can watch the streams without issues. So my tvheadend user has permissions

@hardwareadictos
Copy link
Author

hardwareadictos commented Aug 14, 2024

Update 2: So i installed dream Player for TVHEadend on my Pixel 7 and i can sync all channel icons, even i am not suffering from the delay between aduio and video i'm suffering on jellyfin (this seems realted to web player as with internal one on Android works fine)

@mcblacky
Copy link

Hi,

After upgrading to Jellyfin 10.9.9 and tvheadend plugin 12.0.0.0 with HTS Tvheadend 4.3-2349~gb774bdd25 I lost my channel icons too. Glad that I am not alone but hope for a solution.

[2024-08-22 00:08:51.593 +02:00] [ERR] [90] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL "GET" "/Items/b8843a1be47fc98aa6028fd34b8fb13c/Images/Primary".
System.Net.Http.HttpRequestException: Response status code does not indicate success: 401 (Unauthorized).
at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
at MediaBrowser.Providers.Manager.ProviderManager.SaveImage(BaseItem item, String url, ImageType type, Nullable1 imageIndex, CancellationToken cancellationToken) at Emby.Server.Implementations.Library.LibraryManager.ConvertImageToLocal(BaseItem item, ItemImageInfo image, Int32 imageIndex, Boolean removeOnFailure) at Jellyfin.Api.Controllers.ImageController.GetImageInternal(Guid itemId, ImageType imageType, Nullable1 imageIndex, String tag, Nullable1 format, Nullable1 maxWidth, Nullable1 maxHeight, Nullable1 percentPlayed, Nullable1 unplayedCount, Nullable1 width, Nullable1 height, Nullable1 quality, Nullable1 fillWidth, Nullable1 fillHeight, Nullable1 blur, String backgroundColor, String foregroundLayer, BaseItem item, ItemImageInfo imageInfo) at Jellyfin.Api.Controllers.ImageController.GetItemImage(Guid itemId, ImageType imageType, Nullable1 maxWidth, Nullable1 maxHeight, Nullable1 width, Nullable1 height, Nullable1 quality, Nullable1 fillWidth, Nullable1 fillHeight, String tag, Nullable1 format, Nullable1 percentPlayed, Nullable1 unplayedCount, Nullable1 blur, String backgroundColor, String foregroundLayer, Nullable1 imageIndex) at lambda_method765(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, ValueTask1 actionResultValueTask)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.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.g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)

@hardwareadictos
Copy link
Author

Hi,

After upgrading to Jellyfin 10.9.9 and tvheadend plugin 12.0.0.0 with HTS Tvheadend 4.3-2349~gb774bdd25 I lost my channel icons too. Glad that I am not alone but hope for a solution.

[2024-08-22 00:08:51.593 +02:00] [ERR] [90] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request. URL "GET" "/Items/b8843a1be47fc98aa6028fd34b8fb13c/Images/Primary". System.Net.Http.HttpRequestException: Response status code does not indicate success: 401 (Unauthorized). at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode() at MediaBrowser.Providers.Manager.ProviderManager.SaveImage(BaseItem item, String url, ImageType type, Nullable1 imageIndex, CancellationToken cancellationToken) at Emby.Server.Implementations.Library.LibraryManager.ConvertImageToLocal(BaseItem item, ItemImageInfo image, Int32 imageIndex, Boolean removeOnFailure) at Jellyfin.Api.Controllers.ImageController.GetImageInternal(Guid itemId, ImageType imageType, Nullable1 imageIndex, String tag, Nullable1 format, Nullable1 maxWidth, Nullable1 maxHeight, Nullable1 percentPlayed, Nullable1 unplayedCount, Nullable1 width, Nullable1 height, Nullable1 quality, Nullable1 fillWidth, Nullable1 fillHeight, Nullable1 blur, String backgroundColor, String foregroundLayer, BaseItem item, ItemImageInfo imageInfo) at Jellyfin.Api.Controllers.ImageController.GetItemImage(Guid itemId, ImageType imageType, Nullable1 maxWidth, Nullable1 maxHeight, Nullable1 width, Nullable1 height, Nullable1 quality, Nullable1 fillWidth, Nullable1 fillHeight, String tag, Nullable1 format, Nullable1 percentPlayed, Nullable1 unplayedCount, Nullable1 blur, String backgroundColor, String foregroundLayer, Nullable1 imageIndex) at lambda_method765(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, ValueTask1 actionResultValueTask) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.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.g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)

Hey! Seems that Jellyfin is not 100% compatible with TVHeadend authentication.

Followed this steps to get this fixed: https://emby.media/community/index.php?/topic/71181-tvheadend-and-emby/

Just create a * user without password, for me it allowed me to add TVHeadend channel and URL on Live TV settings instead the plugin.

For me overall experience is far better without the plugin, icons loads and i don't have that messy out of sync audio with image that i have with the plugin.

@mcblacky
Copy link

Many thanks for quick responding!

just create a * user without password, for me it allowed me to add TVHeadend channel and URL on Live TV settings instead the plugin.

I did make a * user as per https://emby.media/community/index.php?/topic/71181-tvheadend-and-emby/

But how did you add TVHeadend channel and URL on Live TV settings. In Jellyfin Live TV settings, I am only able to select HDHomerun and M3U tuner. With option Other, I am only able to do an auto detect. No way to add an URL.

I tried to connect to TVheadend with the plugin without entering username and password but is not connecting. But as I read your message you are not using the plug in. Could you please explain a bit more clear, thanks in advance.

@hardwareadictos
Copy link
Author

Many thanks for quick responding!

just create a * user without password, for me it allowed me to add TVHeadend channel and URL on Live TV settings instead the plugin.

I did make a * user as per https://emby.media/community/index.php?/topic/71181-tvheadend-and-emby/

But how did you add TVHeadend channel and URL on Live TV settings. In Jellyfin Live TV settings, I am only able to select HDHomerun and M3U tuner. With option Other, I am only able to do an auto detect. No way to add an URL.

I tried to connect to TVheadend with the plugin without entering username and password but is not connecting. But as I read your message you are not using the plug in. Could you please explain a bit more clear, thanks in advance.

No problem, it's really easy, under Live TV settings add an m3u tunner:

image

And for EPG add something like this xmltv entry:

image

That must be documented also on Jellyfin docs, i did find this information on Emby forums. Nothing on Jellyfin Documentation.

@mcblacky
Copy link

hardwareadictos Mucho Gracias,

I had to remove the Jellyfin docker container and the library directory and started from scratch. With your settings the channel icons are back again! But it looks like Jellyfin is using more CPU than before and during watching realtime HD streams it stops now and than (asking to much from my raspberrypi5). With the tvheadend this didn't happen. But the appearance looking more colorful now. Thanks a lot for your help. The makers of tvheadend plugin need to do a bit on the authentication.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants