A cover art provider plugin for MusicBrainz Picard that fetches front covers from the public iTunes Search API.
No account, no API key, no registration.
Picard gets cover art from the Cover Art Archive
by default, which serves its images from archive.org. If either host is
unreachable on your network — a content filter, a school or workplace proxy, a
country-level block — Picard tags everything correctly but silently fails on
artwork. The symptom is usually a message like this on the Album Info → Error tab:
CAA JSON error: Unknown error
That error means Picard asked coverartarchive.org for JSON and got something
else back (typically a filter's HTML block page).
This plugin adds Apple's catalogue as an alternative source. It talks to
itunes.apple.com and downloads images from mzstatic.com, so it works
wherever those two hosts are reachable.
It is also just a useful fallback in general: Apple's catalogue covers a lot of recent and independent releases that have no art in the Cover Art Archive.
- MusicBrainz Picard 2.x
- Network access to
itunes.apple.comandis1-ssl.mzstatic.com
Developed and tested against Picard 2.13.3 on Windows. The plugin declares support for API versions 2.0 through 2.13 and guards its Qt and config imports, so it should load on older 2.x releases and on PyQt6 builds, though those are untested.
- Download
applecoverart.py. - In Picard: Options → Options… → Plugins.
- Click Install plugin from file… and pick the downloaded
.py. - Tick Apple Music cover art in the plugin list.
- Restart Picard.
Drop applecoverart.py into Picard's plugin directory, then restart Picard and
enable it under Options → Plugins.
| OS | Plugin folder |
|---|---|
| Windows | %LOCALAPPDATA%\MusicBrainz\Picard\plugins |
| macOS | ~/Library/Preferences/MusicBrainz/Picard/plugins |
| Linux | ~/.config/MusicBrainz/Picard/plugins |
Installing the plugin is not enough — you also have to turn on the provider and put it in the right order.
- Options → Options… → Cover Art
- Tick Apple Music in the Cover Art Providers list.
- Move it up with the arrow buttons so it runs before the providers you want it to take precedence over.
If the Cover Art Archive is unreachable on your network, untick Cover Art Archive and CAA Release Group as well. They will otherwise be tried first, fail, and leave the "CAA JSON error" on the Error tab even though the artwork itself is arriving from Apple.
Providers run in list order and the plugin stops as soon as another provider has already supplied a front cover, so it is safe to leave several enabled as fallbacks.
Under Options → Cover Art → Apple Music:
| Setting | Default | What it does |
|---|---|---|
| Image size | 1200 × 1200 | Apple serves any square size on demand. 600, 1200, 1400 and 3000 are offered. |
| Store country code | US |
Which country's store to search. Catalogues differ slightly by region. |
| Match confidence | 90 | Minimum score a candidate must reach before its art is used. Higher is stricter. |
The Cover Art Archive is keyed on MusicBrainz IDs, so its matches are exact. Apple has no MBIDs, so this plugin has to match on text — and naive text matching attaches the wrong cover surprisingly often, usually the deluxe edition of the album you actually have.
To avoid that, every search result is scored against tags Picard already holds:
- Album title — exact match, match ignoring a bracketed suffix, or a prefix
match, in descending order of confidence. Titles are casefolded with accents
and punctuation stripped, so
BeyoncéandBeyoncecompare equal. - Edition words —
Deluxe,Remastered,Live,EPand similar inside brackets. A candidate whose edition markers match yours scores higher, so a plain album does not get the deluxe cover when both exist. - Artist — exact or substring match against
albumartist, falling back toartist. - Track count — compared against
totaltracks. A strong signal for picking the right edition.
Only the highest scoring candidate is considered, and only if it clears the confidence threshold. If nothing is confident enough, the plugin attaches nothing and lets the next provider try, rather than guessing.
Set the log level to Debug (Help → View Error/Debug Log) to see the score and reasoning for every lookup.
- Apple's catalogue has gaps. Some albums are not in the Search API at all, in any regional store — Pink Floyd's The Dark Side of the Moon is a well-known example. There is no query that finds them. Keep another provider enabled below this one as a fallback.
- Matching is textual, not MBID-based. The scoring is conservative and rejects uncertain matches, but it cannot be perfect the way a Cover Art Archive lookup is. Unusual or heavily-retitled releases may be skipped.
- Front covers only. The plugin does not fetch back covers, booklets, or disc images.
- Artwork is square, as Apple stores it. Non-square original packaging is not preserved.
GPL v2 — see LICENSE.
Not affiliated with Apple or with the MusicBrainz project. "Apple Music" and "iTunes" are trademarks of Apple Inc.