Browse Source

视频审核API暂存1

dev
yinzuomei 5 years ago
parent
commit
945dd3240a
  1. 50
      epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/common/enu/VideoSceneEnum.java
  2. 77
      epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/support/param/video/VideoAsyncScanParam.java
  3. 30
      epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/support/param/video/VideoAsyncScanTask.java
  4. 41
      epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/support/result/video/VideoAsyncScanTaskDataDTO.java
  5. 45
      epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/support/result/video/VideoAsyncScanTaskResultDTO.java
  6. 38
      epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/support/result/video/VideoResultDTO.java
  7. 53
      epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/support/result/video/VideoScanOriginDetail.java
  8. 48
      epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/support/result/video/VideoScanOriginalResultDTO.java

50
epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/common/enu/VideoSceneEnum.java

@ -0,0 +1,50 @@
package com.epmet.openapi.scan.common.enu;
import java.util.ArrayList;
import java.util.List;
/**
* desc:视频检测场景
* @author yinzuomei@elink-cn.com
* @date 2020/12/29 13:47
**/
public enum VideoSceneEnum {
PORN("porn", "视频智能鉴黄"),
TERRORISM("terrorism", "视频暴恐涉政"),
LIVE("live","视频不良场景"),
LOGO("logo","视频logo"),
AD("ad","视频图文违规");
private String code;
private String desc;
VideoSceneEnum(String code, String desc) {
this.code = code;
this.desc = desc;
}
public static List<String> getVideoSceneList() {
List<String> result = new ArrayList<>();
VideoSceneEnum[] values = VideoSceneEnum.values();
for (VideoSceneEnum v : values) {
result.add(v.getCode());
}
return result;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}

77
epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/support/param/video/VideoAsyncScanParam.java

@ -0,0 +1,77 @@
package com.epmet.openapi.scan.support.param.video;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.util.List;
/**
* 视频审核-异步检测入参DTO
*
* @author yinzuomei@elink-cn.com
*/
@Data
public class VideoAsyncScanParam implements Serializable {
private static final long serialVersionUID = -7635290200099445362L;
/**
* 是否开启回调
*/
private Boolean openCallBack;
/**
* 不必填
* 该字段用于标识您的业务场景您可以通过内容安全控制台创建业务场景具体操作请参见自定义机审标准或者提交工单联系我们帮助您创建业务场景
*/
private String bizType;
/**
* 不必填
* 是否为语音流例如直播流检测取值
* true表示语音流检测
* false默认表示音频文件检测
*/
private Boolean live;
/**
* 不必填
* 是否为近线检测模式 取值
* true表示近线检测模式近线检测模式下您提交的任务不保证能够实时处理但是可以排队并在24小时内开始检测
* false默认表示实时检测模式对于超过了并发路数限制的检测请求会直接拒绝
* 说明 该参数仅适用于音频文件检测不适用于语音流检测
*/
private Boolean offline;
/**
* 必填
* 指定视频检测场景取值
* porn视频智能鉴黄
* terrorism视频暴恐涉政
* live视频不良场景
* logo视频logo
* ad视频图文违规
*/
@NotEmpty(message = "视频检测场景不能为空")
private List<String> scenes;
/**
* 不必填
* 指定视频语音检测场景唯一取值antispam表示语音反垃圾不传入该参数时仅检测视频图像内容如果传入该参数则在检测视频中图像的同时对视频中语音进行检测
* 说明 如果需要检测视频语音则不支持通过上传视频截帧序列的方式即在task中传入frames进行检测您必须传入视频或视频流的URL地址即在task中传入url进行检测
*/
private List<String> audioScenes;
/**
* 异步检测结果回调地址,执行异步审查内容时 必填
*/
private String callback;
/**
* 随机字符串该值用于回调通知请求中的签名使用callback时 必填
*/
private String seed;
@NotEmpty(message = "检测对象不能为空")
private List<VideoAsyncScanTask> tasks;
}

30
epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/support/param/video/VideoAsyncScanTask.java

@ -0,0 +1,30 @@
package com.epmet.openapi.scan.support.param.video;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 视频审核-异步检测入参-检测对象
*
* @author yinzuomei@elink-cn.com
*/
@Data
public class VideoAsyncScanTask implements Serializable {
/**
* 建议必填
* 要检测的数据id 非必填
* 检测对象对应的数据ID
* 由大小写英文字母数字下划线_短划线-英文句号.组成不超过128个字符可以用于唯一标识您的业务数据
* */
@NotBlank(message = "dataId不能为空")
private String dataId;
/**
* 必填
* 待检测视频的URL该字段不能和frames同时为空也不能和frames同时有值
*/
@NotBlank(message = "音频URL不能为空")
private String url;
}

41
epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/support/result/video/VideoAsyncScanTaskDataDTO.java

@ -0,0 +1,41 @@
package com.epmet.openapi.scan.support.result.video;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
/**
* 视频审核-异步检测任务提交返参详情
*
* @author yinzuomei@elink-cn.com
* @date 2020/12/29 13:42
*/
@Data
public class VideoAsyncScanTaskDataDTO implements Serializable {
private static final long serialVersionUID = 8430710131685814181L;
/**
* 错误码和HTTP状态码一致
* 更多信息请参见公共错误码
*/
private Integer code;
/**
* 错误描述信息
*/
private String msg;
/**
* 检测对象对应的数据ID
*/
private String dataId;
/**
* 检测任务的ID
*/
private String taskId;
/**
* 暂时没用所以返回忽略
*/
@JsonIgnore
private String url;
}

45
epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/support/result/video/VideoAsyncScanTaskResultDTO.java

@ -0,0 +1,45 @@
package com.epmet.openapi.scan.support.result.video;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* 视频审核-异步检测任务提交返参
*
* @author yinzuomei@elink-cn.com
* @date 2020/12/29 13:38
*/
@Data
public class VideoAsyncScanTaskResultDTO implements Serializable {
private static final long serialVersionUID = -467990806428860191L;
/**
* 随机字符串该值用于回调通知请求中的签名
*/
private String seed;
/**
* 提交成功的失败对象
*/
private List<VideoAsyncScanTaskDataDTO> successTasks=new ArrayList<>();
/**
* 提交失败的检测对象
*/
private List<VideoAsyncScanTaskDataDTO> failTasks=new ArrayList<>();
/**
* 是否全部提交成功
*/
private Boolean isAllSuccess;
public boolean isAllSuccess() {
if (failTasks.isEmpty() && !successTasks.isEmpty()) {
return true;
}
return isAllSuccess;
}
}

38
epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/support/result/video/VideoResultDTO.java

@ -0,0 +1,38 @@
package com.epmet.openapi.scan.support.result.video;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* 视频异步检测结果查询接口返参
*
* @author yinzuomei@elink-cn.com
* @date 2020/12/29 15:37
*/
@Data
public class VideoResultDTO implements Serializable {
private static final long serialVersionUID = -3451342817149956488L;
/**
* 检测对象对应的数据ID
*/
private String dataId;
/**
* 检测任务的ID
*/
private String taskId;
/**
* true审核通过false审核不通过
*/
private Boolean passFlag;
/**
* desc:阿里内容审核API返回结果详情
*/
private List<VideoScanOriginalResultDTO> details = new ArrayList<>();
}

53
epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/support/result/video/VideoScanOriginDetail.java

@ -0,0 +1,53 @@
package com.epmet.openapi.scan.support.result.video;
import lombok.Data;
import java.io.Serializable;
/**
* 视频异步检测结果查询接口原生返参-视频检测结果
*
* @author yinzuomei@elink-cn.com
* @date 2020/12/29 16:39
*/
@Data
public class VideoScanOriginDetail implements Serializable {
private static final long serialVersionUID = 5547706236158849091L;
/**
* 视频检测场景和调用请求中的场景对应取值
* porn视频智能鉴黄
* terrorism视频暴恐涉政
* live视频不良场景
* logo视频logo
* ad视频图文违规
*/
private String scene;
/**
* 视频检测结果的分类不同检测场景的结果分类不同具体如下
* 视频智能鉴黄porn结果分类
* normal正常
* porn色情
* 视频暴恐涉政terrorism结果分类
* normal正常
* terrorism暴恐涉政
* 视频不良场景live结果分类
* normal正常
* live包含不良场景
* 视频logologo结果分类
* normal正常
* logo包含logo
* 视频图文违规ad结果分类
* normal正常
* ad包含广告或文字违规信息
*/
private String label;
/**
* 建议您执行的后续操作取值
* pass结果正常无需进行其余操作
* review结果不确定需要进行人工审核
* block结果违规建议直接删除或者限制公开
*/
private String suggestion;
}

48
epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/support/result/video/VideoScanOriginalResultDTO.java

@ -0,0 +1,48 @@
package com.epmet.openapi.scan.support.result.video;
import com.epmet.openapi.scan.support.result.VoiceAsyncScanResultDTO;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 视频异步检测结果查询接口原生返参
*
* @author yinzuomei@elink-cn.com
* @date 2020/12/29 15:48
*/
@Data
public class VideoScanOriginalResultDTO implements Serializable {
private static final long serialVersionUID = -1565008507757551616L;
/**
* 错误码和HTTP状态码一致
* 更多信息请参见公共错误码
*/
private Integer code;
/**
* 错误描述信息
*/
private String msg;
/**
* 检测对象对应的数据ID
*/
private String dataId;
/**
* 检测任务的ID
*/
private String taskId;
/**
* 返回结果调用成功时code=200返回结果中包含一个或多个元素每个元素是个结构体具体结构描述请参见result
* 说明 视频流检测场景中code返回280表示在检测中返回200表示检测完成在检测中状态时检测结果中包含从开始检测到当前时间的检测到结果
*/
private List<VideoScanOriginDetail> results;
/**
* 视频语音检测结果具体结构描述请参见audioScanResult
*/
private VoiceAsyncScanResultDTO audioScanResults;
}
Loading…
Cancel
Save