beetbox / beetbox/beets

tidal: honor manually entered artist and album search terms

Open
#6,795 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
15.7k
Forks
2.1k
Avg merge
5d 4h
Merged PRs (30d)
35

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

Open the contributing guide

Research direction

Start with TidalPlugin.candidates() and item_candidates(), then trace _album_queries(items) and _item_queries(item) to see how metadata currently becomes search text. Add focused regression tests for albums and singletons showing explicit artist, album, or title terms override item metadata while barcode and ISRC lookup precedence remains unchanged.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli, search
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.