A moderação de transmissão de vídeo ao vivo 2.0 ajuda a detectar conteúdo de risco no vídeo e no áudio de transmissões ao vivo. Este tópico descreve como usar operações de API para moderar transmissões ao vivo.
Guia de integração
Registre uma conta Alibaba Cloud e siga as instruções para concluir o registro.
Ative o pagamento conforme o uso para o AI Guardrails. Certifique-se de que o serviço esteja ativado. Para mais informações, consulte Ativar serviço. Não há cobrança pela ativação do serviço. Após utilizar a API, o sistema gera a fatura automaticamente com base no uso. Para mais informações, consulte Descrição de faturamento.
Crie uma AccessKey no console RAM. Para mais informações, consulte Criar uma AccessKey. Se você utilizar a AccessKey de um usuário do Resource Access Management (RAM), use sua conta Alibaba Cloud para conceder a permissão AliyunYundunGreenWebFullAccess ao usuário RAM. Para mais informações, consulte Conceder permissões a um usuário RAM.
Desenvolva e integre o serviço. Recomendamos chamar a operação usando um kit de desenvolvimento de software (SDK). Para mais informações, consulte SDK de moderação de vídeo v2.0 e guia de integração.
-
O serviço de moderação de transmissão de vídeo ao vivo inclui as três operações de API a seguir:
VideoModeration: Enviar uma tarefa de moderação de transmissão ao vivo
VideoModerationResult: Consultar o resultado de uma tarefa de moderação de transmissão ao vivo
VideoModerationCancel: Cancelar uma tarefa de moderação de transmissão ao vivo
Enviar uma tarefa de moderação
Descrição da API
Operação de API: VideoModeration. Esta operação suporta apenas moderação assíncrona para transmissões de vídeo ao vivo.
-
Regiões e endpoints suportados:
Região
Endpoint público
Endpoint VPC
Serviços suportados
Singapura
green-cip.ap-southeast-1.aliyuncs.com
green-cip-vpc.ap-southeast-1.aliyuncs.com
liveStreamDetection_global, liveStreamDetectionByVL_global
EUA (Virgínia)
https://green-cip.us-east-1.aliyuncs.com
https://green-cip-vpc.us-east-1.aliyuncs.com
liveStreamDetection_global
EUA (Vale do Silício)
https://green-cip.us-west-1.aliyuncs.com
Não disponível
Alemanha (Frankfurt)
green-cip.eu-central-1.aliyuncs.com
Não disponível
-
Faturamento:
Esta é uma operação paga. A cobrança ocorre com base nas políticas de moderação configuradas para os quadros de vídeo ao vivo e para o áudio. Para quadros de vídeo ao vivo, é possível selecionar vários serviços. A taxa total é calculada multiplicando-se o número de snapshots de vídeo pelo preço unitário de cada serviço. Caso você também modere o áudio da transmissão ao vivo em busca de violações, uma taxa adicional será cobrada. Essa taxa é calculada multiplicando-se a duração do vídeo pelo preço unitário do recurso de moderação de áudio. Para mais informações sobre os métodos de faturamento, consulte Faturamento.
Objeto de detecção: Transmissões de vídeo ao vivo.
-
Resposta: Tarefas de moderação assíncronas não retornam resultados em tempo real. Obtenha o resultado da moderação por meio de callback ou polling.
Use um callback para obter o resultado da moderação: Ao enviar uma tarefa de moderação assíncrona, especifique o parâmetro callback na solicitação para receber o resultado automaticamente.
Use polling para obter o resultado da moderação: Ao enviar uma tarefa de moderação assíncrona, não especifique o parâmetro callback. Após o envio da tarefa, chame a operação de consulta de resultados para obter o resultado da moderação.
-
Requisitos da transmissão ao vivo:
Protocolos suportados: RTMP, HLS, HTTP-FLV e RTSP.
Limite de duração da transmissão ao vivo: Uma única tarefa de moderação de fluxo de vídeo pode durar no máximo 24 horas. A tarefa termina automaticamente se exceder esse limite.
-
Configuração de regras de detecção:
Na primeira chamada, configure as regras de moderação de transmissão ao vivo no Console de Moderação de Conteúdo.
-
Se nenhuma regra for definida, a API de Moderação de Transmissão ao Vivo V2.0 utiliza as seguintes configurações padrão:
Serviço
Configurações padrão
Detecção de transmissão ao vivo (liveStreamDetection_global)
Frequência fixa de captura de quadros: 1 quadro/segundo
Serviço de detecção de quadros de vídeo: Detecção de linha de base geral (baselineCheck_global)
Detecção de áudio de vídeo: Ativada
Serviço de detecção de áudio de vídeo: Detecção de transmissão ao vivo social e de entretenimento (live_stream_detection_global)
Método de retorno de resultados: Retorna apenas resultados com ameaças detectadas
Detecção de transmissão ao vivo (modelo grande) (liveStreamDetectionByVL_global)
NotaAtualmente suportado apenas nas regiões de Pequim e Xangai. A versão de modelo grande é limitada a 10 endpoints de ingestão simultâneos.
Frequência fixa de captura de quadros: 1 quadro/segundo
Serviço de detecção de quadros de vídeo: Serviço de moderação de imagem com modelos grandes e pequenos (postImageCheckByVL)
Detecção de áudio de vídeo: Ativada
Serviço de detecção de áudio de vídeo: Detecção de transmissão ao vivo social e de entretenimento para regiões fora da China (live_stream_detection_cb)
Método de retorno de resultados: Retorna apenas resultados com ameaças detectadas
Limites de QPS
O limite de consultas por segundo (QPS) para esta operação é de 100 por usuário. O número de fluxos de moderação simultâneos é limitado a 50. Isso significa que no máximo 50 tarefas podem ser processadas ao mesmo tempo. Para aumentar o limite, entre em contato com seu gerente de contas. Se o limite for excedido, a chamada de API sofrerá throttling, o que pode afetar seus negócios. Utilize a operação de maneira adequada.
Depuração
Antes da integração, utilize o Alibaba Cloud OpenAPI para depurar a API VideoModeration online. Assim, você visualiza códigos de exemplo, informações de dependência do SDK e obtém uma visão geral dos métodos e parâmetros da API.
O recurso de depuração online utiliza a conta atualmente conectada para chamar as operações de API do AI Guardrails. Portanto, o número de chamadas é incluído no uso faturável da conta.
Parâmetros da solicitação
Nome | Tipo | Obrigatório | Exemplo | Descrição |
Service | String | Sim | liveStreamDetection_global | O tipo de serviço de moderação. Valores válidos:
|
ServiceParameters | JSONString | Sim | Os parâmetros necessários para o serviço de moderação. Este parâmetro é uma string JSON. Para mais informações sobre os parâmetros, consulte a Tabela 1. ServiceParameters. |
Tabela 1. ServiceParameters
Nome | Tipo | Obrigatório | Exemplo | Descrição |
url | String | Sim | http://www.aliyundoc.com/a.flv | A URL do objeto a ser moderado. Certifique-se de que a URL seja acessível pela Internet. A URL pode ter até 2.048 caracteres. Nota A URL não pode conter caracteres chineses. Especifique apenas uma URL por solicitação. |
callback | String | Não | http://www.aliyundoc.com | A URL para a qual o resultado da moderação é enviado via callback. HTTP e HTTPS são suportados. Se este parâmetro for deixado vazio, será necessário usar polling para obter o resultado da moderação. A interface de callback deve suportar solicitações POST, dados codificados em UTF-8 e os parâmetros de formulário checksum e content. O AI Guardrails define os parâmetros checksum e content com base nas seguintes regras e formato, e chama sua interface de callback para retornar o resultado da moderação.
Nota Após o servidor de callback receber o resultado enviado pelo AI Guardrails, um código de status HTTP 200 indica recebimento bem-sucedido. Outros códigos de status HTTP indicam falha. Em caso de falha no recebimento, o AI Guardrails tenta reenviar o resultado da moderação até 16 vezes. Se o resultado ainda não for recebido após 16 tentativas, ele deixa de ser enviado. Recomendamos verificar o status da sua interface de callback. |
seed | String | Não | abc**** | Uma string aleatória usada para a assinatura na solicitação de notificação de callback. A string pode conter letras, dígitos e sublinhados (_), com até 64 caracteres. Personalize este valor para verificar se a solicitação de notificação de callback foi iniciada pelo serviço AI Guardrails da Alibaba Cloud. Nota Este parâmetro é obrigatório ao usar um callback. |
cryptType | String | Não | SHA256 | O algoritmo de criptografia para a assinatura na notificação de callback. O AI Guardrails calcula a assinatura para o resultado retornado (a string
|
dataId | String | Não | videoId**** | O ID de dados do objeto. O ID pode conter letras maiúsculas, letras minúsculas, dígitos, sublinhados (_), hífens (-) e pontos (.), com até 128 caracteres. Use este ID para identificar exclusivamente seus dados comerciais. |
liveId | String | Não | liveId**** | O ID da transmissão de vídeo ao vivo. Este parâmetro serve para remover tarefas duplicadas de moderação de transmissão de vídeo ao vivo e evitar moderações repetidas. Se você especificar este parâmetro, o sistema verifica se há uma tarefa de moderação de transmissão ao vivo em andamento com base na combinação |
Após o servidor de callback receber o resultado enviado pelo AI Guardrails, um código de status HTTP 200 indica que o resultado foi recebido com sucesso. Outros códigos de status HTTP indicam falha. Se o resultado não for recebido, o AI Guardrails tenta reenviar o resultado da moderação até 16 vezes. Se o resultado ainda não for recebido após 16 tentativas, o AI Guardrails interrompe o envio. Recomendamos verificar o status da sua interface de callback.
Parâmetros de resposta
Nome | Tipo | Exemplo | Descrição | |
Code | Integer | 200 | O código de status. Para mais informações, consulte a Descrição de códigos. | |
Data | JSONObject | {"TaskId": "AAAAA-BBBBB"} | Os dados do resultado da moderação. | |
Message | String | OK | A mensagem de resposta da solicitação. | |
RequestId | String | ABCD1234-1234-1234-1234-123**** | O ID da solicitação. | |
Exemplos
Solicitação de exemplo
{
"Service": "liveStreamDetection_global",
"ServiceParameters": {
"url": "http://www.aliyundoc.com/a.flv",
"dataId": "videoId****",
"liveId": "liveId****"
}
}
Resposta de sucesso de exemplo
{
"Msg": "OK",
"Code": 200,
"Data":
{
"TaskId": "AAAAA-BBBBB",
"DataId": "videoId****"
},
"RequestId": "ABCD1234-1234-1234-1234-123****"
}
Consultar o resultado de uma tarefa de moderação de transmissão ao vivo
Descrição da API
Operação de API: VideoModerationResult.
Faturamento: Esta operação não é cobrada.
Tempo limite de consulta: Defina o intervalo de consulta para 30 segundos. Isso significa que você pode consultar o resultado 30 segundos após enviar a tarefa de moderação assíncrona. O período máximo de consulta é de 24 horas. Após 24 horas, o resultado é excluído automaticamente.
Retorno de resultados: Se a transmissão ao vivo estiver em andamento, os últimos 10 resultados de moderação são retornados para cada consulta. Se a transmissão ao vivo tiver terminado, todos os resultados de moderação são retornados.
Limites de QPS
O limite de QPS para esta operação é de 100 por usuário. Se o limite for excedido, a chamada de API sofrerá throttling, o que pode afetar seus negócios. Utilize a operação de maneira adequada.
Depuração
Antes da integração, utilize o Alibaba Cloud OpenAPI para depurar a API VideoModerationResult online. Assim, você visualiza códigos de exemplo, informações de dependência do SDK e obtém uma visão geral dos métodos e parâmetros da API.
Parâmetros da solicitação
Nome | Tipo | Obrigatório | Exemplo | Descrição |
Service | String | Sim | liveStreamDetection_global | O tipo de serviço de moderação. O valor deve ser igual ao tipo de serviço especificado ao enviar a tarefa de moderação. |
ServiceParameters | JSONString | Sim | Os parâmetros necessários para o serviço de moderação. Este parâmetro é uma string JSON. Para mais informações sobre os parâmetros, consulte a Tabela 1. ServiceParameters. |
Tabela 1. ServiceParameters
Nome | Tipo | Obrigatório | Exemplo | Descrição |
taskId | string | Sim | abcd**** | O taskId da tarefa de moderação a ser consultada. Especifique apenas um taskId por vez. Nota Obtenha o taskId de uma tarefa de moderação nos dados de resposta após o envio da tarefa. |
Parâmetros de resposta
|
Nome |
Tipo |
Exemplo |
Descrição |
|
RequestId |
String |
ABCD1234-1234-1234-1234-123**** |
O ID da solicitação. Trata-se de um identificador exclusivo gerado pela Alibaba Cloud para a solicitação, útil para solução de problemas. |
|
Data |
Object |
O resultado da moderação de conteúdo da transmissão ao vivo. Para mais informações, consulte a Tabela 2. Data. |
|
|
Code |
String |
200 |
O código de status. Para mais informações, consulte a Descrição de códigos. |
|
Message |
String |
OK |
A mensagem de resposta da solicitação. |
Tabela 2. Data
Nome | Tipo | Exemplo | Descrição |
DataId | String | videoId**** | O ID de dados do objeto. Nota Se o parâmetro dataId foi especificado na solicitação de moderação, o DataId correspondente é retornado. |
LiveId | String | liveId**** | O ID da transmissão ao vivo. Nota Se o parâmetro liveId foi especificado na solicitação de moderação, o LiveId correspondente é retornado. |
TaskId | String | AAAAA-BBBBB | O ID da tarefa de moderação. |
RiskLevel | String | high | O nível de risco da transmissão ao vivo. O valor é determinado com base nos resultados de moderação tanto dos quadros de vídeo quanto do áudio. Valores válidos:
Nota Recomendamos tratar conteúdos de alto risco diretamente, revisar manualmente conteúdos de risco médio e tratar conteúdos de baixo risco apenas quando alta recuperação for necessária. Nos demais casos, trate conteúdos de baixo risco da mesma forma que conteúdos sem riscos detectados. Configure as pontuações de risco para quadros de vídeo no console AI Guardrails. |
FrameResult | JSONObject | O resultado da moderação dos quadros de vídeo. Se a chamada for bem-sucedida (code=200), uma estrutura é retornada. Para mais informações sobre a estrutura, consulte a Tabela 3. FrameResult. Nota Para moderação de fluxo de vídeo, o código de status 280 indica que a moderação está em andamento, e 200 indica que a moderação foi concluída. Se a moderação estiver em andamento, o resultado contém as detecções desde o início da moderação até o momento atual. | |
AudioResult | JSONObject | O resultado da moderação do áudio. Uma estrutura é retornada. Para mais informações sobre a estrutura, consulte a Tabela 8. audioResult. |
Tabela 3. FrameResult
Nome | Tipo | Exemplo | Descrição |
FrameNum | Integer | 200 | O número de snapshots retornados para os quadros de vídeo. |
FrameSummarys | JSONArray | Um resumo dos rótulos para os quadros de vídeo. Para mais informações sobre a estrutura, consulte a Tabela 4. FrameSummarys. | |
RiskLevel | String | high | O nível de risco dos quadros de vídeo. O valor é calculado com base em todos os snapshots da transmissão ao vivo. Valores válidos:
|
Frames | JSONArray | Informações sobre os quadros da transmissão ao vivo que acionaram um rótulo. Para mais informações sobre a estrutura, consulte a Tabela 5. Frames. |
Tabela 4. FrameSummarys
Nome | Tipo | Exemplo | Descrição |
Label | String | violent_armedForces | O rótulo do quadro de vídeo. |
Description | String | Suspeita de conter fogos de artifício | A descrição do campo Label. Importante Este campo fornece uma explicação do campo Label e pode sofrer alterações. Recomendamos tratar os resultados com base no campo Label, e não neste campo. |
LabelSum | Integer | 8 | O número de vezes que o rótulo aparece. |
Tabela 5. Frames
Nome | Tipo | Exemplo | Descrição |
TempUrl | String | http://www.aliyundoc.com/test.jpg | A URL temporária do quadro da transmissão ao vivo. A URL é válida por 30 minutos. Salve o quadro prontamente. Nota Se o armazenamento de evidências de vídeo estiver ativado, a URL do OSS do quadro de vídeo armazenado é retornada. |
Offset | Float | 50,5 | O carimbo de data/hora do quadro da transmissão ao vivo em relação ao início da transmissão. Unidade: segundos. |
Timestamp | Integer | 1684559739000 | O carimbo de data/hora absoluto de quando o quadro foi processado. Unidade: milissegundos. |
RiskLevel | String | high | O nível de risco do quadro da transmissão ao vivo, retornado com base nas pontuações de risco alto e baixo configuradas. Valores válidos:
Nota Recomendamos tratar conteúdos de alto risco diretamente, revisar manualmente conteúdos de risco médio e tratar conteúdos de baixo risco apenas quando alta recuperação for necessária. Nos demais casos, trate conteúdos de baixo risco da mesma forma que conteúdos sem riscos detectados. Configure as pontuações de risco para quadros de vídeo na configuração de regras do console AI Guardrails. |
Results | JSONArray | Os resultados da moderação do quadro da transmissão ao vivo, incluindo rótulos de risco e pontuações de confiança. Para mais informações, consulte a Tabela 6. Results. |
Tabela 6. Results
Nome | Tipo | Exemplo | Descrição |
Service | String | baselineCheck_global | O serviço de moderação de quadros chamado. |
Result | Array | Os resultados da moderação do quadro da transmissão ao vivo, incluindo rótulos de risco e pontuações de confiança. Para mais informações, consulte a Tabela 7. Result. |
Tabela 7. Result
Nome | Tipo | Exemplo | Descrição |
Label | String | violent_explosion | O rótulo de risco retornado pela moderação do quadro da transmissão ao vivo. O rótulo identifica o tipo específico de risco detectado no quadro, como conteúdo político, adulto, violento ou violações de publicidade. Um quadro pode ter vários rótulos, cada um com uma pontuação de confiança correspondente. Os rótulos variam conforme o serviço de moderação configurado na solicitação (parâmetro
Para a lista completa de rótulos suportados por cada serviço de moderação, consulte a API Enhanced 2.0 de Moderação de Arquivos de Vídeo. |
Confidence | Float | 81,22 | A pontuação de confiança, variando de 0 a 100. O valor tem precisão de duas casas decimais. |
Description | String | Suspeita de conter fogos de artifício | A descrição do campo Label. Importante Este campo fornece uma explicação do campo Label e pode sofrer alterações. Recomendamos tratar os resultados com base no campo Label, e não neste campo. |
Tabela 8. audioResult
Nome | Tipo | Exemplo | Descrição |
AudioSummarys | JSONArray | Um resumo dos rótulos de áudio. Para mais informações sobre a estrutura, consulte a Tabela 9. AudioSummarys. | |
RiskLevel | String | high | O nível de risco do áudio. O valor é calculado com base em todos os segmentos de áudio. Valores válidos:
|
SliceDetails | JSONArray | Os detalhes do texto convertido a partir do áudio. Cada elemento corresponde a uma frase. O valor contém um ou mais elementos. Para mais informações sobre a estrutura, consulte a Tabela 10. SliceDetails. |
Os campos de resultado de risco retornados em cada elemento SliceDetails dependem da versão do serviço de moderação de áudio configurada na regra de moderação da transmissão ao vivo:
Versão modelo grande (por exemplo,
liveStreamDetectionByVL,liveStreamDetectionByVL_cbouliveStreamDetectionByVL_global): Os resultados de risco são retornados no campo result.Versão modelo pequeno (por exemplo,
liveStreamDetection,liveStreamDetection_cbouliveStreamDetection_global): Os resultados de risco são retornados nos camposLabels,RiskLevel,RiskWordseRiskTips.
Tabela 9. AudioSummarys
|
Nome |
Tipo |
Exemplo |
Descrição |
|
Label |
String |
profanity |
O rótulo do áudio do vídeo. |
|
LabelSum |
Integer |
8 |
O número de vezes que o rótulo aparece. |
Tabela 10. SliceDetails
Nome | Tipo | Exemplo | Descrição |
StartTime | Integer | 0 | O horário de início da frase. Unidade: segundos. |
EndTime | Integer | 4065 | O horário de término da frase. Unidade: segundos. |
StartTimestamp | Integer | 1678854649720 | O carimbo de data/hora de início do segmento. Unidade: milissegundos. |
EndTimestamp | Integer | 1678854649720 | O carimbo de data/hora de término do segmento. Unidade: milissegundos. |
Text | String | disgusting | O conteúdo de texto convertido a partir do áudio. |
Url | String | https://aliyundoc.com/test.wav | Se o conteúdo moderado for um fluxo de áudio, este parâmetro indica a URL temporária do fluxo de áudio correspondente ao texto. A URL é válida por 30 minutos. Salve o fluxo de áudio prontamente. |
RiskLevel | String | high | O nível de risco do segmento de áudio. Valores válidos:
|
Labels | String | political_content,xxxx | Os detalhes dos rótulos. Vários rótulos são separados por vírgulas. Quando a versão modelo pequeno do serviço de moderação de áudio é selecionada, os resultados de risco são retornados nos campos
|
RiskWords | String | AAA,BBB,CCC | As palavras de risco acionadas. Várias palavras são separadas por vírgulas. |
RiskTips | String | porn_vulgar_words,porn_description | Os sub-rótulos. Vários rótulos são separados por vírgulas. |
Extend | String | {"riskTips":"porn_vulgar_words","riskWords":"pornographic_service"} | Um campo reservado. |
Result | JSONArray | Os resultados detalhados de detecção de risco para este segmento de áudio. Este campo é retornado apenas quando o serviço de moderação de áudio está configurado para usar a versão modelo grande. Quando a versão modelo pequeno é usada, este campo não é retornado e os resultados de risco são devolvidos nos campos Labels, RiskWords, RiskTips e outros. A estrutura do campo é consistente com o campo Result da API de modelo grande de moderação de áudio. As descrições dos subcampos são as seguintes. |
Tabela 10-1. Result
Parâmetro | Tipo | Exemplo | Descrição |
Label | String | political_entity | Os rótulos retornados após a detecção de conteúdo de áudio. Vários rótulos e pontuações podem ser detectados. Contém rótulos de política de texto e rótulos específicos de áudio:
Nota Voz especificada e sons de gemidos não são detectados por padrão. Entre em contato com seu gerente de contas para ativar a detecção. |
Description | String | Suspeita de conteúdo pornográfico | Uma descrição do campo Label. Importante Este campo fornece uma explicação do campo Label e pode mudar. Ao processar resultados, utilize o campo Label em vez deste campo. |
Confidence | Float | 81,22 | Pontuação de confiança, variando de 0 a 100, arredondada para 2 casas decimais. Alguns rótulos podem não ter pontuação de confiança. |
RiskLevel | String | high | O nível de risco do rótulo atual. Valores válidos:
|
Riskwords | String | AA,BB,CC | Palavras sensíveis detectadas, separadas por vírgulas. Alguns rótulos podem não retornar palavras sensíveis. |
CustomizedHit | JSONArray | [{"LibName":"...","Keywords":"..."}] | Quando uma biblioteca personalizada é correspondida, o Label é personalizado, e o nome da biblioteca personalizada e as palavras personalizadas são retornados. Para detalhes, consulte a Tabela 10-2 CustomizedHit. |
RiskPositions | JSONArray | Informações de posição das palavras sensíveis detectadas. Para mais informações, consulte a Tabela 10-3 RiskPositions. |
Tabela 10-2. CustomizedHit
|
Parâmetro |
Tipo |
Exemplo |
Descrição |
|
LibName |
String |
CustomLib1 |
Nome da biblioteca personalizada |
|
Keywords |
String |
keyword1,keyword2 |
Palavras personalizadas, separadas por vírgulas. |
Tabela 10-3. RiskPositions
|
Parâmetro |
Tipo |
Exemplo |
Descrição |
|
RiskWord |
String |
AA |
Palavras sensíveis detectadas. |
|
StartPos |
Integer |
10 |
Posição inicial da palavra sensível. |
|
EndPos |
Integer |
12 |
Posição final da palavra sensível. |
Exemplos
Solicitação de exemplo
{
"Service": "liveStreamDetection_global",
"ServiceParameters": {
"taskId": "abcd****"
}
}
Resposta de sucesso de exemplo
Moderando apenas vídeo de transmissão ao vivo
{
"Code": 200,
"RequestId": "25106421-XXXX-XXXX-XXXX-15DA5AAAC546",
"Message": "success finished",
"Data": {
"DataId": "dc16c28f-xxxx-xxxx-xxxx-51efe0131080",
"LiveId": "live0307-0728-****",
"RiskLevel": "high",
"FrameResult": {
"FrameNum": 2,
"FrameSummarys": [
{
"Label": "violent_explosion",
"Description": "Suspected to contain fireworks",
"LabelSum": 8
},
{
"Label": "sexual_cleavage",
"Description": "Suspected to contain nudity or sexual content",
"LabelSum": 8
}
],
"RiskLevel": "medium",
"Frames": [
{
"Offset": 1,
"RiskLevel": "none",
"Results": [
{
"Result": [
{
"Label": "nonLabel",
"Description": "No risk detected"
}
],
"Service": "baselineCheck_global"
}
],
"TempUrl": "http://abc.oss-ap-southeast-1.aliyuncs.com/test1.jpg",
"Timestamp": 1704769999000
},
{
"Offset": 2,
"RiskLevel": "medium",
"Results": [
{
"Result": [
{
"Confidence": 78.88,
"Label": "sexual_cleavage",
"Description": "Suspected to contain nudity or sexual content"
},
{
"Confidence": 74.18,
"Label": "violent_explosion",
"Description": "Suspected to contain fireworks"
}
],
"Service": "baselineCheck_global"
}
],
"TempUrl": "http://abc.oss-ap-southeast-1.aliyuncs.com/test2.jpg",
"Timestamp": 1704769989000
}
]
}
}
}
Moderando vídeo e áudio de transmissão ao vivo
{
"Code": 200,
"RequestId": "25106421-XXXX-XXXX-XXXX-15DA5AAAC546",
"Message": "success finished",
"Data": {
"DataId": "dc16c28f-xxxx-xxxx-xxxx-51efe0131080",
"LiveId": "live0307-0728-****",
"RiskLevel": "high",
"AudioResult": {
"AudioSummarys": [
{
"Label": "sexual_sounds",
"LabelSum": 3
}
],
"RiskLevel": "high",
"SliceDetails": [
{
"EndTime": 60,
"EndTimestamp": 1698912813192,
"Labels": "",
"RiskLevel": "none",
"StartTime": 30,
"StartTimestamp": 1698912783192,
"Text": "AI Guardrails",
"Url": "http://abc.oss-ap-southeast-1.aliyuncs.com/test.wav"
},
{
"EndTime": 30,
"EndTimestamp": 1698912813192,
"Extend": "{\"customizedWords\":\"service\",\"customizedLibs\":\"test\"}",
"Labels": "C_customized",
"RiskLevel": "high",
"StartTime": 0,
"StartTimestamp": 1698912783192,
"Text": "Welcome to Alibaba Cloud AI Guardrails service",
"Url": "http://abc.oss-ap-southeast-1.aliyuncs.com/test.wav"
}
]
},
"FrameResult": {
"FrameNum": 2,
"FrameSummarys": [
{
"Label": "violent_explosion",
"Description": "Suspected to contain fireworks",
"LabelSum": 8
},
{
"Label": "sexual_cleavage",
"Description": "Suspected to contain nudity or sexual content",
"LabelSum": 8
}
],
"RiskLevel": "medium",
"Frames": [
{
"Offset": 1,
"RiskLevel": "none",
"Results": [
{
"Result": [
{
"Label": "nonLabel",
"Description": "No risk detected"
}
],
"Service": "baselineCheck_global"
}
],
"TempUrl": "http://abc.oss-ap-southeast-1.aliyuncs.com/test1.jpg",
"Timestamp": 1704769999000
},
{
"Offset": 2,
"RiskLevel": "medium",
"Results": [
{
"Result": [
{
"Confidence": 74.18,
"Label": "violent_explosion",
"Description": "Suspected to contain fireworks"
},
{
"Confidence": 78.88,
"Label": "sexual_cleavage",
"Description": "Suspected to contain nudity or sexual content"
}
],
"Service": "baselineCheck_global"
}
],
"TempUrl": "http://abc.oss-ap-southeast-1.aliyuncs.com/test2.jpg",
"Timestamp": 1704769989000
}
]
}
}
}
Cancelar uma tarefa de moderação de transmissão ao vivo
Descrição da API
Chame esta operação para cancelar uma tarefa de moderação de transmissão ao vivo.
Operação de API: VideoModerationCancel.
Faturamento: Esta operação não é cobrada.
Depuração
Antes da integração, utilize o Alibaba Cloud OpenAPI para depurar a API VideoModerationCancel online e visualizar códigos de chamada de exemplo e informações de dependência do SDK para obter uma visão geral do uso e dos parâmetros da API.
Parâmetros da solicitação
Nome | Tipo | Obrigatório | Exemplo | Descrição |
Service | String | Sim | liveStreamDetection_global | O tipo de serviço de moderação. O valor deve ser igual ao tipo de serviço especificado ao enviar a tarefa de moderação. |
ServiceParameters | JSONString | Sim | Os parâmetros necessários para o serviço. Este parâmetro é uma string JSON. Para mais informações sobre os parâmetros, consulte a Tabela 11. ServiceParameters. |
Tabela 11. ServiceParameters
|
Nome |
Tipo |
Obrigatório |
Exemplo |
Descrição |
|
taskId |
string |
Sim |
abcd**** |
O taskId da tarefa de moderação a ser cancelada. Especifique apenas um taskId por vez. Nota: Obtenha o taskId de uma tarefa de moderação nos dados de resposta após o envio da tarefa. |
Parâmetros de resposta
|
Nome |
Tipo |
Exemplo |
Descrição |
|
Code |
Integer |
200 |
O código de status. Para mais informações, consulte a Descrição de códigos. |
|
Message |
String |
OK |
A mensagem de resposta da solicitação. |
|
RequestId |
String |
AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE**** |
O ID da solicitação. |
Exemplo
Solicitação de exemplo
{
"Service": "liveStreamDetection",
"ServiceParameters": {
"taskId": "abcd****"
}
}
Resposta de exemplo
{
"Msg": "OK",
"Code": 200,
"RequestId": "70ED13B0-BC22-576D-9CCF-1CC12FEAC477"
}
Descrição de códigos
Este tópico descreve os códigos de resposta para a API de moderação de transmissão de vídeo ao vivo 2.0. A cobrança ocorre apenas para solicitações que retornam código de resposta 200 ou 280. Solicitações que retornam outros códigos de resposta não são cobradas.
|
Código |
Descrição |
|
200 |
A solicitação foi bem-sucedida ou a moderação foi concluída. |
|
280 |
Moderação em andamento. |
|
400 |
Os parâmetros da solicitação estão vazios. |
|
401 |
Os parâmetros da solicitação são inválidos. |
|
402 |
O comprimento de um parâmetro da solicitação não atende aos requisitos. Verifique o parâmetro e tente novamente. |
|
403 |
O número de consultas por segundo (QPS) excede o limite. Verifique o número de solicitações simultâneas e tente novamente. |
|
404 |
Ocorreu um erro ao baixar o vídeo. Verifique o vídeo e tente novamente. |
|
405 |
O download do vídeo expirou. O vídeo pode estar inacessível. Verifique o vídeo e tente novamente. |
|
406 |
O vídeo é muito grande. Verifique o tamanho do vídeo e tente novamente. |
|
407 |
O formato do vídeo não é suportado. Verifique o formato e tente novamente. |
|
408 |
Você não tem autorização para chamar esta operação. Sua conta pode não ter o serviço ativado, pode estar com pagamento pendente ou não ter as permissões necessárias concedidas. |
|
409 |
O TaskId especificado não existe. O resultado pode ter expirado porque foi retido por mais de 24 horas. |
|
480 |
O número de fluxos de moderação simultâneos excede o limite. Verifique o número de solicitações simultâneas e tente novamente. |
|
500 |
Ocorreu um erro do sistema. |