Last update:2026-07-15 17:46:32
This document explains how Atomile sends secure notifications about your media processing tasks. It also describes the verification mechanism used to confirm that notifications are authentic and provides detailed information about the processing results.
To protect your security, Atomile includes an Authorization header in every notification request. This allows you to verify that the notifications are legitimate and sent by Atomile.
<AccessKey>:URLSAFE_BASE64(HMAC_SHA1(NotifyUrlWithOutQuery + "\n" + NotifyBody, SecretKey))
Where:
AccessKey is your account AccessKey.NotifyBody is the notification content.SecretKey is your account AccessKey Secret.Important: Atomile randomly selects one valid AccessKey and AccessKey Secret pair from your account to generate the
Authorizationvalue. You should keep a record of all your AccessKeys and AccessKey Secrets so that you can authenticate callback notifications by matching theAccessKeyused in the request.
When you configure a NotifyUrl, Atomile sends JSON-formatted notifications to this endpoint after your media processing task is completed or updated. The notification content is URL-safe Base64 encoded and contains detailed information about your processing tasks.
Your callback URL must meet the following requirements:
200 OK status after receiving a notification.| Field Name | Type | Description |
|---|---|---|
id |
string | The persistentId of the media processing task. |
code |
int | Task status code: • 1 - Some tasks are still running, while others have completed.• 2 - Some tasks encountered errors, while others completed or are still in progress.• 3 - All tasks completed successfully. |
desc |
string | A description corresponding to the status code. |
separate |
string | Notification type: • 0 - A single notification.• 1 - One of multiple separate notifications. |
inputkey |
string | The original file name. |
inputbucket |
string | The bucket that contains the original file. |
inputfsize |
int | The size of the original file in bytes. |
items |
array | Status information for each processing operation. |
Each item in the items array contains the following fields:
| Field Name | Type | Description |
|---|---|---|
cmd |
string | The operation command (fops). |
code |
string | Processing result code: • 2 - Failed• 3 - Successful |
costTime |
int | The transcoding time in seconds. The default value is 0. |
desc |
string | A description of the operation result. |
error |
string | Error details if processing failed. |
fsize |
int | The size of the output media in bytes. |
hash |
string | The hash value of the result. |
key |
string | The result key, in the format bucketName:key. |
url |
string | The access URL of the transcoded media. |
duration |
double | The duration of the transcoded media, in seconds. |
bit_rate |
string | The bitrate of the transcoded media. |
resolution |
string | The resolution of the transcoded video. |
detail |
array | Detailed information about each output when multiple outputs are generated. |
| Field Name | Type | Description |
|---|---|---|
fsize |
int | The size of the transcoded media file. For M3U8 format, this is the size of the manifest file. |
tssize |
int | The total size of TS files for M3U8 output. For other formats, the value is 0. |
hash |
string | The hash value of the output. |
key |
string | The output key, in the format bucketName:key. |
url |
string | The access URL of the output. |
duration |
double | The duration of the output, in seconds. |
bit_rate |
string | The bitrate of the output. |
resolution |
string | The resolution of the output video. |
{
"id": "2c90802745ee87870145ef1430f90006",
"code": 3,
"desc": "operate [\"avthumb/flv\"] is finish",
"separate": 0,
"inputkey": "aaa.flv",
"inputbucket": "alextesttwo",
"inputfsize": 20000,
"items": [
{
"cmd": "avthumb/flv",
"code": "3",
"costTime": 0,
"desc": "finish",
"error": null,
"fsize": 20000,
"hash": "FlWvHsc-CK6miygKCcLjCaQ5csNO",
"key": "alextesttwo:aaa.flv",
"url": "http://alextesttwo.com/aaa.flv",
"duration": 198.083,
"bit_rate": "1288025",
"resolution": "1280X720",
"detail": [
{
"fsize": 20000,
"tssize": 1024,
"hash": "FlWvHsc-CK6miygKCcLjCaQ5csNO",
"key": "alextesttwo:aaa.flv",
"url": "http://alextesttwo.com/aaa.flv",
"duration": 198.083,
"bit_rate": "1288025",
"resolution": "1280X720"
}
]
}
]
}