codefaux / deemix-for-lidarr

(Theoretically) deemix patched for Lidarr addon use
25 stars 2 forks source link

Is Indexing working? #4

Closed Breakingx closed 5 months ago

Breakingx commented 5 months ago

Hey, thanks for the project.

Just a question. I successfully setted up the container and everything works. But is the indexer really running? For example a Song called "Ich Ich Ich" by Alligatoah was released two days ago but it's missing in lidarr.

The indexers connection in Lidarr is correctly tested with deezer but there is this song missing.

Breakingx commented 5 months ago

Alright, now I'm confused. Searching for the song manually inside lidarr it's appearing.

Breakingx commented 5 months ago

These are the logs trying to download:

`[Info] ReleaseSearchService: Searching indexers for [Alligatoah - ICH ICH ICH (2024)]. 1 active indexers [Info] DownloadDecisionMaker: Processing 3 releases [Warn] LidarrErrorPipeline: NzbDrone.Core.Download.Clients.DownloadClientException: Expected Deemix to add 1 item, got 0

[v2.1.1.3878] NzbDrone.Core.Download.Clients.DownloadClientException: Expected Deemix to add 1 item, got 0 at NzbDrone.Core.Download.Clients.Deemix.DeemixProxy.Download(String url, Int32 bitrate, DeemixSettings settings) at NzbDrone.Core.Download.Clients.Deemix.Deemix.Download(RemoteAlbum remoteAlbum, IIndexer indexer) at NzbDrone.Core.Download.DownloadService.DownloadReport(RemoteAlbum remoteAlbum, IDownloadClient downloadClient) in ./Lidarr.Core/Download/DownloadService.cs:line 96 at NzbDrone.Core.Download.DownloadService.DownloadReport(RemoteAlbum remoteAlbum) in ./Lidarr.Core/Download/DownloadService.cs:line 61 at Lidarr.Api.V1.Indexers.ReleaseController.DownloadRelease(ReleaseResource release) in ./Lidarr.Api.V1/Indexers/ReleaseController.cs:line 130 at lambda_method199(Closure , Object ) at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.gAwaited|12_0(ControllerActionInvoker invoker, ValueTask`1 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.InvokeInnerFilterAsync() --- End of stack trace from previous location --- at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.gAwaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.gAwaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope) at Microsoft.AspNetCore.Routing.EndpointMiddleware.gAwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger) at Lidarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Lidarr.Http/Middleware/BufferingMiddleware.cs:line 28 at Lidarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Lidarr.Http/Middleware/IfModifiedMiddleware.cs:line 41 at Lidarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Lidarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33 at Lidarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Lidarr.Http/Middleware/StartingUpMiddleware.cs:line 38 at Lidarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Lidarr.Http/Middleware/UrlBaseMiddleware.cs:line 27 at Lidarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Lidarr.Http/Middleware/VersionMiddleware.cs:line 29 at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context) at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult) at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)

[Fatal] LidarrErrorPipeline: Request Failed. POST /api/v1/release

[v2.1.1.3878] NzbDrone.Core.Download.Clients.DownloadClientException: Expected Deemix to add 1 item, got 0 at NzbDrone.Core.Download.Clients.Deemix.DeemixProxy.Download(String url, Int32 bitrate, DeemixSettings settings) at NzbDrone.Core.Download.Clients.Deemix.Deemix.Download(RemoteAlbum remoteAlbum, IIndexer indexer) at NzbDrone.Core.Download.DownloadService.DownloadReport(RemoteAlbum remoteAlbum, IDownloadClient downloadClient) in ./Lidarr.Core/Download/DownloadService.cs:line 96 at NzbDrone.Core.Download.DownloadService.DownloadReport(RemoteAlbum remoteAlbum) in ./Lidarr.Core/Download/DownloadService.cs:line 61 at Lidarr.Api.V1.Indexers.ReleaseController.DownloadRelease(ReleaseResource release) in ./Lidarr.Api.V1/Indexers/ReleaseController.cs:line 130 at lambda_method199(Closure , Object ) at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.gAwaited|12_0(ControllerActionInvoker invoker, ValueTask`1 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.InvokeInnerFilterAsync() --- End of stack trace from previous location --- at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.gAwaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.gAwaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope) at Microsoft.AspNetCore.Routing.EndpointMiddleware.gAwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger) at Lidarr.Http.Middleware.BufferingMiddleware.InvokeAsync(HttpContext context) in ./Lidarr.Http/Middleware/BufferingMiddleware.cs:line 28 at Lidarr.Http.Middleware.IfModifiedMiddleware.InvokeAsync(HttpContext context) in ./Lidarr.Http/Middleware/IfModifiedMiddleware.cs:line 41 at Lidarr.Http.Middleware.CacheHeaderMiddleware.InvokeAsync(HttpContext context) in ./Lidarr.Http/Middleware/CacheHeaderMiddleware.cs:line 33 at Lidarr.Http.Middleware.StartingUpMiddleware.InvokeAsync(HttpContext context) in ./Lidarr.Http/Middleware/StartingUpMiddleware.cs:line 38 at Lidarr.Http.Middleware.UrlBaseMiddleware.InvokeAsync(HttpContext context) in ./Lidarr.Http/Middleware/UrlBaseMiddleware.cs:line 27 at Lidarr.Http.Middleware.VersionMiddleware.InvokeAsync(HttpContext context) in ./Lidarr.Http/Middleware/VersionMiddleware.cs:line 29 at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context) at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult) at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)`

codefaux commented 5 months ago

So, the short answer is yes, Indexing is working. Releases under a week old will be problematic with any Lidarr instance.

The longer answer is, I suspect you might misunderstand the role of indexing, and the problem in this case lies in Lidarr's Metadata source which updates periodically, I'm guessing weekly. I don't mean to sound condescending with the below explanation, I'm mostly being thorough so I can refer to it in future cases. My aim is to fill in gaps which anyone might have, not necessarily targeted directly at you. Thank you for understanding.

I'll clarify some Lidarr items which are sometimes not fully understood;

With the basics out of the way -- general troubleshooting should start by opening the Deemix WebUI. See if searches produce results as expected there, and wether or not a download was queued/completed/etc on the sidebar. This can narrow down issues to Deezer or Deemix, instead of the Lidarr interface.

Secondarily, Lidarr uses Metadata Profiles, which limit which results appear under a given Artist, if said Artist is added directly. Ensure you have a Metadata Profile added which includes the types of releases you want. (Album, EP, Single, etc etc) I generally add several depending on the artist. Album+Studio, Album+Singles+Studio, Broad (Album+Singles+EP+Soundtrack+Studio), and Everything (all) that way I can limit the clutter depending on how much I like an artist.

And as a final note; if you're ONLY using Lidarr for Deezer sourced items (ie, if you don't want to use Torrents/Usenet as a source) you can skip Lidarr and just use Deemix. It's not quite the same interface, but it serves essentially the same purpose as the Lidarr+Deemix stack when Torrents/Usenet are excluded, and requires less overhead. You might even enjoy the interface more. If interested, use your web browser to connect to the Docker container's port.

OK. That's the general stuff.

Specifically @Breakingx -- I'm not fully certain how to interpret this. If I'm making an educated guess correctly, this implies that Lidarr has sent a request to the Download Client, and that request has not appeared in the Download Client's queue or that request returned an error. I'm not a Lidarr dev, so I can't begin to diagnose or troubleshoot this specific issue. When adding Alligatoah to my own library, the ICH ICH ICH single does not show in Lidarr's list. This means Lidarr's Metadata provider does not have the track in its database, and Lidarr will be unable to act on this release in any way for now. When Lidarr shows 'ICH ICH ICH' under Singles for 'Alligatoah' (also dependant upon the Metadata Profile used for Alligatoah) I suspect everything will resolve on this issue. This should happen when the public Lidarr API instance synchronizes against the public Musicbrainz instance, which I guess to happen weekly.

Please feel free to comment/ask further if necessary. If you believe this covers it, feel free to close the issue.

codefaux commented 5 months ago

Since I was around, I checked into it, and I was correct -- Lidarr's upstream metadata has reached its sync interval, ICH ICH ICH is listed as a Single by Alligatoah, and everything works properly with the Deemix integration.

The problem was Lidarr's upstream metadata was out of sync. This is almost always going to be the cause of issues with newly released music. Closing issue, but leave a comment if you need to.