beetbox/beets

tidal: honor manually entered artist and album search terms

Open

#6,795 opened on Jun 28, 2026

View on GitHub
 (2 comments) (0 reactions) (0 assignees)Python (1,837 forks)batch import
good first issue

Repository metrics

Stars
 (12,133 stars)
PR merge metrics
 (Avg merge 9d 12h) (46 merged PRs in 30d)

Description

Problem

The Tidal plugin ignores the artist and album entered through the importer's Enter search action. Beets passes these values to TidalPlugin.candidates(), but the plugin builds its queries from the existing item tags via _album_queries(items) instead.

This makes manual search repeat the original, incorrect search when users are trying to correct bad or missing tags. The singleton path has the same problem: item_candidates() ignores its artist and title arguments and uses _item_queries(item).

To reproduce:

  1. Enable the Tidal plugin and import an album with incorrect artist or album tags.
  2. Choose Enter search.
  3. Enter a different artist and album.
  4. Observe that Tidal searches using the original tags rather than the entered values.

Expected behavior

Tidal should use the manually entered artist and album or track title when Beets supplies explicit search terms.

Suggested fix

Build Tidal text queries from the artist and album/title arguments accepted by candidates() and item_candidates(), while retaining barcode and ISRC lookup precedence. Add focused regression tests proving that explicit search terms override item metadata for both albums and singletons.

Contributor guide