全部產品
Search
文件中心

Content Moderation:非同步檢測

更新時間:Jul 06, 2024

視頻審核協助您檢測視頻中的風險或違規內容,具體包括以下情境:視頻智能鑒黃、視頻暴恐涉政、視頻圖文違規、視頻不良情境、視頻logo、視頻語音違規。本文介紹了使用API介面非同步檢測視頻的方法。

(視頻非同步檢測)使用說明

業務介面:/green/video/asyncscan,表示視頻非同步檢測。

您可以調用該介面建立視頻非同步檢測任務。關於如何構造HTTP請求,請參見請求結構;您也可以直接選用已構造好的HTTP請求,更多資訊,請參見SDK概覽

  • 計費資訊

    該介面為收費介面。關於計費方式,請參見Alibaba Content Security Service產品定價

    同時檢測多個情境的情況下,將按照每個情境的檢測視頻截幀數量×每個情境的單價進行累加計費。如果同時檢測視頻中的語音內容違規,則還將增加視頻時間長度×語音違規功能的單價的費用。

  • 檢測對象

    支援檢測視頻檔案或視頻流,且視頻檔案支援通過上傳視頻截幀圖片序列或視頻URL的方式進行檢測。

  • 返回結果

    非同步檢測任務不會即時返回檢測結果,您需要通過callback或者輪詢的方式擷取檢測結果。檢測結果最長保留一小時。

    • callback擷取檢測結果:提交非同步檢測任務時,在請求參數中傳入callback參數,用來自動接收檢測結果,具體請參見(非同步檢測)請求參數

    • 輪詢擷取檢測結果:提交非同步檢測任務時,無需傳入callback參數;提交非同步檢測任務後,調用結果查詢介面擷取檢測結果,具體請參見(視頻非同步檢測結果查詢)使用說明

  • 視頻要求

    • 視頻檔案連結支援以下協議:HTTP和HTTPS。

    • 視頻檔案支援以下格式:AVIFLVMP4MPGASFWMVMOVWMARMVBRMFLASHTS

    • 視頻大小限制:預設單個視頻大小不超過200 MB。

      如果您的需求超過200 MB,需要對視頻進行分區處理。您可以加入釘群(釘群號:35573806)聯絡技術人員幫您調整大小限制。

    • 視頻流支援以下協議:RTMP、HLS、HTTP-FLV、RTSP。

    • 視頻流時間長度限制:單個視頻流檢測任務最長支援24小時,超過24小時任務自動結束。

    • 視頻檢測的時間依賴於視頻的下載時間。請保證被檢測的視頻檔案所在的儲存服務穩定可靠,建議您使用阿里雲OSS儲存服務儲存視頻檔案。

表 1. 情境說明

情境

描述

檢測結果分類

視頻智能鑒黃

檢測視頻中是否包含與性相關的情況。

正常、色情

視頻暴恐涉政

檢測視頻中是否包含暴恐涉政內容。

正常、暴恐涉政

視頻不良情境

檢測視頻中是否包含不良情境。

正常、不良情境(例如黑屏、白屏)

視頻logo

檢測視頻中是否包含特定的logo。

正常、logo

視頻圖文違規

檢測視頻中是否包含廣告或違規的文字內容。

正常、廣告或文字違規

視頻語音違規

說明

該情境僅支援通過視頻非同步檢測介面調用。如需使用,請參見非同步檢測

檢測視頻中的語音內容是否包含違規資訊。

說明

預設識別語言為中文。如果您需要識別英文內容,請聯絡商務經理。

正常、含垃圾資訊、廣告、涉政、暴恐、辱罵、色情、灌水、違禁、自訂(例如命中自訂關鍵詞)

QPS限制

本介面的單使用者QPS限制為50次/秒,並發審核路數限制為20路(即同一時間只能處理20個任務,如需要提升並發路數請諮詢您的商務經理)。超過限制,API調用會被限流,這可能會影響您的業務,請合理調用。

說明

如果您對時效性要求不高,推薦您開啟近線檢測模式(offline),近線檢測模式會在您提交任務的24小時內開始檢測。

(非同步檢測)請求參數

名稱

類型

是否必選

樣本值

描述

bizType

String

default

該欄位用於標識您的業務情境。您可以通過Alibaba Content Security Service控制台建立業務情境(具體操作,請參見自訂機審標準)。

live

Boolean

false

是否直播。取值:

  • false(預設):表示點播視訊檢測。

  • true:表示直播流檢測。

offline

Boolean

false

是否近線檢測模式。

  • false(預設):表示即時檢測模式,對於超過了並發路數限制的檢測請求會直接拒絕。

  • true:表示近線檢測模式,提交的任務不保證即時處理,但是可以排隊處理,在24小時內開始檢測。

說明

該參數僅適用於視頻檔案檢測,視頻流檢測無需傳入該參數。

scenes

StringArray

["porn"]

指定視頻檢測情境。取值:

  • porn:視頻智能鑒黃。

  • terrorism:視頻暴恐涉政。

  • live:視頻不良情境。

  • logo:視頻logo。

  • ad:視頻圖文違規。

audioScenes

StringArray

["antispam"]

指定視頻語音檢測情境,唯一取值:antispam,表示語音反垃圾。

不傳入該參數時僅檢測視頻映像內容;如果傳入該參數,則在檢測視頻中映像的同時,對視頻中語音進行檢測。

說明

如果需要檢測視頻語音,則不支援通過上傳視頻截幀序列的方式(即在task中傳入frames)進行檢測,您必須傳入的視訊或視頻流的URL地址(即在task中傳入url)進行檢測。

callback

String

http://www.aliyundoc.com

檢測結果回調通知您的URL,支援使用HTTP和HTTPS協議的地址。該欄位為空白時,您必須定時輪詢檢測結果。

callback介面必須支援POST方法、UTF-8編碼的傳輸資料,以及表單參數checksumcontent。Alibaba Content Security Service按照以下規則和格式設定checksumcontent,調用您的callback介面返回檢測結果。

  • checksum:字串格式,由使用者uid + seed + content拼成字串,通過SHA256演算法產生。使用者UID即阿里雲帳號ID,可以在阿里雲控制台查詢。為防篡改,您可以在擷取到推送結果時,按上述演算法產生字串,與checksum做一次校正。

    說明

    使用者UID必須是阿里雲帳號的UID,而不是RAM使用者的UID。

  • content:JSON字串格式,請自行解析反轉成JSON對象。關於content結果的樣本,請參見查詢檢測結果的返回樣本。

說明

您的服務端callback介面收到Alibaba Content Security Service推送的結果後,如果返回的HTTP狀態代碼為200,則表示接收成功,其他的HTTP狀態代碼均視為接收失敗。接收失敗時,Alibaba Content Security Service將最多重複推送16次檢測結果,直到接收成功。重複推送16次後仍未接收成功,則不再推送,建議您檢查callback介面的狀態。

seed

String

abc****

隨機字串,該值用於回調通知請求中的簽名。

由英文字母、數字、底線(_)組成,不超過64個字元。由您自訂,用於在接收到Alibaba Content Security Service的回調通知時校正請求由阿里雲Alibaba Content Security Service服務發起。

說明

當使用callback時,該欄位必須提供。

cryptType
String
SHA256
使用回調通知時(callback),設定對回調通知內容進行加密的演算法。Alibaba Content Security Service會將返回結果(由使用者uid + seed + content拼接的字串)按照您設定的密碼編譯演算法加密後,再發送到您的回調通知地址。取值:
  • SHA256(預設):使用SHA256密碼編譯演算法。
  • SM3:使用國密HMAC-SM3密碼編譯演算法,返回十六進位的字串,且字串由小寫字母和數字組成。

    例如,abc經國密SM3加密後返回66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0

tasks

JSONArray

指定檢測對象,JSON數組中的每個元素是一個檢測任務結構體。最多支援100個元素,即每次提交100條內容進行檢測,支援100個元素的前提是需要將並發任務調整到100個以上。關於每個元素的具體結構描述,請參見task

表 1. task

名稱

類型

是否必選

樣本值

描述

clientInfo

JSONObject

{"userId":"12023****","userNick":"Mike","userType":"others"}

用戶端資訊,請參見公用參數中的公用查詢參數。

伺服器會把全域的clientInfo和此處獨立的clientInfo合并。

說明

獨立的clientInfo優先順序更高。

dataId

String

videoId****

檢測對象對應的資料ID。

由大小寫英文字母、數字、底線(_)、短劃線(-)、英文句號(.)組成,不超過128個字元,可以用於唯一標識您的業務資料。

liveId

String

liveId****

ApsaraVideo for Live流的ID。

該參數用於ApsaraVideo for Live任務去重,防止重複資料偵測,如果傳遞該參數,會根據uid+bizType+liveId判斷是否存在檢測中的直播任務。如果存在,就直接返回已存在的直播檢測taskId,不發起新的任務。

url

String

http://www.aliyundoc.com/a.flv

公網HTTP/HTTPS URL,且長度不超過2048個字元。

說明

framesurl二選一。傳入url欄位後將按照傳視頻URL的方式計費。

frames

JSONArray

待檢測視頻的截幀資訊。frames中的每個元素是個結構體,關於每個元素的具體結構描述,請參見frame

說明

framesurl二選一。傳入url欄位後將按照傳視頻URL的方式計費。

framePrefix

String

http://www.aliyundoc.com/video/

截幀地址的首碼,與frame.url一起組成截幀的完整地址。視頻截幀的完整地址格式為framePrefix + frame.url

interval

Integer

1

視頻截幀間隔,單位為秒,取值範圍:1~600。預設值為1秒。

maxFrames

Integer

200

系統對本次檢測的視頻進行截幀的張數上限,取值範圍:5~3600,預設為200張。如需調整到更大,請提交線上服務聯絡我們。

說明
  • 該欄位僅在視頻檔案檢測中生效(live=false)。如果是視頻流檢測(live=true),則該參數無效,視頻流檢測沒有截幀數量上限。

  • 當使用OSS地址(以oss://開頭)作為視頻源地址,並且授權Alibaba Content Security Service服務訪問阿里雲MTS服務後,最大可截取20,000張,該方式不會產生額外費用。關於授權Alibaba Content Security Service訪問阿里雲MTS服務的方法,請參見授權訪問MTS服務

表 2. frame

名稱

類型

是否必選

樣本值

描述

url

String

http://www.aliyundoc.com/0B860000586C0A0300038A0460000

視頻截幀的URL,與framePrefix一起組成截幀的完整地址。視頻截幀的完整地址格式為framePrefix + frame.url

offset

Integer

10

截幀距離標題的時間戳記,單位為秒。

(非同步檢測)返回資料

名稱

類型

樣本值

描述

taskId

String

taskId****

檢測任務的ID。

dataId

String

videoId****

檢測對象對應的資料ID。

說明

如果在檢測請求參數中傳入了dataId,則此處返回對應的dataId

(非同步檢測)樣本

請求樣本

  • 傳入的視訊截幀圖片序列

    http(s)://[Endpoint]/green/video/asyncscan
    &<公用請求參數>
    {
        "scenes": [
            "porn"
        ],
        "tasks": [
            {
                "dataId": "videoId****",
                "frames": [
                    {
                        "offset": 10,
                        "url": "http://www.aliyundoc.com/0B860000586C0A0300038A0460000"
                    },
                    {
                        "offset": 20,
                        "url": "http://www.aliyundoc.com/0B860000586C0A0300038A0460001"
                    },
                    {
                        "offset": 30,
                        "url": "http://www.aliyundoc.com/0B860000586C0A0300038A0460002"
                    },
                    {
                        "offset": 40,
                        "url": "http://www.aliyundoc.com/0B860000586C0A0300038A0460003"
                    },
                    {
                        "offset": 50,
                        "url": "http://www.aliyundoc.com/0B860000586C0A0300038A0460003"
                    },
                    {
                        "offset": 60,
                        "url": "http://www.aliyundoc.com/0B860000586C0A0300038A046000x"
                    }
                ]
            }
        ]
    }
  • 傳入普通視頻檔案

    http(s)://[Endpoint]/green/video/asyncscan
    &<公用請求參數>
    {
        "scenes": [
            "porn"
        ],
        "audioScenes": [
            "antispam"
        ],
        "tasks": [
            {
                "dataId": "videoId****",
                "url": "http://www.aliyundoc.com/a.mp4",
                "interval": 1,
                "maxFrames": 200
            }
        ]
    }
  • 傳入的視訊直播流

    http(s)://[Endpoint]/green/video/asyncscan
    &<公用請求參數>
    {
        "scenes": [
            "porn"
        ],
        "live": true,
        "tasks": [
            {
                "dataId": "videoId****",
                "url": "http://www.aliyundoc.com/a.flv",
                "interval": 1,
                "maxFrames": 200
            }
        ]
    }

正常返回樣本

{
    "code": 200,
    "msg": "OK",
    "requestId": "requestID****",
    "data": [
        {
            "dataId": "videoId****",
            "taskId": "taskId****"
        }
    ]
}

(視頻非同步檢測結果查詢)使用說明

業務介面:/green/video/results,表示查詢視頻非同步檢測結果。

您可以調用該介面查詢視頻非同步檢測任務的結果。關於如何構造HTTP請求,請參見請求結構;您也可以直接選用已構造好的HTTP請求,更多資訊,請參見SDK概覽

  • 計費資訊

    該介面不計費。

  • 查詢逾時

    建議您將查詢間隔設定為30秒(即在提交非同步檢測任務30秒後查詢結果),最長不能超出4個小時,否則結果將會丟失。

QPS限制

本介面的單使用者QPS限制為50次/秒。超過限制,API調用會被限流,這可能會影響您的業務,請合理調用。

(結果查詢)請求參數

名稱

類型

是否必選

樣本值

描述

body

JSONArray

["taskId****","taskId****"]

要查詢的檢測任務的taskId列表。數組中的元素個數不超過100個。

您在提交檢測任務後,可以從返回資料中擷取檢測任務的taskId

(結果查詢)返回資料

名稱

類型

樣本值

描述

code

Integer

200

錯誤碼,和HTTP狀態代碼一致。

更多資訊,請參見公用錯誤碼

msg

String

OK

請求資訊的響應資訊。

dataId

String

videoId****

檢測對象對應的資料ID。

說明

如果在檢測請求參數中傳入了dataId,則此處返回對應的dataId

taskId

String

taskId****

檢測任務的ID。

results

JSONArray

返回結果,調用成功時(code=200),返回結果中包含一個或多個元素。每個元素是個結構體,具體結構描述,請參見result

說明

視頻流檢測情境中,code返回280表示在檢測中,返回200表示檢測完成。在檢測中狀態時,檢測結果中包含從開始檢測到目前時間檢測到的結果。

audioScanResults

JSONArray

視頻語音檢測結果。具體結構描述,請參見audioScanResult

表 3. result

名稱

類型

樣本值

描述

scene

String

porn

視頻檢測情境,和調用請求中的情境對應。取值:

  • porn:視頻智能鑒黃。

  • terrorism:視頻暴恐涉政。

  • live:視頻不良情境。

  • logo:視頻logo。

  • ad:視頻圖文違規。

label

String

porn

視頻檢測結果的分類。不同檢測情境的結果分類不同,具體如下:

  • 視頻智能鑒黃(porn)結果分類:

    • normal:正常

    • porn:色情

  • 視頻暴恐涉政(terrorism)結果分類:

    • normal:正常

    • terrorism:暴恐涉政

  • 視頻不良情境(live)結果分類:

    • normal:正常

    • live:包含不良情境

  • 視頻logo(logo)結果分類:

    • normal:正常

    • logo:包含logo

  • 視頻圖文違規(ad)結果分類:

    • normal:正常

    • ad:包含廣告或文字違規資訊

sublabel

String

porn

如果檢測情境包含智能鑒黃(porn)和暴恐涉政(terrorism),則該欄位可以返回檢測結果的細分類標籤。

該欄位預設不會返回。

suggestion

String

block

建議您執行的後續操作。取值:

  • pass:結果正常,無需進行其餘操作。

  • review:結果不確定,需要進行人工審核。

  • block:結果違規,建議直接刪除或者限制公開。

rate

Float

99.2

信賴度分數,取值範圍:0(表示信賴度最低)~100(表示信賴度最高)。

如果suggestionpass,則信賴度越高,表示內容正常的可能性越高;如果suggestionreviewblock,則信賴度越高,表示內容違規的可能性越高。

重要

建議您參考suggestionlabel(或者部分介面返回的sublabel)結果用於內容違規判定。

frames

JSONArray

包含違規內容的視頻截幀的資訊。具體結構描述,請參見frame

hintWordsInfo

JSONArray

視頻中含有廣告或文字違規資訊時,返回視頻中廣告文字命中的風險關鍵詞資訊。具體結構描述,請參見hintWordsInfo

說明

只有圖文違規(ad)情境會返回該結果。

logoData

JSONArray

視頻中含有logo時,返回識別出來的logo資訊,具體結構描述,請參見logoData

說明

只有視頻logo(logo)情境會返回該結果。

sfaceData

JSONArray

視頻中包含暴恐識涉政內容時,返回識別出來的暴恐涉政資訊,具體結構描述,請參見sfaceData

說明

只有視頻暴恐涉政(terrorism)情境會返回該結果。

表 4. frame

名稱

類型

樣本值

描述

url

String

http://www.aliyundoc.com/0B860000586C0A0

視頻截幀的地址。

offset

Integer

50

視頻截幀距離標題的時間戳記,單位:秒。

label

String

porn

視頻截幀的檢測結果分類。不同檢測情境的結果分類不同,具體如下:

  • 視頻智能鑒黃(porn)截幀結果分類:

    • normal:正常

    • sexy:性感

    • porn:色情

  • 視頻暴恐涉政(terrorism)截幀結果分類:

    • normal:正常

    • bloody:血腥

    • explosion:爆炸煙光

    • outfit:特殊裝束

    • logo:特殊標識

    • weapon:武器

    • politics:涉政

    • violence:打鬥

    • crowd:聚眾

    • parade:遊行

    • carcrash:車禍現場

    • flag:旗幟

    • location:地標

    • drug:涉毒

    • gamble:賭博

    • others:其他

  • 視頻圖文違規(ad)截幀結果分類:

    • normal:正常

    • politics:文字含涉政內容

    • porn:文字含涉黃內容

    • abuse:文字含辱罵內容

    • terrorism:文字含暴恐內容

    • contraband:文字含違禁內容

    • spam:文字含其他垃圾內容

    • npx:牛皮癬廣告

    • qrcode:包含二維碼

    • programCode:包含小程式碼

    • ad:其他廣告

  • 視頻不良情境(live)截幀結果分類:

    • normal:正常

    • meaningless:無意義(例如黑屏、白屏)

    • PIP:畫中畫

    • smoking:吸煙

    • drivelive:車內直播

    • drug:涉毒

    • gamble:賭博

  • 視頻logo(logo)截幀結果分類:

    • normal:正常

    • TV:包含受管控的logo

    • trademark:包含商標

rate

Float

99.1

信賴度分數,取值範圍:0~100,信賴度越高表示檢測結果的可信度越高。建議您不要在業務中使用該分數。

表 5. audioScanResult

名稱

類型

樣本值

描述

scene

String

antispam

視頻語音檢測情境,唯一取值:antispam,表示語音反垃圾。

label

String

customized

視頻語音的檢測結果分類。不同檢測情境的結果分類不同,具體如下:

  • normal:正常

  • spam:包含垃圾資訊

  • ad:廣告

  • politics:涉政

  • terrorism:暴恐

  • abuse:辱罵

  • porn:色情

  • flood:灌水

  • contraband:違禁

  • customized:自訂(例如命中自訂關鍵詞)

suggestion

String

block

建議您執行的後續操作。取值:

  • pass:結果正常,無需進行其餘操作。

  • review:結果不確定,需要進行人工審核。

  • block:結果違規,建議直接刪除或者限制公開。

rate

Float

99.91

信賴度分數,取值範圍:0(表示信賴度最低)~100(表示信賴度最高)。

如果suggestionpass,則信賴度越高,表示內容正常的可能性越高;如果suggestionreviewblock,則信賴度越高,表示內容違規的可能性越高。

重要

建議您參考suggestionlabel(或者部分介面返回的sublabel)結果用於內容違規判定。

details

JSONArray

語音對應的文本詳情(每一句文本對應一個元素),包含一個或者多個元素,具體結構描述,請參見detail

表 6. detail

名稱

類型

樣本值

描述

startTime

Integer

24

句子開始的時間,單位為秒。

endTime

Integer

60

句子結束的時間,單位為秒。

text

String

電腦

語音轉換成文本的結果。

label

String

normal

該句語音的檢測結果分類。取值:

  • normal:正常

  • spam:包含垃圾資訊

  • ad:廣告

  • politics:涉政

  • terrorism:暴恐

  • abuse:辱罵

  • porn:色情

  • flood:灌水

  • contraband:違禁

  • customized:自訂(例如命中自訂關鍵詞)

keyword

String

開啟

如果命中了使用者自訂關鍵詞,返回命中的關鍵詞。

libName

String

人工

如果命中了使用者自訂關鍵詞,返回關鍵詞所在詞庫。

表 7. logoData

名稱

類型

樣本值

描述

type

String

TV

識別出的logo類型,取值為TV (台標)。

name

String

***台

識別出的logo名稱。

x

Float

140

以圖片左上方為座標原點,logo地區左上方到y軸距離,單位:像素。

y

Float

68

以圖片左上方為座標原點,logo地區左上方到x軸距離,單位:像素。

w

Float

106

logo地區寬度,單位:像素。

h

Float

106

logo地區高度,單位:像素。

表 5. sfaceData
名稱類型樣本值描述
xFloat444以圖片左上方為座標原點,人臉地區左上方到y軸距離。
yFloat174以圖片左上方為座標原點,人臉地區左上方到x軸距離。
wFloat467人臉地區寬度。
hFloat467人臉地區高度。
smileRateFloat0微笑的機率。
glassesBooleanfalse是否戴眼鏡。
facesArray識別出的人臉資訊。關於具體結構描述,請參見下表face。
表 8. face

名稱

類型

樣本值

描述

name

String

xxxx

相似人物的名稱。

rate

Float

97.03

相似機率。

id

String

AliFace_001****

人臉ID。

表 9. hitLibInfo

名稱

類型

樣本值

描述

context

String

xxxx

文字命中的自訂常值內容。

libCode

String

69751

文字命中的自訂常值內容對應的庫code。

libName

String

人工

文字命中的自訂常值內容對應的庫名稱。

表 10. hintWordsInfo

名稱

類型

樣本值

描述

context

String

xxxx

文字命中的風險關鍵詞內容。

(結果查詢)樣本

請求樣本

http(s)://[Endpoint]/green/video/results
&<公用請求參數>
[
    "taskId****",
    "taskId****"
]

正常返回樣本

  • 僅檢測視頻圖畫

    {
        "code": 200,
        "msg": "OK",
        "requestId": "requestID****",
        "data": [
            {
                "code": 200,
                "msg": "OK",
                "dataId": "videoId****",
                "taskId": "taskId****",
                "results": [
                    {
                        "label": "porn",
                        "rate": 99.2,
                        "scene": "porn",
                        "suggestion": "block"
                    }
                ]
            }
        ]
    }
  • 同時檢測視頻圖畫和視頻語音

    {
        "code": 200,
        "msg": "OK",
        "requestId": "requestID****",
        "data": [
            {
                "code": 200,
                "msg": "OK",
                "dataId": "videoId****",
                "taskId": "taskId****",
                "results": [
                    {
                        "label": "porn",
                        "rate": 99.2,
                        "scene": "porn",
                        "suggestion": "block"
                    }
                ],
                "audioScanResults": [
                    {
                        "scene": "antispam",
                        "label": "customized",
                        "suggestion": "block",
                        "rate": 99.91,
                        "details": [
                            {
                                "startTime": 0,
                                "endTime": 24,
                                "text": "電腦",
                                "label": "customized"
                            },
                            {
                                "startTime": 24,
                                "endTime": 60,
                                "text": "電腦",
                                "label": "normal"
                            }
                        ]
                    }
                ]
            }
        ]
    }