Easily Integrate Mux Webhooks with your application.

https://docs.mux.com/guides/video/listen-for-webhooks

Steps to receive Mux Webhooks

  • Sign up for your free Hooky account.
  • Create a new Webhook Source, and select Mux. This will be the endpoint that receives webhooks on behalf of your application, and forwards them using the unified SDK.
  • Step 1
  • Step 2
  • Once a webhook is received from Mux, you'll see it under the Live Logs section of your webhook source.
  • Next, follow the examples below to integrate the Hooky SDK in ruby or javascript, and start receiving webhooks.
Save countless hours integrating Mux webhooks into your application.

Integrating Mux Webhooks Using Javascript

Integrating Mux webhooks with Hooky in your Javascript based application is straight forward. Just grab the SDK, and call a function when that webhook is received.

Integrating Mux Webhooks Using Ruby

Integrating Mux webhooks with Hooky in your Ruby or Ruby on Rails application is straight forward. Just grab the SDK, and call a method when that webhook is received.

Configuring Mux Webhook Authentication

Here's how it works

Supported Mux Webhook Events

video.asset.created

As asset has been created

video.asset.ready

An asset is ready for playback. You can now use the asset's playback_id to successfully start streaming this asset.

video.asset.errored

An asset has encountered an error. Use this to notify your server about assets with errors. Asset errors can happen for a number of reasons, most commonly an input URL that Mux is unable to download or a file that is not a valid video file.

video.asset.updated

An asset has been updated. Use this to make sure your server is notified about changes to assets.

video.asset.deleted

An asset has been deleted. Use this so that your server knows when an asset has been deleted, at which point it will no longer be playable.

video.asset.live_stream_completed

The live stream for this asset has completed. Every time a live stream starts and ends a new asset gets created and this event fires.

video.asset.static_renditions.ready

Static renditions for this asset are ready. Static renditions are streamable mp4 files that are most commonly used for allowing users to download files for offline viewing.

video.asset.static_renditions.preparing

Static renditions for this asset are being prepared. After requesting static renditions you will get this webhook when they are being prepared.

video.asset.static_renditions.deleted

Static renditions for this asset have been deleted. The static renditions (mp4 files) for this asset will no longer be available.

video.asset.static_renditions.errored

Preparing static renditions for this asset has encountered an error. This indicates that there was some error when creating static renditions (mp4s) of your asset. This should be rare and if you see it unexpectedly please open a support ticket.

video.asset.master.ready

Master access for this asset is ready. Master access is used when downloading an asset for purposes of editing or post-production work. The master access file is not intended to be streamed or downloaded by end-users.

video.asset.master.preparing

Master access for this asset is being prepared. After requesting master access you will get this webhook while it is being prepared.

video.asset.master.deleted

Master access for this asset has been deleted. Master access for this asset has been removed. You will no longer be able to download the master file. If you want it again you should re-request it.

video.asset.master.errored

Master access for this asset has encountered an error. This indicates that there was some error when creating master access for this asset. This should be rare and if you see it unexpectedly please open a support ticket.

video.asset.track.created

A new track for this asset has been created, for example a subtitle text track.

video.asset.track.ready

A track for this asset is ready. In the example of a subtitle text track the text track will now be delivered with your HLS stream.

video.asset.track.errored

A track for this asset has encountered an error. There was some error preparing this track. Most commonly this could be a text track file that Mux was unable to download for processing.

video.asset.track.deleted

A track for this asset has been deleted.

video.upload.asset_created

An asset has been created from this upload. This is useful to know what a user of your application has finished uploading a file using the URL created by a Direct Upload.

video.upload.cancelled

Upload has been canceled. This event fires after hitting the cancel direct upload API API.

video.upload.created

Upload has been created. This event fires after creating a direct upload API .

video.upload.errored

Upload has encountered an error. This event fires when the asset created by the direct upload fails. Most commonly this happens when an end-user uploads a non-video file.

video.live_stream.created

A new live stream has been created. Broadcasters with a stream_key can start sending encoder feed to this live stream.

video.live_stream.connected

An encoder has successfully connected to this live stream.

video.live_stream.recording

Recording on this live stream has started. Mux has successfully processed the first frames from the encoder. If you show a red dot icon in your UI, this would be a good time to show it.

ideo.live_stream.active

This live stream is now "active".

video.live_stream.disconnected

An encoder has disconnected from this live stream. Note that while disconnected the live stream is still status: "active".

video.live_stream.idle

The reconnect_window for this live stream has elapsed. The live stream status will now transition to "idle".

video.live_stream.updated

This live stream has been updated. For example, after resetting the live stream's stream key

video.live_stream.enabled

This live stream has been enabled. This event fires after enable live stream API API.

video.live_stream.disabled

This live stream has been disabled. This event fires after disable live stream API API. Disabled live streams will no longer accept new RTMP connections.

video.live_stream.deleted

This live stream has been deleted. This event fires after delete live stream API API API.

video.live_stream.simulcast_target.created

A new simulcast target has been created for this live stream.

video.live_stream.simulcast_target.idle

When the parent live stream is "disconnected", all simulcast targets will have be "idle".

video.live_stream.simulcast_target.starting

When the parent live stream fires "connected" then the simulcast targets transition to "starting".

video.live_stream.simulcast_target.broadcasting

This fires when Mux has successfully connected to the simulcast target and has begun pushing content to that third party.

video.live_stream.simulcast_target.errored

This fires when Mux has encountered an error either while attempting to connect to the third party streaming service or while broadcasting. Mux will try to re-establish the connection and if it does successfully the simulcast target will transition back to "broadcasting".

video.live_stream.simulcast_target.deleted

This simulcast target has been deleted.