SDK / @jackmorgan/phaser-player

Player SDK

A headless TypeScript player (and matching web component) for HLS playback, wallet sign-in, and per-stream payments. One dependency — the payment plumbing is abstracted away.

v1.4.2 MIT

▶ Try the actual player

Interactive
Neon Arboretum
Velour Static · Halfdream
press play to see events fire…

Install

terminal
$ npm install @jackmorgan/phaser-player

Quickstart

player.ts
import { Player } from "@jackmorgan/phaser-player";

const player = new Player({ dailyCap: 1.00, autoPay: true });
await player.load("trk_abc123");
await player.connectWallet();
await player.play();

player.on("payment:confirmed", (e) => console.log(e.amount));

Player API

MethodReturnsDescription
load(trackId)Promise<Track>Fetch metadata + HLS manifest.
play()Promise<void>Start playback.
pause()voidPause playback.
connectWallet()Promise<Address>Opens the wallet connect sheet.
setDailyCap(amount)Promise<Permission>Authorize a daily listening cap.

Events

EventPayload
track:loaded{ track }
stream:started{ trackId }
payment:confirmed{ amount, txHash }
payment:failed{ reason, code }
💡 GOOD TO KNOW
If autoPay: false, the player pauses after each track and emits payment:required.