Webhook

Live video status

​

Gumlet delivers this notification with HTTP POST and a JSON body to the webhook URL you configured. The x-gumlet-token header is the secret token stored on that webhook, or an empty string when none is stored. A response status from 200 through 299 is recorded as success. Any other status, a timeout, or a connection error is recorded as retrying. Gumlet waits up to 25 seconds for the response and follows up to 5 redirects.

Sent when a live video asset changes status and the webhook trigger list contains that event, or contains live-video-status. Delivery is limited to webhooks whose live workspace list includes the live source. An empty live workspace list matches every live source in the organization.

Events:

  • live.video.status.created — live session was created
  • live.video.status.preparing — session is preparing
  • live.video.status.ready — session is ready for a source to connect
  • live.video.status.connected — a source connected
  • live.video.status.active — session is streaming. Width, height, and aspect ratio are included when metadata is available
  • live.video.status.disconnected — source disconnected
  • live.video.status.complete — session ended. Recording fields are included when a recording exists

Headers

  • Secret token configured on the webhook. Compare it with the token you stored when creating the webhook. The value is an empty string when the webhook has no secret token.

Body·

required
application/json

Body posted for live.video.status.* events.

  • Live asset creation time, in milliseconds since the Unix epoch.

  • Properties: 6
  • Live asset id.

  • Current live asset status. output is omitted when this is deleted or errored.

  • Live video status event that triggered this delivery.

    values
    • live.video.status.created
    • live.video.status.ready
    • live.video.status.preparing
    • live.video.status.connected
    • live.video.status.active
    • live.video.status.complete
    • live.video.status.disconnected
  • Live asset update time, in milliseconds since the Unix epoch.

  • Deletion time in milliseconds since the Unix epoch. Present when the status is deleted or errored and a deletion time is stored.

  • Present when the asset status is errored and the asset has an error.

    Properties: 2
  • Omitted when the live asset status is deleted or errored.

    Properties: 5
  • VOD asset id of the recording. Present when the live asset status is complete and a VOD asset exists.

  • Workspace id of the recording asset. Present together with recording_asset_id.

Responses

  • Acknowledge delivery. Any status from 200 through 299 is treated as success. Any other response is recorded as retrying.

Request Example for postliveVideoStatus
{
  "input": {
    "live_video_source_id": "68678418fc386bd77fd5c689",
    "resolution": [
      "360p",
      "480p",
      "720p",
      "1080p"
    ],
    "title": "Live stream at 04:25:38 on 2nd September"
  },
  "output": {
    "playback_url": "https://video.gumlet.io/68678418fc386bd77fd5c689/68b671c1373a93b5103e1f9a/master.m3u8",
    "embed_url": "https://play.gumlet.io/embed/live/68b671c1373a93b5103e1f9a",
    "storage_size": 0,
    "duration": 0,
    "recording_playback_url": "https://video.gumlet.io/68678419fc386bd77fd5c69c/68b671c1373a93b5103e1f9c/main.m3u8"
  },
  "type": "live.video.status.complete",
  "status": "complete",
  "live_asset_id": "68b671c1373a93b5103e1f9a",
  "created_at": 1756787138405,
  "updated_at": 1756787392403,
  "recording_asset_id": "68b671c1373a93b5103e1f9c",
  "vod_collection_id": "68678419fc386bd77fd5c69c"
}
No Body