quodlibet / quodlibet

Music player and music library manager for Linux, Windows, and macOS
https://quodlibet.readthedocs.io
GNU General Public License v2.0
1.43k stars 223 forks source link

Can't search using tags with spaces in their names #4351

Open Moonbase59 opened 1 year ago

Moonbase59 commented 1 year ago

Steps to reproduce

I’m trying to find live tracks. The most reliable way in my collection would be searching for MusicBrainz Picard’s Release Type tag.

When using FLAC, a search for "releasetype=live" works fine, but not for MP3: The tag is even suggested when I start typing "musicbrainz" but apparently tag names containing blanks cannot be accessed:

Quod Libet_004

Quod Libet_005

The search gets green but displays no results. I do have many albums that have "TXXX:MusicBrainz Album Type=album; live".

Expected Output

Search working (tag names containing blanks working), at least using some workaround like putting the name in '' or "".

Even better: Tag mapping like MusicBrainz Picard implemented, so we could search for "releasetype" and find it in all supported file types.

Having the same internal names for tags in Picard and Quod Libet would greatly enhance the user experience. Fortunately, many already work (or seem to).

MusicBrainz Picard_004

Actual Output

Empty result.

Test System

Which version of Quod Libet?

4.5.0

Which operating system

Linux Mint 21.2/Cinnamon

If it's audio-related, what back-end?

Additional Information

(included above)

declension commented 1 year ago

Without rewriting the parser a lot I don't think this is doable.

The root issue is that QL autodetects (semi-)structured queries and free-text queries, and naked spaces as musicbrainz album type=live will be detected as raw search terms .

I just checked and that turns into: <Tag names=['musicbrainz album type'], res=<Regex pattern='live' modifiers='d'>> so unexpectedly perhaps it's parsed as any of those space separated tags can be set to live. Not sure how many people use that though of course.

Moonbase59 commented 11 months ago

I understand rewriting the parser would be a little much, but maybe we could catch such tags with blanks by using quotes?