A webhook is a common way for developers to integrate real-time updates in their application by providing an endpoint which Livepeer Studio can send events to.

A webhook event refers to a specific event in Livepeer that prompts a webhook to be fired. Once an event takes place, the webhook activates, “pushing” relevant information or notifications to the application endpoint.

See Webhooks.fyi for a great explainer on what webhooks are, as well as best practices for integration.

Webhooks can be created in Studio under the Developer/Webhooks page:

Types of Events

NameDescription
stream.startedThe parent stream object’s isActive value is marked as true and the .m3u8 HLS URL works
stream.idleThe parent stream object’s isActive value should be marked as false and the .m3u8 HLS URL no longer works
recording.readyThis fires when a recording is ready to be downloaded
recording.startedThis fires when recording has started on an active stream
recording.waitingThis fires after a stream with recording on has concluded and is not yet ready to be downloaded. Typically it takes 5 minutes for recordings to be ready for download.
multistream.connectedThis fires when we’ve successfully connected to the multistream target
multistream.errorThis fires when we’ve encountered an error either while attempting to connect to the third party streaming service or while broadcasting.
multistream.disconnectedThis fires when we are no longer sending video to the multistream target.
asset.createdThis fires when a On Demand asset is created.
asset.updatedThis fires when a On Demand asset is updated. The asset payload will contain a playback URL when playback is available.
asset.readyThis fires when a On Demand asset is ready. Playback will be available with all transcoded renditions.
asset.failedThis fires when a On Demand asset fails during the upload or during processing.
asset.deletedThis fires when a On Demand asset is deleted.
task.spawnedThis fires when a task is spawned. (For example, an On Demand upload)
task.updatedThis fires when a task is updated.
task.completedThis fires when a task completes its execution successfully.
task.failedThis fires when a task has failed.
playback.accessControlA specialized webhook for playback access control. Unlike other events, this is only used for assets and streams that reference its ID on their playback policy.