Webhooks

Reference for creating webhooks for asynchronous events.

Gumlet uses webhooks to notify your application about things that happen asynchronously, apart from the API request-response cycle. For example, you may want to update something on your end when a video asset status changes from queued to ready or erorred. When these asynchronous events happen, Gumlet will make a POST request to the address you give us and you can do whatever you need with it on your end.

Webhooks can be configured here using a webhook endpoint URL, trigger, and a secret token to ensure authenticity(You will receive it as x-gumlet-token inside the request header). Once the webhook is configured for a video source or different video sources, a notification will be sent for each event for the source/s. Currently, Gumlet supports the following two events: video.status.ready and video.status.errored

If Gumlet doesn't receive a 2xx response from your system, we will continue to try the message for the next 24 hours (with half an hour of delay between attempts).

If process_low_resolution_input flag is passed as true, and the video asset frame size is lower than the minimum supported frame size for the specified format, Gumlet will simply put your video asset into the specified format and will provide an additional warning block like below in the webhook response.

warning: {
code: 'WRN_LOW_FRAME_SIZE',
message: "Video Asset dimensions are lower than minimum supported frame size (240 pixels for HLS/DASH and 145 pixels for mp4). Any types transformation (resize, crop, pad, overlay etc.) specified would not be applied."
}
webhook response
webhook response
{
"type": "video.status.ready",
"asset_id": "5fd088e0a47da8246f1fb756",
"progress": 100,
"created_at": 1607502048309,
"status": "ready",
"tag": "Gumlet",
"input": {
"transformations": {
"resolution": [
"480p",
"540p",
"720p"
],
"format": "hls",
"audio_codec": "aac",
"video_codec": "libx264",
"thumbnail": [
"auto"
],
"thumbnail_format": "png",
"mp4_access": false
},
"metadata": {
"key1": "value1",
"key2": "value2"
}
"source_url": "https://gumlet.sgp1.digitaloceanspaces.com/video/sample_1.mp4",
"size": 15240078,
"duration": 20.32,
"aspect_ratio": "16:9",
"fps": "30000/1001",
"width": 1920,
"height": 1080
},
"output": {
"status_url": "https://api.gumlet.com/video/v1/status/5fd088e0a47da8246f1fb756",
"playback_url": "https://video.gumlet.io/5f462c1561cf8a766464ffc4/5fd088e0a47da8246f1fb756/1.m3u8",
"thumbnail_url": [
"https://video.gumlet.io/5f462c1561cf8a766464ffc4/5fd088e0a47da8246f1fb756/thumbnail-1-0.png"
],
"storage_bytes": 26683207,
"format": "hls"
}
}