feat(art): default to host-served cover art (scales to large libraries)
CI / publish (push) Has been skipped
CI / exporter (push) Successful in 12s
CI / build (push) Successful in 20s

Adds art.mode "host" (now the default): emit each cover's local file PATH
and let the host serve the bytes via its art proxy, instead of inlining a
data URL. The reconcile payload carries no image data, so a large Playnite
library no longer exceeds the host's request-body limit. "dataurl" (inline,
small libraries) and "off" remain. Requires a host with the provider-art
proxy (punktfunk main: feat/library-local-art).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-19 00:56:15 +02:00
parent f77790db05
commit 9988729aab
6 changed files with 69 additions and 27 deletions
+7 -6
View File
@@ -63,17 +63,18 @@ maintain.
## Box art
Playnite stores cover art as **local files**, and the host only proxies Steam art — so this plugin
inlines each cover as a size-capped `data:` URL that clients render directly (no network fetch).
Playnite stores cover art as **local files** on the host. Rather than shipping image bytes in the
reconcile (which doesn't scale — a large library blows past the host's request-body limit), the plugin
sends the local file **path** and the host serves the cover through its art proxy
(`/library/art/…`, exactly like Steam art). The payload stays tiny at any library size.
| `art.mode` | Behaviour |
|--------------|-----------------------------------------------------------------|
| `dataurl` | Embed the cover (default). `maxBytes` caps a single image; oversized covers are skipped. |
| `host` | **Default.** Send the cover's local path; the host serves the bytes. Scales to thousands of titles. Requires a host with the provider-art proxy. |
| `dataurl` | Inline the cover as a size-capped `data:` URL (`maxBytes` caps one image). Self-contained, but for **small** libraries only — a big one exceeds the host's body limit. |
| `off` | Sync titles with no art (lightest payload). |
`art.includeBackground` additionally embeds the Playnite background as `hero` art (large — off by
default). For a very large library, inlined covers make a heavy library payload — the console warns
above ~3000 titles; narrow it with a source filter or set `art.mode` to `off`.
`art.includeBackground` additionally serves the Playnite background as `hero` art (off by default).
## Filters