Skip to content

Add Deezer/Wikipedia artist info as fallback for all servers#876

Open
M0Rf30 wants to merge 1 commit intodweymouth:mainfrom
M0Rf30:feat/external-artist-info
Open

Add Deezer/Wikipedia artist info as fallback for all servers#876
M0Rf30 wants to merge 1 commit intodweymouth:mainfrom
M0Rf30:feat/external-artist-info

Conversation

@M0Rf30
Copy link
Copy Markdown
Contributor

@M0Rf30 M0Rf30 commented Mar 14, 2026

Summary

As discussed in #826, this PR extracts the Deezer/Wikipedia artist info fetching into a shared fallback available for all server types (Subsonic, Jellyfin, and future MPD), following the same pattern as the existing LrcLib lyrics integration.

  • ArtistInfoFetcher — fetches artist images from Deezer and biographies from Wikipedia (with language preference and in-memory caching)
  • ArtistInfoManager — tries the server's native GetArtistInfo first, then fills in missing biography/image data from external sources
  • Settings checkbox — "Enable Deezer/Wikipedia artist info" in Advanced tab lets users disable external network requests

How it works

When a server returns incomplete artist info (empty biography or no image URL), the manager transparently queries Deezer and Wikipedia to fill the gaps. Servers that already return complete metadata (e.g. Subsonic with Last.fm configured) will see no additional network requests.

Files changed

File Change
backend/artistinfofetcher.go New — Deezer/Wikipedia fetcher (extracted from MPD PR)
backend/artistinfomanager.go New — fallback manager (server first, then external)
backend/config.go Add EnableExternalArtistInfo config field
backend/app.go Wire ArtistInfoManager into App lifecycle
ui/dialogs/settingsdialog.go Add checkbox in Advanced tab
ui/browsing/artistpage.go Use ArtistInfoManager instead of direct mp.GetArtistInfo
ui/browsing/router.go Pass ArtistInfoManager to artist page

Relation to #826

This is the prerequisite PR mentioned in the review comment. Once merged, the MPD PR (#826) can be rebased to use the shared fetcher instead of its own copy, reducing its line count.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR extracts Deezer/Wikipedia artist info fetching into a shared fallback mechanism available to all server types, following the same pattern as the existing LrcLib lyrics integration. When a server returns incomplete artist metadata (missing biography or image), the system transparently queries Deezer for images and Wikipedia for biographies.

Changes:

  • New ArtistInfoFetcher for Deezer image and Wikipedia biography retrieval with in-memory caching and request deduplication
  • New ArtistInfoManager that wraps the server's native GetArtistInfo with external fallback
  • Settings checkbox and config field to enable/disable external artist info requests

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
backend/artistinfofetcher.go New file: Deezer/Wikipedia fetcher with caching, deduplication, and concurrency limiting
backend/artistinfomanager.go New file: fallback manager that tries server first, then external sources
backend/config.go Adds EnableExternalArtistInfo config field with default true
backend/app.go Wires ArtistInfoManager into the app lifecycle and cache clearing
ui/dialogs/settingsdialog.go Adds checkbox for enabling/disabling external artist info in Advanced tab
ui/browsing/artistpage.go Uses ArtistInfoManager instead of direct server call
ui/browsing/router.go Passes ArtistInfoManager to artist page constructor
res/translations/it.json Adds Italian translation for the new setting string

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Extract artist info fetching from external sources (Deezer for images,
Wikipedia for biographies) into a shared ArtistInfoManager that works
as a fallback for all server types, not just MPD.

When a server returns incomplete artist info (missing biography or image),
the manager automatically queries Deezer and Wikipedia to fill in the gaps.
This follows the same pattern as the existing LrcLib lyrics fallback.

A new 'Enable Deezer/Wikipedia artist info' checkbox in Settings > Advanced
allows users to disable these external integrations.
@M0Rf30 M0Rf30 force-pushed the feat/external-artist-info branch from a2a9872 to 8b8e006 Compare March 15, 2026 10:45
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

Successfully merging this pull request may close these issues.

2 participants