Use a server-side SDK to call OpenAPI operations for media asset moderation in Intelligent Media Services.
Sample code
You can debug this operation online in the Alibaba Cloud OpenAPI Developer Portal.
package com.aliyun.ice.sample;
import com.aliyun.ice20201109.Client;
import com.aliyun.ice20201109.models.*;
import com.aliyun.teaopenapi.models.Config;
public class Sample {
public static void main(String[] args) throws Exception {
// The AccessKey of an Alibaba Cloud account has access permissions for all APIs. Use a Resource Access Management (RAM) user to call APIs or perform routine O&M.
// This example shows how to save the AccessKey ID and AccessKey secret in an environment variable.
com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();
Config config = new Config();
config.setCredential(credentialClient);
// To hard-code the AccessKey ID and AccessKey secret, use the following code. However, do not save the AccessKey ID and AccessKey secret in your project code. This can cause an AccessKey leak and threaten the security of all resources in your account.
// config.accessKeyId = <yourAccessKeyId>;
// config.accessKeySecret = <yourAccessKeySecret>;
config.endpoint = "ice.cn-shanghai.aliyuncs.com";
Client client = new Client(config);
// Create a moderation template.
String censorTemplateConfig = "{\"Scene\":[\"porn\",\"terrorism\"],\"Scope\":[\"title\",\"video\",\"audio\",\"cover\"]}";
CreateCustomTemplateRequest createCustomTemplateRequest = new CreateCustomTemplateRequest()
.setName("sdk_sample_censor_template")
.setType(7)
.setSubtype(1)
.setTemplateConfig(censorTemplateConfig);
CreateCustomTemplateResponse createCustomTemplateResponse = client.createCustomTemplate(createCustomTemplateRequest);
String templateId = createCustomTemplateResponse.getBody().getCustomTemplate().getTemplateId();
System.out.println("template id: " + templateId);
// Submit a media moderation job.
SubmitMediaCensorJobRequest submitMediaCensorJobRequest = new SubmitMediaCensorJobRequest()
.setInput(new SubmitMediaCensorJobRequest.SubmitMediaCensorJobRequestInput()
.setType("Media")
.setMedia("3945e42d01823498****"))
.setOutput("oss://testbucket/censor/snapshot-{Count}.jpg")
.setTemplateId(templateId);
SubmitMediaCensorJobResponse submitMediaCensorJobResponse = client.submitMediaCensorJob(submitMediaCensorJobRequest);
String jobId = submitMediaCensorJobResponse.getBody().getJobId();
System.out.println("job id: " + jobId);
// Query the details of the moderation job.
QueryMediaCensorJobDetailRequest queryMediaCensorJobDetailRequest = new QueryMediaCensorJobDetailRequest()
.setJobId(jobId);
QueryMediaCensorJobDetailResponse queryMediaCensorJobDetailResponse = client.queryMediaCensorJobDetail(queryMediaCensorJobDetailRequest);
System.out.println("request id: " + queryMediaCensorJobDetailResponse.getBody().getRequestId());
// Query the list of media moderation jobs.
QueryMediaCensorJobListRequest queryMediaCensorJobListRequest = new QueryMediaCensorJobListRequest()
.setJobIds(jobId);
QueryMediaCensorJobListResponse queryMediaCensorJobListResponse = client.queryMediaCensorJobList(queryMediaCensorJobListRequest);
System.out.println("request id: " + queryMediaCensorJobListResponse.getBody().getRequestId());
}
}