Video webhooks

The HTTP calls a video platform makes to your server the moment something happens — a video finished encoding, a live stream went on air — so your product reacts without polling.

Updated: November 2026 6 min read Developers
In short

A webhook is the video platform calling your backend when an event happens — encoding finished, stream started — so you publish, notify or update records instantly; viewer actions such as finishing a video come from player events instead.

What are video webhooks?

A webhook is an HTTP request a platform sends to a URL you register whenever a particular event happens. For video, those events are things that take time or happen on their own schedule: an upload finishes transcodingTranscodingRe-encoding a source video into multiple resolutions and bitrates so a player can switch between quality levels on the fly.Open definition →, a live streamLive streamReal-time video delivered as it is captured, transcoded and segmented on the fly — webinars, events, broadcasts.Open definition → connects or ends, a recording becomes available. The request carries a JSON payload describing what changed.

The alternative is polling — asking the video APIVideo APIUpload, transcode, store, protect and stream video through HTTP calls — the infrastructure under a product’s video feature, without building it.Open definition → every few seconds whether the video is ready yet. Polling wastes requests, adds delay and runs into rate limits. Webhooks invert it: the platform tells you once, at the right moment.

What teams automate with webhooks

EventWhat your backend does
Video processing status changesPublish the lesson, notify the uploader, unlock the product page
Live stream createdAdd the event to a schedule, send invitations
Live stream connectedMark the event “on air”, open the chat, alert subscribers
Live stream disconnectedShow a “we’ll be right back” state, page the producer
Live stream finishedClose the chat, queue the recording for publishing
Live stream cancelledNotify registrants, free the slot

Webhooks vs player events

Webhooks describe what happens on the platform. What a viewer does — starts, pauses, reaches the end — happens in the player, in their browser or app. To record that a user finished a video, or to sync course progress with an LMS, listen to player events and send them to your backend yourself:

Load the player API

Embed the player through its JavaScript or native SDK rather than a bare iframe.

Subscribe to events

Listen for progress (time updates) and completion (ended) for the signed-in user.

Post to your backend

Send user, video and position to your own endpoint, throttled — for example every 10 seconds and on completion.

Update the record

Your server writes progress to the database or LMS, and can resume playback from the last position next time.

Handling webhooks safely

  • Authenticate the sender. Accept webhook calls only with credentials you configured — basic auth on the endpoint, a shared secret or a signature — so nobody can fake a “video ready” event.
  • Answer fast, work later. Return 2xx immediately and do slow work in a queue; a timeout may be treated as a failure and retried.
  • Make handlers idempotent. The same event can arrive twice. Key your processing on the video or event ID so a repeat changes nothing.
  • Don’t trust order. Events can arrive out of sequence; read the status in the payload rather than assuming the previous step happened.

Further reading

Denis Konnov

Written by

Denis Konnov Verified

CMO at Kinescope

Denis leads marketing and content at Kinescope, working closely with the platform's engineers. This glossary is reviewed and kept up to date by the team building Kinescope's streaming, encoding and CDN delivery infrastructure.

FAQ

Can’t find the answer you need? Check out our Help Center.

A webhook makes the video platform call your backend the moment an event happens — a video finishes processing, a live stream starts or ends — with a JSON payload. Your code can then publish the video, notify users or update records instantly, without polling the API.

Polling means your server repeatedly asks the API whether something has changed; a webhook means the platform tells you once when it does. Webhooks are faster, use far fewer requests and do not hit rate limits.

Use player events rather than webhooks: load the player through its JavaScript API or SDK, listen for the ended event (and time updates for progress), and send the user, video and position to your own backend, which records completion in your database or LMS.

Capture progress in the player with its event API, post it to your backend at intervals and on completion, and have the backend write it to the LMS — through its API, or as xAPI statements if the LMS uses a learning record store.