docs: rewrite ARTWORK (mp proxy rule, true default app id)

This commit is contained in:
SirHumza committed 2026-10-06 20:31:50 +02:00
1 parent 19ceef79ce
commit 0d8a897a91
1 file changed
+23 -36
+23 -36
View File
@@ -1,46 +1,33 @@
# Cover art pipeline
## Path A: Sony TMDB icon URLs (primary, fully automatic)
How a game gets its tile. Order matters — first hit wins.
Every title lookup also queries Sony's TMDB service, which returns an
official 512x512 icon URL on Sony's CDN. The daemon sends it as
`assets.large_image` (Discord accepts external image URLs there). No
uploads, no hosting, no per-game work, works on any console. If the
service lacks the title or the network fails, the next path is tried.
## Path 1: Sony TMDB live (automatic)
## Path B: icon pack + external URLs (fallback, maintainer-hosted)
Every title lookup queries Sony's TMDB service, which returns an
official icon URL on Sony's CDN. Requires the console to reach
`tmdb.np.dl.playstation.net` — without the nanoDNS exception this
path is dead (see Troubleshooting). No uploads, no hosting, no
per-game work.
## Path A: icon pack + external URLs (recommended)
## Path 2: icon pack (fallback, maintainer-hosted)
The daemon sends `assets.large_image` as
`<art_base_url><lowercase titleId>.png` (Discord accepts external image
URLs in asset fields). Host the pack once, e.g. in this repo:
The daemon sends `<art_base_url><lowercase titleId>.png`. Default is
the project pack (`orbisrpc-host`); host your own by setting
`art_base_url`. `scripts/sync_icons.sh` pulls every
`/user/appmeta/<TITLEID>/icon0.png` off the PS4 over FTP (read-only)
into `config/icons/`. Missing files degrade to no image.
```
config/icons/cusa00740.png (512x512 PNG, pulled from the console)
```
## Path 3: uploaded Discord asset keys
`scripts/sync_icons.sh` pulls every `/user/appmeta/<TITLEID>/icon0.png`
off the PS4 over FTP (read-only) into `config/icons/`. Set
`art_base_url` in config to the hosted prefix, e.g.
`https://raw.githubusercontent.com/<you>/orbisRPC/main/config/icons/`.
Every install then shows art with zero setup. Missing files degrade to
no image. Pack hosting is a maintainer decision (game art is not ours).
Set `asset_idle` / `asset_playing` to an uploaded key to prefer that
instead — keys need no network at all. Current default
`application_id` is `1536977374795538532`. Capped at 300 assets per app.
## Path B: shared Discord application (fallback)
## Hard rule (verified on hardware)
Create an application, upload one PNG per game under Art Assets named
as the lowercase title ID, set `application_id` in config. The daemon
sends the asset key instead. Capped at 300 assets per app.
Current default: the public PS4-Rich-Presence-for-Discord application
(zorua98741/bshar1865, ID 858345055966461973), which already hosts
per-title art. Borrowed backend, credited here: if it ever goes away,
art degrades to nothing and everything else keeps working. Replace the
default with your own app ID to own the whole chain.
## Runtime behavior
URL pack wins when `art_base_url` is set, uploaded keys when only
`application_id` is set, no artwork otherwise (one log notice). Missing
art never crashes anything.
Raw external URLs and dangling keys **drop the entire activity**
silently — name, timer, everything. So every URL above is resolved
through Discord's `mp:` external-assets proxy at post time, and
dangling keys are dropped, never sent. Missing art never crashes
anything; worst case is a tile with no image.