Video Webhooks
video.created
- Event for when a new VOD video is created.
- Event payload:
{
"eventTime": "2024-07-17T11:17:25.7659945Z",
"eventType": "video.created",
"data": {
"Id": "{Id}",
"Title": "{Title}",
"Author": "{Author}"
},
"projectId": "{projectId}"
}
video.updated
- Event for when a video is updated.
- Event payload:
{
"eventTime": "2024-07-17T11:27:02.140205Z",
"eventType": "video.updated",
"data": {
"PublicId": "{PublicId}",
"Id": "{Id}",
"Name": "{Name}",
"Title": "{Title}",
"Description": "",
"ThumbnailUrl": "{ThumbnailUrl}",
"FilmstripUrl": "{FilmstripUrl}",
"FilmstripVttUrl": "{FilmstripVttUrl}",
"InsertDate": "2024-07-17T11:17:25.5992645",
"PublishStatusId": 9,
"PublishStatusName": "PartiallyReady",
"Duration": 30,
"SkipIntroState": false,
"CustomOverlayState": false,
"ChapterState": false,
"CanEmbed": true,
"CanPreview": true,
"Source": "",
"Author": "",
"IsLive": "False",
"VisibilityOptionId": 1,
"VisibilityOption": "Public",
"VideoLockState": false,
"LockAfter": 0,
"Password": "",
"PasswordProtectedTitle": "",
"PasswordProtectedDescription": "",
"TagNames": [],
"CustomParameters": [],
"CustomOverlays": [],
"Chapters": []
},
"projectId": "{projectId}"
}
video.deleted
- Event for when a video is deleted.
- Event payload:
{
"eventTime": "2024-07-17T11:28:18.1339113Z",
"eventType": "video.deleted",
"data": {
"Id": "{Id}",
"Title": "{Title}"
},
"projectId": "{projectId}"
}
video.publish.status.changed
- Event for when a video’s publish status changes.
- Publish statuses that can be sent are:
- Processing - 1
- Ready - 2
- Failed - 4
- ReEncoding -8
- Event payload:
{
"eventTime": "2024-07-17T11:18:12.9451559Z",
"eventType": "video.publish.status.changed",
"data": {
"Id": "{Id}",
"PublishStatusId": 2,
"PublishStatusName": "Ready"
},
"projectId": "{projectId}"
}
note
The video.encode.started, video.encode.completed and video.encode.errored payloads always include a PreviewState boolean, indicating whether a preview has been requested for the video file (the preview may still be Processing or have ended in Error). When PreviewState is true, the payload additionally includes PreviewStatus (Processing, Completed or Error) and PreviewSeconds (the configured preview duration in seconds). These two fields are omitted when PreviewState is false.
video.encode.started
- Event for when a video starts encoding.
- Event payload:
{
"eventTime": "2024-07-17T11:17:33.9756162Z",
"eventType": "video.encode.started",
"data": {
"Id": "{Id}",
"VideoId": "{VideoId}",
"MediaId": "{MediaId}",
"MediaType": "Video",
"StreamUrl": "{StreamUrl}",
"StatusDescription": "Processing",
"Status": "Processing",
"Duration": 0,
"Width": 0,
"Height": 0,
"Bitrate": 0,
"AudioBitrate": 0,
"AudioSampleRate": 0,
"PreviewState": false,
"StartDateTime": "2025-02-14T13:08:28.129Z",
"EndDateTime": "2025-02-14T13:08:28.129Z"
},
"projectId": "{projectId}"
}
video.encode.completed
- Event for when a video encoding has completed
- Event payload:
{
"eventTime": "2024-07-17T11:31:31.2607547Z",
"eventType": "video.encode.completed",
"data": {
"Id": "{Id}",
"VideoId": "{VideoId}",
"MediaId": "{MediaId}",
"MediaType": "Video",
"StreamUrl": "{StreamUrl}",
"StatusDescription": "Complete",
"Status": "Complete",
"Duration": 30.036667,
"Width": 0,
"Height": 0,
"Bitrate": 0,
"AudioBitrate": 0,
"AudioSampleRate": 0,
"PreviewState": false,
"StartDateTime": "2025-02-14T13:08:28.129Z",
"EndDateTime": "2025-02-14T13:08:28.129Z"
},
"projectId": "{projectId}"
}
video.encode.errored
- Event for when a video encoding fails as a result of an error.
- Event payload:
{
"eventTime": "2023-10-19T09:32:00.4585451Z",
"eventType": "video.encode.errored",
"data": {
"AudioBitrate": 2276,
"AudioCodec": "aac",
"AudioSampleRate": 48000,
"Bitrate": 5528049,
"Duration": 323,
"Height": 1080,
"MediaId": "{MediaId}",
"Progress": 100,
"QualityType": "1080p",
"Size": 223567643,
"StatusDescription": "Error",
"StreamUrl": "",
"VideoId": "{VideoId}",
"Width": 1920,
"PreviewState": false,
"StartDateTime": "2025-02-14T13:08:28.129Z",
"EndDateTime": "2025-02-14T13:08:28.129Z"
},
"projectId": "{projectId}"
}
video.encode.quality.started
- Event for when a video’s quality encoding has started.
- Event payload:
{
"eventTime": "2024-07-17T11:17:42.7672597Z",
"eventType": "video.encode.quality.started",
"data": {
"Id": "{Id}",
"VideoId": "{VideoId}",
"MediaId": "{MediaId}",
"MediaType": "Video",
"QualityType": "320kbps_audio",
"StreamUrl": "{StreamUrl}",
"StatusDescription": "Processing",
"Status": "Processing",
"Duration": 30.036667,
"Size": 0,
"Width": 0,
"Height": 0,
"Bitrate": 0,
"AudioBitrate": 0,
"AudioSampleRate": 0,
"Progress": 0,
"StartDateTime": "2025-02-14T13:08:28.129Z",
"EndDateTime": "2025-02-14T13:08:28.129Z"
},
"projectId": "{projectId}"
}
video.encode.quality.completed
- Event for when a video’s quality has finished encoding.
- Event payload:
{
"eventTime": "2024-07-17T11:17:53.959009Z",
"eventType": "video.encode.quality.completed",
"data": {
"Id": "{Id}",
"VideoId": "{VideoId}",
"MediaId": "{MediaId}",
"MediaType": "Video",
"QualityType": "240p",
"StreamUrl": "{StreamUrl}",
"StatusDescription": "Complete",
"Status": "Complete",
"Duration": 30.036667,
"Size": 722902,
"Width": 240,
"Height": 428,
"Bitrate": 182981,
"AudioCodec": "aac",
"AudioBitrate": 2280,
"AudioSampleRate": 48000,
"Progress": 100,
"StartDateTime": "2025-02-14T13:08:28.129Z",
"EndDateTime": "2025-02-14T13:08:28.129Z"
},
"projectId": "{projectId}"
}
video.encode.quality.errored
- Event for when a video’s quality encoding has failed as a result of an error.
- Event payload:
{
"eventTime": "2023-10-19T09:32:00.4603771Z",
"eventType": "video.encode.quality.errored",
"data": {
"AudioBitrate": 2276,
"AudioCodec": "aac",
"AudioSampleRate": 48000,
"Bitrate": 5528049,
"Duration": 323,
"Height": 1080,
"MediaId": "{MediaId}",
"Progress": 100,
"QualityType": "1080p",
"Size": 223567643,
"StatusDescription": "Error",
"StreamUrl": "",
"VideoId": "{VideoId}",
"Width": 1920,
"StartDateTime": "2025-02-14T13:08:28.129Z",
"EndDateTime": "2025-02-14T13:08:28.129Z"
},
"projectId": "{projectId}"
}
video.encode.quality.deleted
- Event for when a video's quality output has been deleted (for example, by a retention policy).
- The
Reasonfield carries the deletion reason. Currently the only possible value isretention.policy. - Event payload:
{
"eventTime": "2024-07-17T11:18:01.4603771Z",
"eventType": "video.encode.quality.deleted",
"data": {
"Id": "{Id}",
"MediaType": "Video",
"QualityType": "{QualityType}",
"StreamType": "{StreamType}",
"Width": 0,
"Height": 0,
"StreamUrl": "{StreamUrl}",
"Reason": "retention.policy"
},
"projectId": "{projectId}"
}
video.encode.submitted
- Event for when a video is submitted for encoding.
- Event payload:
- StreamUrl will be provided only for videos that support OnTheFlyPackager.
{
"eventTime": "2024-07-17T11:17:31.2644329Z",
"eventType": "video.encode.submitted",
"data": {
"Id": "{Id}",
"StreamUrl": "{StreamUrl}"
},
"projectId": "{projectId}"
}
video.preview.started
- Event for when an on-demand preview starts being generated for a video.
- Event payload:
{
"eventTime": "2024-07-17T11:17:33.9756162Z",
"eventType": "video.preview.started",
"data": {
"Id": "{Id}",
"VideoId": "{VideoId}",
"MediaId": "{MediaId}",
"MediaType": "Video",
"StreamUrl": "{StreamUrl}",
"StatusDescription": "Processing",
"Status": "Processing",
"Duration": 0,
"Width": 0,
"Height": 0,
"Bitrate": 0,
"AudioBitrate": 0,
"AudioSampleRate": 0,
"PreviewState": true,
"PreviewStatus": "Processing",
"PreviewSeconds": 0,
"StartDateTime": "2025-02-14T13:08:28.129Z",
"EndDateTime": "2025-02-14T13:08:28.129Z"
},
"projectId": "{projectId}"
}
video.preview.completed
- Event for when a video's preview has finished being generated.
- Event payload:
{
"eventTime": "2024-07-17T11:31:31.2607547Z",
"eventType": "video.preview.completed",
"data": {
"Id": "{Id}",
"VideoId": "{VideoId}",
"MediaId": "{MediaId}",
"MediaType": "Video",
"StreamUrl": "{StreamUrl}",
"StatusDescription": "Complete",
"Status": "Complete",
"Duration": 30.036667,
"Width": 0,
"Height": 0,
"Bitrate": 0,
"AudioBitrate": 0,
"AudioSampleRate": 0,
"PreviewState": true,
"PreviewStatus": "Completed",
"PreviewSeconds": 0,
"StartDateTime": "2025-02-14T13:08:28.129Z",
"EndDateTime": "2025-02-14T13:08:28.129Z"
},
"projectId": "{projectId}"
}
video.preview.errored
- Event for when a video's preview generation fails as a result of an error.
- Event payload:
{
"eventTime": "2023-10-19T09:32:00.4585451Z",
"eventType": "video.preview.errored",
"data": {
"Id": "{Id}",
"VideoId": "{VideoId}",
"MediaId": "{MediaId}",
"MediaType": "Video",
"StreamUrl": "",
"StatusDescription": "Error",
"Status": "Error",
"Duration": 0,
"Width": 0,
"Height": 0,
"Bitrate": 0,
"AudioBitrate": 0,
"AudioSampleRate": 0,
"PreviewState": true,
"PreviewStatus": "Error",
"PreviewSeconds": 0,
"StartDateTime": "2025-02-14T13:08:28.129Z",
"EndDateTime": "2025-02-14T13:08:28.129Z"
},
"projectId": "{projectId}"
}
video.thumbnail.changed
- Event for when a video's thumbnail change
- Event payload:
{
"eventTime": "2024-07-17T11:26:29.4926736Z",
"eventType": "video.thumbnail.changed",
"data": {
"Id": "{Id}",
"Path": "{Path}",
"BlobPath": "{BlobPath}"
},
"projectId": "{projectId}"
}
video.image.created
- Event for when a video's thumbnail is generated
- Event payload:
{
"eventTime": "2025-05-22T12:18:27.3860094Z",
"eventType": "video.image.created",
"data": {
"ImageUrl": "{ImageUrl}",
"VideoId": "{VideoId}"
},
"projectId": "{projectId}"
}
video.animation.created
- Event for when a video's animation is generated
- Event payload:
{
"eventTime": "2025-05-22T12:22:02.7515855Z",
"eventType": "video.animation.created",
"data": {
"AnimationUrl": "{AnimationUrl}",
"VideoId": "{VideoId}"
},
"projectId": "{projectId}"
}