Event types
| Event | Description |
|---|---|
| Stream | stream.started, stream.idle |
| Recording | recording.started, recording.ready, recording.waiting |
| Multistream | multistream.connected, multistream.error, multistream.disconnected |
| Asset | asset.created, asset.updated, asset.ready, asset.failed, asset.deleted |
| Task | task.spawned, task.updated, task.completed, task.failed |
| Access control | playback.accessControl (for gated playback; your endpoint allows or denies) |
Set up a webhook
- Create an HTTP endpoint in your app that accepts POST and returns 2XX quickly (process async if needed).
- Register in Studio — Developers → Webhooks, click Create, enter your URL and select the events you want.
- Verify signatures — Each request includes a
Livepeer-Signatureheader (timestamp and HMAC). Verify it using your webhook secret to avoid accepting forged events. See Livepeer Studio docs for the signature scheme.
webhookId, timestamp, event, and event_object (the stream, asset, or task). Use timestamp in signature verification to guard against replay.