ApsaraVideo Live provides an automated review service to review live stream content for compliance. This service includes both video and audio review. The automated review service uses snapshots and audio to automatically detect potential violations. Content that violates the rules is stored in Object Storage Service (OSS), where you can query and manage it.
Prerequisites
The automated review feature is supported only in specific live centers. For more information about the supported live centers, see Supported regions.
Video review and audio review are paid services. Before you use these services, make sure that you understand their billing methods and pricing. For more information, see Billing of automated review.
Snapshots for video review are stored in OSS and incur storage fees. For more information, see Storage fees.
Background information
The automated review service uses large volumes of annotated data and deep learning algorithms to accurately detect prohibited content in live streams across multiple dimensions, such as voice and vision. The service can detect various types of violations, including pornography, terrorism, politically sensitive content, and advertisements. It also includes features to detect garbage content and review audio. This helps reduce compliance risks and lower manual review costs. Video review detects violations by analyzing snapshots. Audio review detects violations by identifying prohibited content in the audio stream. Notifications for all violations are sent through webhooks for you to process.
Configure review templates
Console
Log on to the ApsaraVideo Live console.
In the navigation pane on the left, click Feature Management > Content Moderation to go to the Content Moderation page.
Select the streaming domain that you want to configure and click the Video Moderation or Audio Moderation tab.
Click Add to configure a review template.
Video review

The following table describes the parameters for a video review template.
Parameter
Description
Application Name
The application name. The Application Name must be the same as the Application Name in the ingest URL for the configuration to take effect. You can also use a single asterisk (*) to match all AppNames.
Scenario
The following four scenarios are supported.
Pornography
Terrorism and politically sensitive content
Advertisements
Garbage content
Snapshot Interval
The snapshot interval. Unit: seconds. Value range: 5 to 3600.
Storage Location
Select the OSS storage location for the snapshots.
Audio review

The following table describes the parameters for an audio review template.
Parameter
Description
Application Name
The application name. The Application Name must be the same as the Application Name in the ingest URL for the template to take effect. The value is case-sensitive.
StreamName
The StreamName must be the same as the StreamName in the ingest URL for the template to take effect. The value is case-sensitive.
After you configure the parameters, click OK.
API operations
Video review
API
References
AddLiveSnapshotDetectPornConfig
Configure the live stream moderation service at the domain name and app levels
DeleteLiveSnapshotDetectPornConfig
UpdateLiveSnapshotDetectPornConfig
DescribeLiveSnapshotDetectPornConfig
Audio review
API
References
AddLiveAudioAuditConfig
DeleteLiveAudioAuditConfig
UpdateLiveAudioAuditConfig
DescribeLiveSnapshotDetectPornConfig
Configure a webhook address
Console operation guide
On the Video Moderation or Audio Moderation tab, set the Callback URL.

Enter the Callback URL.

Check the webhook information on your server. For information about the format of and examples of webhook messages, see Automated review webhooks.
Find the detected content in OSS.
You can find the specified content in the OSS console based on the information in the webhook.
Find the content using the AppName and StreamName.
Find the content using the ingest date.
API operation guide
Video review
API
References
AddLiveDetectNotifyConfig
Add a webhook configuration for video review
For the default format, see Default webhook format for video review.
DeleteLiveDetectNotifyConfig
UpdateLiveDetectNotifyConfig
DescribeLiveAudioAuditNotifyConfig
Audio review
API
References
AddLiveAudioAuditNotifyConfig
Add a webhook configuration for audio review
You can customize the JSON format of the webhook as needed. For the default format, see Default webhook format for audio review.
DeleteLiveAudioAuditNotifyConfig
UpdateLiveAudioAuditNotifyConfig
DescribeLiveAudioAuditNotifyConfig
Webhook format description
Default webhook format for video review
A webhook notification is sent only for video content that is identified as problematic. The notification contains the review and storage information of the snapshot that contains the problematic video content.
{
"DomainName": "example.com",
"AppName": "liveApp****",
"StreamName": "liveStream****",
"OssEndpoint": "oss-cn-hangzhou.aliyuncs.com",
"OssBucket": "liveBucket****",
"OssObject": "liveObject****.jpg",
"Result": [
{
"BizType": "example.com",
"Result": [
{"Label": "Porn", "Rate":11.1, "Suggestion": "review", "Scene":"porn", "Extent": {}},
{"Label": "Ad", "Rate":11.1, "Suggestion": "review", "Scene":"ad", "Extent": {}}
]
}
]
}
Parameter description
Parameter | Type | Description |
DomainName | String | The streaming domain. |
AppName | String | The application name. |
StreamName | String | The stream name. |
OssEndpoint | String | The endpoint of the storage object. |
OssBucket | String | The bucket of the storage object. |
OssObject | String | The filename of the storage object. |
Result | JSONArray | The detection results. For more information, see Result. |
Table 1. Result
Parameter | Type | Description |
BizType | String | The business type. You can use it to select a model. The default value is the domain name. |
Scene | String | The detection scenario.
|
Label | String | The category of the detection result. The result categories vary based on the detection scenario. For more information, see Label. |
Rate | Float | The confidence level score. Value range: 0 (lowest confidence) to 100 (highest confidence). Note This value is for reference only. We strongly recommend that you do not use it in your business. We recommend that you use the Label result to determine content violations. |
Extent | JSONObject | A reserved field. |
Table 2. Label
Parameter | Type | Description |
porn | String | The result category for pornography detection in images:
|
terrorism | String | The result category for detecting terrorism and politically sensitive content in images:
|
ad | String | The result category for text and image violations:
|
live | String | The result category for undesirable scenes:
|
logo | String | The result category for image logos:
|
By default, new users use this version. Existing users continue to use their current version. To use this version, submit a ticket. For more information about how to submit a ticket, see Contact us.
Default webhook format for audio review
A webhook notification is sent only for audio content that is identified as problematic. The notification contains the text of the problematic audio and its context from the preceding minute.
{
"domain": "example.com",
"app": "liveApp****",
"stream": "5d9747eba39b44769852d276f9ff****",
"timestamp": 1572248095,
"result": [
{
"scene": "antispam",
"label": "ad",
"suggestion": "block",
"rate": 99.91,
"details": [
{
"startTime": 1572248023,
"endTime": 1572248040,
"text": "Free 120-day accommodation rights at hotels in Dali, Longchuan, and other locations. The rights can be shared with family and friends. Visit the Yunqi Community International Hotel reception center at 96 Tuanjie Street, Mangshi, next to Yiyi KTV. Hotline: 2285699",
"label": "ad"
},
{
"startTime": 1572248040,
"endTime": 1572248070,
"text": "Classic villas at Lianghe Jinta and the second phase of the Binhu Yuan tourist town. Grand opening on November 2nd. Natural spring water, diverse and classic designs, and great value. You deserve to own one. Special offers available on the opening day. We welcome you to visit. Address: 229 Xianfeng Road, Zhedao Town, Ranhe County. Hotline: 069269557776955777",
"label": "normal"
},
{
"startTime": 1572248072,
"endTime": 1572248077,
"text": "Happy times are spent with you. Relaxing days are especially easy.",
"label": "normal"
},
{
"startTime": 1572248078,
"endTime": 1572248086,
"text": "fme043 Take a break with music. Warm songs and a cinema you miss.",
"label": "normal"
}
]
}
]
}Parameter | Type | Description |
domain | String | The streaming domain. |
app | String | The application name. |
stream | String | The stream name. |
timestamp | Int | The UNIX timestamp of the webhook. Unit: seconds. |
result | JSONArray | The detection results. For more information, see Result. |
Table 2. Result
Parameter | Type | Description |
scene | String | The detection scenario. |
label | String | The category of the detection result. Valid values:
|
suggestion | String | The recommended action. Valid values:
|
rate | Float | The confidence level score. Value range: 0 (lowest confidence) to 100 (highest confidence). Note This value is for reference only. We strongly recommend that you do not use it in your business. We recommend that you use the Label result to determine content violations. |
details | JSONArray | The text details corresponding to the audio. Each sentence corresponds to an element. It can contain one or more elements. For the structure of each element, see Detail. |
Table 3. Detail
Parameter | Type | Description |
startTime | Int | The start timestamp of the sentence. Unit: seconds. |
endTime | Int | The end timestamp of the sentence. Unit: seconds. |
text | String | The text converted from the problematic audio. |
label | String | The category of the detection result. Valid values:
|
FAQ
Does the automated review service support custom sensitive words?
No. The automated review service does not support custom sensitive words.
Does the automated review service support ingest URLs from other platforms that have authentication parameters?
No. The automated review feature does not support ingest URLs from other platforms.