Video Creation Callback Notification
Purpose
After a user initiates a task, the server will submit the task processing status to the user-defined callback interface via POST to the interface address set by the customer.
Callback Failure Retry
- If the interface does not return an HTTP status code of 200, the user's handling of this callback is considered failed. In the case of failure, the callback will be retried 3 times.
Callback Parameter Description
Submit Course Creation Task Callback
- Request method: POST
URL Parameters
| Parameter | Type & Range | Description |
|---|---|---|
| timestamp | long | 13-digit timestamp |
| sign | string | Signature. The signature generation rule is MD5(appSecret + timestamp). To prevent callback request forgery, be sure to verify the correctness of the sign value. |
BODY parameters:
| Parameter Name | Type and Range | Description |
|---|---|---|
| id | long | Course creation task ID |
| fileId | string | File ID of the PPT used for course creation |
| fileName | string | File name of the PPT used for course creation |
| videoName | string | Video name |
| existDigitalHuman | boolean | Whether a digital human is included |
| status | string | Status: WAITING indicates the task has been submitted successfully and is waiting for production |
| childUserInfo | Object | Sub-account information. If the course creation task was created by the main account, this field returns null. See childUserInfo field description |
| subtitleInfo | Object | Subtitle information. See subtitle information field description |
Callback Data Example
Request URL Example: https://www.example.com/xxx/callback?sign=d5079f2e8ba19e49bfd3d9575866d80f×tamp=1701964858687
Request Body (body parameter: application/json) Example
{
"existDigitalHuman": true,
"fileName": "智能制课测试PPT.pptx",
"videoName": "智能制课测试PPT",
"id": 1000,
"status": "WAITING",
"childUserInfo": {
"userId": "abc483974343",
"email": "xxx-child-user@qq.com",
"name": "张三",
"organizationId": 1001
},
"subtitleInfo": {
"enableSubtitle": "true"
}
}
Course Creation Success Callback
- Request method: POST
URL Parameters
| Parameter | Type and Range | Description |
|---|---|---|
| timestamp | long | 13-digit timestamp |
| sign | string | Signature. The signature generation rule is MD5(appSecret + timestamp). To prevent callback request forgery, please verify the correctness of the sign value. |
BODY parameters:
| Parameter Name | Type and Range | Description |
|---|---|---|
| id | long | Course creation task ID |
| fileId | string | File ID of the PPT used for course creation |
| fileName | string | File name of the PPT used for course creation |
| videoName | string | Video name |
| videoPath | string | Video URL |
| audioPath | string | Audio URL |
| videoFileSize | Long | Video file size, in bytes |
| videoImage | string | Video cover image URL |
| videoDuration | Integer | Video duration, in seconds |
| dealTime | string | Completion time (format: yyyy-MM-dd HH:mm:ss) |
| existDigitalHuman | boolean | Whether a digital human is included |
| status | string | Status, SUCCESS indicates successful course creation |
| childUserInfo | Object | Sub-account information. Returns null if the course creation task was created by the main account. See childUserInfo field description |
| subtitleInfo | Object | Subtitle information See subtitle information field description |
Callback Data Example
Request URL example: https://www.example.com/xxx/callback?sign=d5079f2e8ba19e49bfd3d9575866d80f×tamp=1701964858687
Request Body (body parameter: application/json) Example
{
"existDigitalHuman": true,
"videoPath": "https://oss-live-1.videocc.net/pptvideo/20231207/video/1000_5a8eaaceb8c58ef8c872c7dah8db71eb5453dbe25b5pptVideocommon.mp4",
"audioPath": "https://oss-live-1.videocc.net/pptvideo/20231207/video/1000_5a8eaaceb8c58ef8c872c7dah8db71eb5453dbe25b5pptVideocommon.mp3",
"fileName": "智能制课测试PPT.pptx",
"videoFileSize": 1025386,
"dealTime": "2023-12-05 14:30:30",
"videoName": "智能制课测试PPT",
"videoImage": "https://oss-live-1.videocc.net/pptvideo/20231207/image/1000_5a8eaaceb8c58ef8c872c7dah8db71eb5453dbe25b5pptVideocommon.jpeg",
"videoDuration": 62,
"id": 1000,
"status": "SUCCESS",
"childUserInfo": {
"userId": "abc483974343",
"email": "xxx-child-user@qq.com",
"name": "张三",
"organizationId": 1001
},
"subtitleInfo": {
"enableSubtitle": "true",
"subtitlePath": "http://example.com/xxx/xxx/abc.srt"
}
}
Course Creation Failure Callback
Triggered when a video creation task ultimately enters a failed state. For the same task, the callback is sent only the first time it transitions from a non-failed state to a failed state; repeated updates to the failed state will not trigger another callback.
- Request method: POST
URL Parameters
| Parameter | Type & Range | Description |
|---|---|---|
| timestamp | long | 13-digit timestamp |
| sign | string | Signature. The signature generation rule is MD5(appSecret + timestamp). To prevent callback request forgery, be sure to verify the correctness of the sign value. |
BODY parameters:
| Parameter Name | Type and Range | Description |
|---|---|---|
| id | long | Course creation task ID |
| fileId | string | File ID of the PPT used for course creation; returns an empty string if no value exists |
| fileName | string | File name of the PPT used for course creation; returns an empty string if no value exists |
| videoName | string | Video name |
| videoPath | string | Video URL; may return null on failure |
| audioPath | string | Audio URL; may return null on failure |
| videoFileSize | Long | Video file size in bytes; may return null on failure |
| videoDuration | Integer | Video duration in seconds; may return null on failure |
| videoImage | string | Video cover image URL; may return null on failure |
| dealTime | string | Completion time (format: yyyy-MM-dd HH:mm:ss); may return null on failure |
| existDigitalHuman | string | Whether a digital human is included; values are true or false |
| status | string | Status; FAIL indicates course creation failure |
| errorMessage | string | Customer-facing failure reason; returns "Video creation failed, please contact technical support" when no clear reason is available |
| source | string | Video creation source; PPT_VIDEO for PPT video, VIDEO_PRODUCE for video production |
| accountUserInfo | Object | Primary account information [See accountUserInfo field description] |
| childUserInfo | Object | Sub-account information; returns null if the course creation task was created by the primary account [See childUserInfo field description] |
| subtitleInfo | Object | Subtitle information [See subtitle information field description] |
Callback Data Example
Request URL Example: https://www.example.com/xxx/callback?sign=d5079f2e8ba19e49bfd3d9575866d80f×tamp=1701964858687
Request Body (body parameter: application/json) Example
{
"id": 1000,
"videoName": "智能制课测试PPT",
"videoPath": null,
"audioPath": null,
"videoFileSize": null,
"videoDuration": null,
"videoImage": null,
"fileId": "abc123456",
"fileName": "智能制课测试PPT.pptx",
"dealTime": null,
"existDigitalHuman": "true",
"status": "FAIL",
"source": "VIDEO_PRODUCE",
"errorMessage": "素材文件为空",
"accountUserInfo": {
"userId": "abc483974343",
"email": "xxx@qq.com"
},
"childUserInfo": null,
"subtitleInfo": {
"enableSubtitle": true,
"subtitlePath": null
}
}
Delete Course Creation Task Callback
- Request method: POST
URL Parameters
| Parameter | Type & Range | Description |
|---|---|---|
| timestamp | long | 13-digit timestamp |
| sign | string | Signature. The signature generation rule is MD5(appSecret + timestamp). To prevent callback request forgery, please verify the correctness of the sign value. |
BODY parameters:
| Parameter Name | Type and Range | Description |
|---|---|---|
| id | long | Course creation task ID |
| fileId | string | File ID of the PPT used for course creation |
| fileName | string | File name of the PPT used for course creation |
| videoName | string | Video name |
| videoPath | string | Video URL (returns null if the deleted task failed) |
| videoImage | string | Video cover image URL (returns null if the deleted task failed) |
| videoDuration | Integer | Video duration in seconds (returns null if the deleted task failed) |
| dealTime | string | Completion time (format: yyyy-MM-dd HH:mm:ss) (returns null if the deleted task failed) |
| existDigitalHuman | boolean | Whether a digital human is included |
| status | string | Status, DELETE indicates deletion of the course creation task |
| childUserInfo | Object | Sub-account information; returns null if the task was created by the main account See childUserInfo field description |
Callback Data Example
Request URL example: https://www.example.com/xxx/callback?sign=d5079f2e8ba19e49bfd3d9575866d80f×tamp=1701964858687
Request Body (body parameter: application/json) Example
{
"existDigitalHuman": true,
"videoPath": "https://oss-live-1.videocc.net/pptvideo/20231207/video/1000_5a8eaaceb8c58ef8c872c7dah8db71eb5453dbe25b5pptVideocommon.mp4",
"fileName": "智能制课测试PPT.pptx",
"dealTime": "2023-12-05 14:30:30",
"videoName": "智能制课测试PPT",
"videoImage": "https://oss-live-1.videocc.net/pptvideo/20231207/image/1000_5a8eaaceb8c58ef8c872c7dah8db71eb5453dbe25b5pptVideocommon.jpeg",
"id": 1000,
"status": "DELETE",
"childUserInfo": null
}
Description of the accountUserInfo Field
| Parameter | Type & Range | Description |
|---|---|---|
| userId | string | Main account ID |
| string | Main account email |
Description of the childUserInfo Field
| Parameter Name | Type and Range | Description |
|---|---|---|
| userId | string | Sub-account ID |
| string | Sub-account email | |
| name | string | Sub-account name |
| organizationId | Integer | Sub-account organization ID |
Subtitle Information Field Description
| Parameter | Type and Scope | Description |
|---|---|---|
| enableSubtitle | Boolean | Whether to enable subtitles |
| subtitlePath | string | Subtitle link |
Callback for Successfully Saving Course Creation Task Draft
- Request method: POST
URL Parameters
| Parameter | Type & Range | Description |
|---|---|---|
| timestamp | long | 13-digit timestamp |
| sign | string | Signature. The signature generation rule is MD5(appSecret + timestamp). To prevent callback request forgery, be sure to verify the correctness of the sign value. |
BODY parameters:
| Parameter Name | Type and Range | Description |
|---|---|---|
| id | long | Course creation task ID |
| fileId | string | File ID of the PPT used in the draft; returns an empty string if no PPT is selected or provided |
| fileName | string | File name of the PPT used in the draft; returns an empty string if no PPT is selected or provided |
| videoName | string | Video name |
| existDigitalHuman | boolean | Whether a digital human is included |
| clientIp | String | IP address of the modifier |
| status | string | Status; DRAFT indicates the draft was successfully saved |
Callback Data Example
Request URL example: https://www.example.com/xxx/callback?sign=d5079f2e8ba19e49bfd3d9575866d80f×tamp=1701964858687
Request Body (body parameter: application/json) Example
{
"existDigitalHuman": true,
"fileId": "2c38b75fc16a1dee3822950fa817d477915c3aad3apptVideocommon",
"fileName": "智能制课测试PPT.pptx",
"videoName": "智能制课测试PPT",
"id": 1000,
"clientIp": "183.22.1.33",
"status": "DRAFT"
}
When no PPT is selected or passed in, the fileId and fileName fields are still returned, with their values being empty strings:
{
"existDigitalHuman": true,
"fileId": "",
"fileName": "",
"videoName": "智能制课测试PPT",
"id": 1000,
"clientIp": "183.22.1.33",
"status": "DRAFT"
}
How to Set Up
Through backend settings:
Log in to your account - Go to Cloud Live Streaming - Click Development Settings - Click Callback Settings - Video Creation Information Callback
Note: The submitted API endpoint must start with http:// or https://.
