視頻文件審核增強版幫助您檢測視頻文件中的風險或違規內容。本文介紹了使用API接口進行視頻文件審核增強版的方法。
接入指引
注冊阿里云賬號:立即注冊,按照操作提示完成賬號注冊。
開通內容安全按量付費:請確保已開通服務,具體操作,請參見開通服務。開通不收費,接口接入使用后系統會按使用量自動出賬,具體信息,請參見計費說明。您也可以購買按量抵扣資源包,資源包相較于后付費存在一定階梯抵扣,適合使用量級可預期和較大的用戶,具體信息,請參見購買按量抵扣資源包。
創建AccessKey:請確保您已通過RAM創建AccessKey,具體操作,請參見創建AccessKey。如果您使用的是RAM用戶(子賬號)AccessKey,您需要通過阿里云賬號(主賬號)給RAM用戶賦予AliyunYundunGreenWebFullAccess權限,具體操作,請參見RAM授權。
開發接入:推薦使用SDK方式調用。具體信息,請參見視頻審核增強版接入指南。
視頻文件審核服務包含以下2個接口:
VideoModeration:提交視頻文件審核任務
VideoModerationResult:獲取視頻文件審核結果
提交審核任務
接口說明
業務接口:VideoModeration,視頻僅提供異步檢測接口。
支持的地域及接入地址:
地域
外網接入地址
內網接入地址
支持的服務
華東2(上海)
green-cip.cn-shanghai.aliyuncs.com
green-cip-vpc.cn-shanghai.aliyuncs.com
videoDetection
華北2(北京)
green-cip.cn-beijing.aliyuncs.com
green-cip-vpc.cn-beijing.aliyuncs.com
華東1(杭州)
green-cip.cn-hangzhou.aliyuncs.com
green-cip-vpc.cn-hangzhou.aliyuncs.com
華南1(深圳)
https://green-cip.cn-shenzhen.aliyuncs.com
暫無
新加坡
green-cip.ap-southeast-1.aliyuncs.com
green-cip-vpc.ap-southeast-1.aliyuncs.com
videoDetection_cb
計費信息:
該接口為收費接口。會根據您設置的視頻畫面檢測策略和視頻語音檢測策略進行計費,視頻畫面可選擇多個服務(service),將按照畫面截幀數量x每個服務的單價進行累加計費。如果同時檢測視頻中的語音內容違規,則還將增加視頻時長x語音違規功能的單價的費用。關于計費方式,請參見計費說明。
檢測對象:支持檢測視頻文件。
返回結果:異步檢測任務不會實時返回檢測結果,您需要通過callback或者輪詢的方式獲取檢測結果。檢測結果最長保留24小時。
callback獲取檢測結果:提交異步檢測任務時,在請求參數中傳入callback參數,用來自動接收檢測結果。
輪詢獲取檢測結果:提交異步檢測任務時,無需傳入callback參數;提交異步檢測任務后,調用結果查詢接口獲取檢測結果。
視頻要求:
視頻文件鏈接支持以下協議:HTTP和HTTPS。
視頻文件支持以下格式:AVI、FLV、MP4、MPG、ASF、WMV、MOV、WMA、RMVB、RM、FLASH、TS。
視頻大小限制:默認單個視頻大小不超過500 MB。如果您的需求超過500 MB,您可以對視頻進行分片處理。或者聯系工作人員幫您調整大小限制。
視頻文件檢測的時間依賴于視頻的下載時間。請保證被檢測的視頻文件所在的存儲服務穩定可靠,建議您使用阿里云OSS存儲服務存儲視頻文件。
檢測規則配置:
初次調用時請在內容安全控制臺進行視頻審核規則設置。
如果您不設置,視頻審核增強版API的默認配置如下:
視頻文件檢測(videoDetection)
視頻文件檢測_海外版(videoDetection_cb)
固定頻率截幀:1秒/幀
視頻畫面檢測服務:視頻/直播截圖檢測(liveStreamCheck)
視頻語音檢測:開啟
視頻語音檢測服務:音視頻媒體檢測(audio_media_detection)
結果返回方式:僅返回有檢出風險的結果
固定頻率截幀:1秒/幀
視頻畫面檢測服務:通用基線檢測_海外版(baselineCheck_cb)
視頻語音檢測:開啟
視頻語音檢測服務:音視頻媒體檢測_海外版(audio_media_detection_cb)
結果返回方式:僅返回有檢出風險的結果
QPS限制
本接口的單用戶QPS限制為100次/秒,并發審核路數限制為50路(即同一時間只能處理50個任務,如需要提升并發路數請咨詢您的商務經理)。超過限制,API調用會被限流,這可能會影響您的業務,請合理調用。
調試
在接入前,您也可以通過阿里云OpenAPI在線調試VideoModeration接口,查看調用示例代碼及SDK依賴信息,方便概覽接口的使用方法和參數。
在線調試能力是基于當前登錄賬號調用內容安全的API接口,因此調用量會計入賬號的收費用量中。
請求參數
名稱 | 類型 | 是否必須 | 示例值 | 描述 |
Service | String | 是 | videoDetection | 審核服務類型。如下:
|
ServiceParameters | JSONString | 是 | 審核服務需要的參數集。JSON字符串格式,關于每個字符串的描述,請參見表1 ServiceParameters。 |
表1 ServiceParameters
名稱 | 類型 | 是否必選 | 示例值 | 描述 |
url | String | 是。視頻審核增強版支持兩種方式傳入視頻,請您選擇其中一種:
| http://www.aliyundoc.com/a.flv | 待檢測對象的URL,請確保該URL能通過公網訪問到,或傳入同區域的OSS內網地址。 說明 URL地址中不能包含中文,長度不超過2048個字符,且一次請求請確保僅傳入1條URL。 |
ossBucketName | String | bucket_01 | 已授權OSS空間的Bucket名。 說明 使用OSS視頻內網地址時必須先使用阿里云賬號(即主賬號)訪問云資源訪問授權頁面進行授權。 | |
ossObjectName | String | 20240307/07/28/test.flv | 已授權OSS空間的文件名。 | |
ossRegionId | String | cn-shanghai | OSS Bucket所在區域。 | |
callback | String | 否 | http://www.aliyundoc.com | 檢測結果回調通知您的URL,支持使用HTTP和HTTPS協議的地址。該字段為空時,您必須定時輪詢檢測結果。 callback接口必須支持POST方法、UTF-8編碼的傳輸數據,以及表單參數checksum和content。 內容安全按照以下規則和格式設置checksum和content,調用您的callback接口返回檢測結果。
說明 您的服務端callback接口收到內容安全推送的結果后,如果返回的HTTP狀態碼為200,則表示接收成功,其他的HTTP狀態碼均視為接收失敗。接收失敗時,內容安全將最多重復推送16次檢測結果,直到接收成功。重復推送16次后仍未接收成功,則不再推送,建議您檢查callback接口的狀態。 |
seed | String | 否 | abc**** | 隨機字符串,該值用于回調通知請求中的簽名。 由英文字母、數字、下劃線(_)組成,不超過64個字符。由您自定義,用于在接收到內容安全的回調通知時校驗請求由阿里云內容安全服務發起。 說明 當使用callback時,該字段必須提供。 |
cryptType | String | 否 | SHA256 | 使用回調通知時(callback),設置對回調通知內容進行簽名的算法。內容安全會將返回結果(由用戶uid + seed + content拼接的字符串)按照您設置的加密算法計算簽名,再發送到您的回調通知地址。取值:
|
dataId | String | 否 | videoId**** | 檢測對象對應的數據ID。 由大小寫英文字母、數字、下劃線(_)、短劃線(-)、英文句號(.)組成,不超過128個字符,可以用于唯一標識您的業務數據。 |
offline | String | 否 | false | 是否近線檢測模式。
重要 該字段為String類型。近線模式支持北京、上海、杭州區域。 |
您的服務端callback接口收到內容安全推送的結果后,如果返回的HTTP狀態碼為200,則表示接收成功,其他的HTTP狀態碼均視為接收失敗。接收失敗時,內容安全將最多重復推送16次檢測結果,直到接收成功。重復推送16次后仍未接收成功,則不再推送,建議您檢查callback接口的狀態。
返回數據
名稱 | 類型 | 示例值 | 描述 | |
Code | Integer | 200 | 狀態碼。更多信息,請參見Code 說明。 | |
Data | JSONObject | 審核結果數據。 | ||
TaskId | String | AAAAA-BBBBB | 檢測的任務ID。 | |
DataId | String | dataId0307 | 數據ID。 | |
Message | String | OK | 請求消息的響應消息。 | |
RequestId | String | ABCD1234-1234-1234-1234-123**** | 請求ID。 |
示例
請求示例
{
"Service": "videoDetection",
"ServiceParameters": {
"url": "http://www.aliyundoc.com/a.flv",
"dataId": "videoId****"
}
}
正常返回示例
{
"Message": "OK",
"Code": 200,
"Data": {
"TaskId": "AAAAA-BBBBB",
"DataId": "videoId****"
},
"RequestId": "ABCD1234-1234-1234-1234-123****"
}
獲取視頻文件審核任務結果
接口說明
業務接口:VideoModerationResult,表示獲取視頻文件審核任務結果。
計費信息:該接口不計費。
查詢超時:建議您將查詢間隔設置為30秒(即在提交異步檢測任務30秒后查詢結果),最長不能超出24小時,否則結果將會自動刪除。
QPS限制
本接口的單用戶QPS限制為100次/秒。超過限制,API調用會被限流,這可能會影響您的業務,請合理調用。
調試
在接入前,您也可以通過阿里云OpenAPI在線調試VideoModerationResult接口,查看調用示例代碼及SDK依賴信息,方便概覽接口的使用方法和參數。
請求參數
名稱 | 類型 | 是否必選 | 示例值 | 描述 |
Service | String | 是 | videoDetection | 審核服務類型,需要和提交審核任務的審核服務類型保持一致。 |
ServiceParameters | JSONString | 是 | 審核服務需要的參數集。JSON字符串格式,關于每個字符串的描述,請參見表1 ServiceParameters。 |
表1 ServiceParameters
名稱 | 類型 | 是否必選 | 示例值 | 描述 |
taskId | string | 是 | abcd**** | 要查詢的檢測任務的taskId,每次支持輸入一個taskId。 說明 您在提交檢測任務后,可以從返回數據中獲取檢測任務的taskId。 |
返回數據
名稱 | 類型 | 示例值 | 描述 |
RequestId | String | ABCD1234-1234-1234-1234-123**** | 本次調用請求的ID,是由阿里云為該請求生成的唯一標識符,可用于排查和定位問題。 |
Data | Object | 視頻內容檢測結果。更多信息,請參見表2 Data。 | |
Code | String | 200 | 狀態碼。更多信息,請參見Code 說明。 |
Message | String | OK | 本次請求的響應消息。 |
表2 Data
名稱 | 類型 | 示例值 | 描述 |
DataId | String | videoId**** | 檢測對象對應的數據ID。 說明 如果在檢測請求參數中傳入了DataId,則此處返回對應的DataId。 |
TaskId | String | AAAAA-BBBBB-2024*-0307* | 檢測的任務ID。 |
RiskLevel | String | high | 視頻的風險等級,根據視頻畫面和視頻音頻綜合判斷,返回值包括:
說明 高風險內容建議直接處置;中風險內容建議人工復查;低風險內容建議在高召回需求時再做處理,日常建議和未檢測到風險做相同處理。視頻畫面風險分值可以在內容安全控制臺配置。 |
FrameResult | JSONObject | 視頻畫面檢測結果,調用成功時(code=200),返回結果中包含一個結構體,具體結構,請參見表3 FrameResult。 說明 視頻流檢測場景中,code返回280表示在檢測中,返回200表示檢測完成。在檢測中狀態時,檢測結果中包含從開始檢測到當前時間的檢測結果。 | |
AudioResult | JSONObject | 視頻語音檢測結果。返回結果中包含一個結構體,關于結構體的描述,請參見表8 audioResult。 |
表3 FrameResult
名稱 | 類型 | 示例值 | 描述 |
FrameNum | Integer | 200 | 視頻返回截幀數。 |
FrameSummarys | JSONArray | 視頻截幀標簽匯總。具體結構描述,請參見表表4 FrameSummary。 | |
RiskLevel | String | high | 視頻畫面風險等級,根據所有視頻截幀計算返回,返回值包括:
|
Frames | JSONArray | 包含命中標簽的視頻截幀的信息。具體結構描述,請參見表5 Frame。 |
表4 FrameSummary
名稱 | 類型 | 示例值 | 描述 |
Label | String | violent_armedForces | 視頻截幀標簽。 |
Description | String | 疑似含有煙火類內容元素 | 對Labal字段的說明。 重要 該字段為Label字段的解釋說明,可能會變更調整,建議根據Label字段進行處置,不要基于該字段進行結果處置。 |
LabelSum | Integer | 8 | 標簽出現次數。 |
表5 Frame
名稱 | 類型 | 示例值 | 描述 |
TempUrl | String | http://www.aliyundoc.com/test.jpg | 視頻截幀的臨時地址。30分鐘有效。 說明 若開啟了視頻證據轉存,則返回轉存的視頻截幀的OSS URL鏈接。 |
Offset | Float | 50.5 | 視頻截幀距離片頭的時間戳,單位:秒。 |
RiskLevel | String | high | 視頻截幀風險等級,根據設置的高低風險分返回,返回值包括:
說明 高風險內容建議直接處置;中風險內容建議人工復查;低風險內容建議在高召回需求時再做處理,日常建議和未檢測到風險做相同處理。視頻截幀風險分值可以在內容安全控制臺規則配置中配置。 |
Results | JSONArray | 視頻截幀檢測的風險標簽、置信分等參數結果。更多信息,請參見表6 Results。 |
表6 Results
名稱 | 類型 | 示例值 | 描述 |
Service | String | liveSteamCheck | 調用的視頻畫面服務(service)。 |
Result | Array | 視頻截幀檢測的風險標簽、置信分等參數結果。更多信息,請參見表7 Result。 |
表7 Result
名稱 | 類型 | 示例值 | 描述 |
Label | String | violent_explosion | 視頻截幀檢測運算后返回的標簽。同一張截幀可能會檢出多個標簽和分值。支持的標簽如下: |
Confidence | Float | 81.22 | 置信分值,0到100分,保留到小數點后2位。 |
Description | String | 疑似含有煙火類內容元素 | 對Labal字段的說明。 重要 該字段為Label字段的解釋說明,可能會變更調整,建議根據Label字段進行處置,不要基于該字段進行結果處置。 |
表8 audioResult
名稱 | 類型 | 示例值 | 描述 |
AudioSummarys | JSONArray | 語音標簽匯總。具體結構描述,請參見表9 AudioSummarys。 | |
RiskLevel | String | high | 視頻音頻風險等級,根據所有音頻切片計算返回,返回值包括:
|
SliceDetails | JSONArray | 語音對應的文本詳情(每一句文本對應一個元素),包含一個或者多個元素,具體結構描述,請參見表10 SliceDetails。 |
表9 AudioSummarys
名稱 | 類型 | 示例值 | 描述 |
Label | String | profanity | 視頻語音標簽。 |
LabelSum | Integer | 8 | 標簽出現次數。 |
表10 SliceDetails
名稱 | 類型 | 示例值 | 描述 |
StartTime | Integer | 0 | 句子開始的時間,單位:秒。 |
EndTime | Integer | 4065 | 句子結束的時間,單位:秒。 |
StartTimestamp | Integer | 1678854649720 | 切片開始時間戳,單位:毫秒。 |
EndTimestamp | Integer | 1678854649720 | 切片結束時間戳,單位:毫秒。 |
Text | String | 惡心的 | 語音轉換成文本內容。 |
Url | String | https://aliyundoc.com/test.wav | 如果檢測的內容是語音流,表示該段文本對應的語音流的臨時訪問地址。該地址有效時間為30分鐘,需要及時轉存。 |
Labels | String | political_content,xxxx | 標簽詳情,多個標簽以逗號分隔。包含:
|
RiskLevel | String | high | 視頻音頻切片風險等級,返回值包括:
|
RiskWords | String | AAA,BBB,CCC | 命中風險詞,多個詞以逗號分隔。 |
RiskTips | String | 色情_低俗詞,色情_描述 | 細分標簽,多個標簽以逗號分隔。 |
Extend | String | {"riskTips":"色情_低俗詞","riskWords":"色情服務"} | 保留字段。 |
示例
請求示例
{
"Service": "videoDetection",
"ServiceParameters": {
"taskId": "abcd****"
}
}
正常返回示例
僅檢測視頻圖畫
{
"Code": 200,
"RequestId": "25106421-XXXX-XXXX-XXXX-15DA5AAAC546",
"Message": "success finished",
"Data": {
"DataId": "ABCDEF-TESTDATAID",
"TaskId": "AAAAA-BBBBB-2024-0307-0728",
"RiskLevel": "medium",
"FrameResult": {
"FrameNum": 2,
"FrameSummarys": [
{
"Label": "violent_explosion",
"Description": "疑似含有煙火類內容元素",
"LabelSum": 8
},
{
"Label": "sexual_cleavage",
"Description": "疑似含有包含肢體裸露或性感內容",
"LabelSum": 8
}
],
"RiskLevel": "medium",
"Frames": [
{
"Offset": 1,
"RiskLevel": "none",
"Results": [
{
"Result": [
{
"Label": "nonLabel",
"Description": "未檢測出風險"
}
],
"Service": "baselineCheck"
},
{
"Result": [
{
"Label": "nonLabel"
}
],
"Service": "baselineCheck_pro"
}
],
"TempUrl": "http://abc.oss-cn-shanghai.aliyuncs.com/test1.jpg"
},
{
"Offset": 2,
"RiskLevel": "medium",
"Results": [
{
"Result": [
{
"Confidence": 74.1,
"Label": "violent_explosion",
"Description": "疑似含有煙火類內容元素"
}
],
"Service": "baselineCheck"
},
{
"Result": [
{
"Confidence": 1,
"Label": "sexual_cleavage",
"Description": "疑似含有包含肢體裸露或性感內容"
}
],
"Service": "baselineCheck_pro"
}
],
"TempUrl": "http://abc.oss-cn-shanghai.aliyuncs.com/test2.jpg"
}
]
}
}
}
同時檢測視頻圖畫和視頻語音
{
"Code": 200,
"RequestId": "ABCEDF-XXXX-XXXX-XXXX-202403070728520",
"Message": "success finished",
"Data": {
"DataId": "ABCDEF-TESTDATAID",
"TaskId": "AAAAA-BBBBB-2024-0307-0728",
"RiskLevel": "medium",
"AudioResult": {
"AudioSummarys": [
{
"Label": "sexual_sounds",
"LabelSum": 3
}
],
"RiskLevel": "medium",
"SliceDetails": [
{
"EndTime": 60,
"EndTimestamp": 1698912813192,
"Labels": "",
"RiskLevel": "none",
"StartTime": 30,
"StartTimestamp": 1698912783192,
"Text": "內容安全",
"Url": "http://abc.oss-cn-shanghai.aliyuncs.com/test.wav"
},
{
"EndTime": 30,
"EndTimestamp": 1698912813192,
"Extend": "{\"customizedWords\":\"服務\",\"customizedLibs\":\"test\"}",
"Labels": "C_customized",
"RiskLevel": "high",
"StartTime": 0,
"StartTimestamp": 1698912783192,
"Text": "歡迎使用阿里云內容安全服務",
"Url": "http://abc.oss-cn-shanghai.aliyuncs.com/test.wav"
}
]
},
"FrameResult": {
"FrameNum": 2,
"FrameSummarys": [
{
"Label": "violent_explosion",
"Description": "疑似含有煙火類內容元素",
"LabelSum": 8
},
{
"Label": "sexual_cleavage",
"Description": "疑似含有包含肢體裸露或性感內容",
"LabelSum": 8
}
],
"RiskLevel": "medium",
"Frames": [
{
"Offset": 1,
"RiskLevel": "none",
"Results": [
{
"Result": [
{
"Label": "nonLabel",
"Description": "未檢測出風險"
}
],
"Service": "baselineCheck"
}
],
"TempUrl": "http://abc.oss-cn-shanghai.aliyuncs.com/test1.jpg"
},
{
"Offset": 2,
"RiskLevel": "none",
"Results": [
{
"Result": [
{
"Confidence": 1,
"Label": "sexual_cleavage",
"Description": "疑似含有包含肢體裸露或性感內容"
},
{
"Confidence": 74.1,
"Label": "violent_explosion",
"Description": "疑似含有煙火類內容元素"
}
],
"Service": "baselineCheck"
}
],
"TempUrl": "http://abc.oss-cn-shanghai.aliyuncs.com/test2.jpg"
}
]
}
}
}
Code說明
以下為視頻文件審核增強版接口返回Code的含義說明,系統僅對Code返回為200和280的請求計量計費,其他Code不會計費。
Code | 說明 |
200 | 請求正?;蛘邫z測完成。 |
280 | 檢測中。 |
288 | 近線模式排隊等待中。 |
400 | 請求參數為空。 |
401 | 請求參數錯誤。 |
402 | 請求參數長度不符合接口規定,請檢查并修改。 |
403 | 請求超過QPS限制,請檢查并調整并發。 |
404 | 傳入的視頻下載遇到錯誤,請檢查或重試。 |
405 | 傳入的視頻下載超時,可能是因為視頻無法訪問,請檢查調整后重試。 |
406 | 傳入的視頻過大,請檢查調整視頻大小后再重試。 |
407 | 傳入的視頻格式暫不支持,請檢查調整后重試。 |
408 | 該賬號無權限調用該接口,可能是賬號未開通或者已欠費,或者調用賬號未被授權訪問。 |
409 | 傳入的TaskId不存在,可能是結果已經超過24小時有效期。 |
480 | 檢測并發路數超過限制,請檢查并調整并發。 |
500 | 系統異常。 |