jellyfin / jellyfin-plugin-trakt

https://jellyfin.org
MIT License
187 stars 34 forks source link

Customize API credentials #192

Open mohkale opened 1 year ago

mohkale commented 1 year ago

Hi,

Is it possible to customize the Trakt API client key and secret to our own credentials? I just installed this plugin (version 20.0.0.0) on Jellyfin version: 10.8.4 and I can't seem to authorize (getting back 500 errors). Looking back at past issues that seems to have been a problem with earlier versions hammering the API but I just installed it so if that's the case it's likely because of the existing API credentials (that or authorize would ordinarily let me set the credentials but because it's failing I can't).

BTW it'd be nice if the README properly documented the setup procedure. It seems pretty self explanatory but when it can fail like this I end up questioning everything :upside_down_face:.

Here are the relevent excerpts from my Jellyfin log.

jellyfin  | [23:19:21] [INF] [11] Emby.Server.Implementations.ScheduledTasks.TaskManager: ExecuteQueuedTasks
jellyfin  | [23:19:35] [INF] [29] Trakt.Api.TraktController: TraktDeviceAuthorization request received
jellyfin  | [23:19:39] [ERR] [30] Trakt.Api.TraktApi: Exception handled in PostToTrakt
jellyfin  | System.Net.Http.HttpRequestException: Response status code does not indicate success: 403 (Forbidden).
jellyfin  |    at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
jellyfin  |    at Trakt.Api.TraktApi.PostToTrakt[T](String url, Object data, TraktUser traktUser, CancellationToken cancellationToken)
jellyfin  | [23:19:39] [ERR] [30] Jellyfin.Server.Middleware.ExceptionMiddleware: Error processing request. URL POST /Trakt/Users/6764361e4a764ea7adfe40972ea3748d/Authorize.
jellyfin  | System.Net.Http.HttpRequestException: Response status code does not indicate success: 403 (Forbidden).
jellyfin  |    at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
jellyfin  |    at Trakt.Api.TraktApi.PostToTrakt[T](String url, Object data, TraktUser traktUser, CancellationToken cancellationToken)
jellyfin  |    at Trakt.Api.TraktApi.AuthorizeDevice(TraktUser traktUser)
jellyfin  |    at Trakt.Api.TraktController.TraktDeviceAuthorization(Guid userGuid)
jellyfin  |    at lambda_method1037(Closure , Object )
jellyfin  |    at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
jellyfin  |    at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
jellyfin  |    at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
jellyfin  |    at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
jellyfin  |    at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
jellyfin  |    at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
jellyfin  |    at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
jellyfin  |    at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
jellyfin  |    at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
jellyfin  |    at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
jellyfin  |    at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
jellyfin  |    at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
jellyfin  |    at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
jellyfin  |    at Jellyfin.Server.Middleware.ServerStartupMessageMiddleware.Invoke(HttpContext httpContext, IServerApplicationHost serverApplicationHost, ILocalizationManager localizationManager)
jellyfin  |    at Jellyfin.Server.Middleware.WebSocketHandlerMiddleware.Invoke(HttpContext httpContext, IWebSocketManager webSocketManager)
jellyfin  |    at Jellyfin.Server.Middleware.IpBasedAccessValidationMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager)
jellyfin  |    at Jellyfin.Server.Middleware.LanFilteringMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager, IServerConfigurationManager serverConfigurationManager)
jellyfin  |    at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
jellyfin  |    at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
jellyfin  |    at Jellyfin.Server.Middleware.QueryStringDecodingMiddleware.Invoke(HttpContext httpContext)
jellyfin  |    at Swashbuckle.AspNetCore.ReDoc.ReDocMiddleware.Invoke(HttpContext httpContext)
jellyfin  |    at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
jellyfin  |    at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
jellyfin  |    at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
jellyfin  |    at Jellyfin.Server.Middleware.RobotsRedirectionMiddleware.Invoke(HttpContext httpContext)
jellyfin  |    at Jellyfin.Server.Middleware.LegacyEmbyRouteRewriteMiddleware.Invoke(HttpContext httpContext)
jellyfin  |    at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
jellyfin  |    at Jellyfin.Server.Middleware.ResponseTimeMiddleware.Invoke(HttpContext context, IServerConfigurationManager serverConfigurationManager)
jellyfin  |    at Jellyfin.Server.Middleware.ExceptionMiddleware.Invoke(HttpContext context)
jellyfin  | [23:19:39] [WRN] [30] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from http://0.0.0.0:8096/Trakt/Users/6764361e4a764ea7adfe40972ea3748d/Authorize to 127.0.0.1 in 0:00:03.3506354 with Status Code 500
Shadowghost commented 1 year ago

You need to update your Jellyfin install and the plugin to v21. We had a regression hammering the API so the ids and keys used in the plugin got disabled and required replacing after we fixed the regression.