Make Cover Art Archive album art opt-in instead of default (#232)

CAA art can be higher resolution (1200x1200+) but quality is
inconsistent — some releases have cellophane-wrapped photos or
low-quality scans. Spotify/iTunes/Deezer art is lower res (640x640)
but consistently clean and official.

New toggle: Settings → Post-Processing → "Use MusicBrainz Cover Art
Archive for album art" (off by default). Applies to both embedded
art and cover.jpg downloads.
pull/253/head
Broque Thomas 1 week ago
parent f608331867
commit 982ca77501

@ -16277,9 +16277,9 @@ def _embed_album_art_metadata(audio_file, metadata: dict):
image_data = None
mime_type = None
# Try Cover Art Archive first (often 1200x1200+, original quality)
# Try Cover Art Archive first (often 1200x1200+, original quality) — opt-in
release_mbid = metadata.get('musicbrainz_release_id')
if release_mbid:
if release_mbid and config_manager.get('metadata_enhancement.prefer_caa_art', False):
try:
caa_url = f"https://coverartarchive.org/release/{release_mbid}/front"
req = urllib.request.Request(caa_url, headers={'Accept': 'image/*'})
@ -17040,10 +17040,10 @@ def _download_cover_art(album_info: dict, target_dir: str):
image_data = None
# Try Cover Art Archive first (often 1200x1200+, original quality)
# Try Cover Art Archive first (often 1200x1200+, original quality) — opt-in
# The MBID is stored in album_info by _enhance_file_metadata before this is called
release_mbid = album_info.get('musicbrainz_release_id')
if release_mbid:
if release_mbid and config_manager.get('metadata_enhancement.prefer_caa_art', False):
try:
caa_url = f"https://coverartarchive.org/release/{release_mbid}/front"
req = urllib.request.Request(caa_url, headers={'Accept': 'image/*'})

@ -4799,6 +4799,13 @@
Download cover.jpg to album folder
</label>
</div>
<div class="form-group">
<label class="checkbox-label">
<input type="checkbox" id="prefer-caa-art">
Use MusicBrainz Cover Art Archive for album art
</label>
<small>Higher resolution but quality may vary. When off, uses Spotify/iTunes/Deezer art (consistent 640x640).</small>
</div>
<div class="form-group">
<label class="checkbox-label">
<input type="checkbox" id="lrclib-enabled" checked>

@ -5802,6 +5802,7 @@ async function loadSettingsData() {
document.getElementById('metadata-enabled').checked = settings.metadata_enhancement?.enabled !== false;
document.getElementById('embed-album-art').checked = settings.metadata_enhancement?.embed_album_art !== false;
document.getElementById('cover-art-download').checked = settings.metadata_enhancement?.cover_art_download !== false;
document.getElementById('prefer-caa-art').checked = settings.metadata_enhancement?.prefer_caa_art === true;
document.getElementById('lrclib-enabled').checked = settings.metadata_enhancement?.lrclib_enabled !== false;
// Load service master toggles
document.getElementById('embed-spotify').checked = settings.spotify?.embed_tags !== false;
@ -6836,6 +6837,7 @@ async function saveSettings(quiet = false) {
enabled: document.getElementById('metadata-enabled').checked,
embed_album_art: document.getElementById('embed-album-art').checked,
cover_art_download: document.getElementById('cover-art-download').checked,
prefer_caa_art: document.getElementById('prefer-caa-art').checked,
lrclib_enabled: document.getElementById('lrclib-enabled').checked,
tags: {
quality_tag: _getTagConfig('metadata_enhancement.tags.quality_tag'),

Loading…
Cancel
Save