Fix 'Unknown' track artists leaking from bad ID3 tags and classical schema

- hint_extractor: filter existing tags through _is_good() so 'Unknown',
  'Unknown Artist' etc. in existing ID3 tags don't override filename-parsed
  artist names
- executor: _is_classical() now returns False when track_artist is a placeholder
  ('unknown', 'unknown artist') — prevents pop albums from getting the
  Performer-Composer-Work filename schema
- executor/music_enricher: pass albumartist to _proposed_filename() so fallback
  works when track artist is missing; fix display to use albumartist fallback too

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Dieter Schlüter 2026-04-29 08:15:46 +02:00
commit aaa32622b2
3 changed files with 14 additions and 5 deletions

View file

@ -562,8 +562,10 @@ def extract_hints(scan: AlbumScan, use_ocr: bool = True) -> AlbumHints:
disc_num = int(dm.group(1))
break
title = tags.get("title") or fn_hints.get("title")
artist = tags.get("artist") or fn_hints.get("artist")
title_raw = tags.get("title") or fn_hints.get("title")
title = title_raw if _is_good(title_raw) else fn_hints.get("title")
artist_raw = tags.get("artist") or fn_hints.get("artist")
artist = artist_raw if _is_good(artist_raw) else fn_hints.get("artist")
# Tracklist-Matching: Nummer → exakter Titel → fuzzy Titel
# Wenn ein Match gefunden: disc+track aus Tracklist übernehmen (Tracklist ist