Subsonic (gonic family)

Music config redirect tested — L1→L4

Meter the Subsonic scrobble endpoint — per-play royalties for gonic and other Subsonic-API servers.

What gets metered

a scrobbled play — the sidecar handles the Subsonic GET /rest/scrobble.view call (via createSubsonicProxy in front of the server, or as the configured scrobble target) and charges RATE per submission.

Attach surface — no fork

The Subsonic API's own scrobble endpoint: either redirect the scrobble target at the sidecar or put the transparent createSubsonicProxy in front of the server — requests pass through untouched, scrobbles are metered. No server modification.

Quickstart

Run the sidecar in Subsonic mode:

PLATFORM=subsonic RATE=100 \
PAYER_WALLETS='{"<subsonic-username>":"0x…"}' \
CREATOR_WALLETS='{"<track-or-artist-id>":"0x…"}' \
FACILITATOR_URL=https://facilitator.example FACILITATOR_API_KEY=… \
npx up-integration

# optional: resolve artists through MusicBrainz instead of a static map
MUSICBRAINZ_USER_AGENT="universal-paywall/0.1 (ops@example.com)"

All values above are placeholders — supply your own facilitator, wallets, and rate. The shared prerequisites (a deployed StakeVaultFactory, a running facilitator, a wallet registry) are covered in the admin overview.

Verify

npm test -w @universal-paywall/integrations

The Subsonic adapter and proxy are covered by the package's unit suite; the live loop ran against a real gonic instance.

Notes & caveats

Links

← All integrations