1// Copyright (c) 2017-2018 THL A29 Limited, a Tencent company. All Rights Reserved. 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15package v20201229 16 17import ( 18 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" 19 tchttp "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http" 20 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile" 21) 22 23const APIVersion = "2020-12-29" 24 25type Client struct { 26 common.Client 27} 28 29// Deprecated 30func NewClientWithSecretId(secretId, secretKey, region string) (client *Client, err error) { 31 cpf := profile.NewClientProfile() 32 client = &Client{} 33 client.Init(region).WithSecretId(secretId, secretKey).WithProfile(cpf) 34 return 35} 36 37func NewClient(credential common.CredentialIface, region string, clientProfile *profile.ClientProfile) (client *Client, err error) { 38 client = &Client{} 39 client.Init(region). 40 WithCredential(credential). 41 WithProfile(clientProfile) 42 return 43} 44 45 46func NewCancelTaskRequest() (request *CancelTaskRequest) { 47 request = &CancelTaskRequest{ 48 BaseRequest: &tchttp.BaseRequest{}, 49 } 50 request.Init().WithApiInfo("vm", APIVersion, "CancelTask") 51 return 52} 53 54func NewCancelTaskResponse() (response *CancelTaskResponse) { 55 response = &CancelTaskResponse{ 56 BaseResponse: &tchttp.BaseResponse{}, 57 } 58 return 59} 60 61// CancelTask 62// 可使用该接口取消审核任务,成功取消后,该接口返回已取消任务的TaskId。<br> 63// 64// 65// 66// 默认接口请求频率限制:**20次/秒**。 67// 68// 可能返回的错误码: 69// DRYRUNOPERATION = "DryRunOperation" 70// FAILEDOPERATION = "FailedOperation" 71// INVALIDPARAMETER = "InvalidParameter" 72// INVALIDPARAMETERVALUE = "InvalidParameterValue" 73// LIMITEXCEEDED = "LimitExceeded" 74// MISSINGPARAMETER = "MissingParameter" 75// OPERATIONDENIED = "OperationDenied" 76// REQUESTLIMITEXCEEDED = "RequestLimitExceeded" 77// RESOURCEINUSE = "ResourceInUse" 78// RESOURCEINSUFFICIENT = "ResourceInsufficient" 79// RESOURCENOTFOUND = "ResourceNotFound" 80// RESOURCEUNAVAILABLE = "ResourceUnavailable" 81// RESOURCESSOLDOUT = "ResourcesSoldOut" 82// UNAUTHORIZEDOPERATION = "UnauthorizedOperation" 83// UNKNOWNPARAMETER = "UnknownParameter" 84// UNSUPPORTEDOPERATION = "UnsupportedOperation" 85func (c *Client) CancelTask(request *CancelTaskRequest) (response *CancelTaskResponse, err error) { 86 if request == nil { 87 request = NewCancelTaskRequest() 88 } 89 response = NewCancelTaskResponse() 90 err = c.Send(request, response) 91 return 92} 93 94func NewCreateVideoModerationTaskRequest() (request *CreateVideoModerationTaskRequest) { 95 request = &CreateVideoModerationTaskRequest{ 96 BaseRequest: &tchttp.BaseRequest{}, 97 } 98 request.Init().WithApiInfo("vm", APIVersion, "CreateVideoModerationTask") 99 return 100} 101 102func NewCreateVideoModerationTaskResponse() (response *CreateVideoModerationTaskResponse) { 103 response = &CreateVideoModerationTaskResponse{ 104 BaseResponse: &tchttp.BaseResponse{}, 105 } 106 return 107} 108 109// CreateVideoModerationTask 110// 本接口(Video Moderation System,VM)用于提交视频文件或视频流进行智能审核任务。使用前请您使用腾讯云主账号登录控制台[开通视频内容安全服务](https://console.cloud.tencent.com/cms/video/package)并调整好对应的业务配置。<br> 111// 112// ### 功能使用说明: 113// 114// 115// 116// - 前往“[内容安全控制台-视频内容安全](https://console.cloud.tencent.com/cms/video/package)”开启使用视频内容安全服务,首次开通服务的用户可免费领用试用套餐包,包含600分钟的处理量(换算1s每帧截图,赠送**36000张图**、**600分钟的音频**处理量),有效期为1个月。 117// 118// 119// 120// - 该接口为收费接口,计费方式敬请参见[腾讯云视频内容安全定价](https://cloud.tencent.com/product/vm/pricing)。 121// 122// 123// 124// - 默认接口请求频率限制:**20次/秒**,对于异步审核任务(点播视频),超出频率限制的请求会自动排入待审核队列,对于同步审核任务(直播视频),超出频率限制将会报错。 125// 126// - 默认并发审核路数限制:10路,异步审核任务(点播视频)数量超过并发审核路数时,将会进入排队;同步审核任务(直播视频)超过并发审核路数,接口会返回错误。 127// 128// 129// 130// 131// 132// ### 接口功能说明: 133// 134// 135// 136// - 支持对视频文件或视频流进行自动检测,从 OCR文本识别、物体检测(实体、广告台标、二维码等)、图像识别及音频审核四个维度,通过深度学习技术识别视频中的违规内容; 137// 138// - 支持设置回调地址 Callback 获取检测结果,或通过接口(查看任务详情)主动轮询获取检测结果详情;对于正常审核中的视频任务,如含有违规内容,则截帧图片最长会在**3s**内回调,音频片段会在用户配置的**切片时长 + 2s**内回调;对于在队列中的待审核任务,回调时间为正常审核回调时间+等待时间; 139// 140// - 支持通过接口(查看审核任务列表)查询任务队列,用户可根据多种业务信息(业务类型、审核结果、任务状态等)筛选审核任务列表; 141// 142// - 支持识别多种违规场景,包括:低俗、谩骂、色情、广告等场景; 143// 144// - 支持根据不同的业务场景配置自定义的审核策略; 145// 146// - 支持用户自定义配置黑白词库及图片库,打击自定义违规内容(目前仅支持黑名单配置); 147// 148// - 支持用户自定义配置审核任务优先级,当有多个任务排队时,可根据用户配置自动调整任务优先级; 149// 150// - 支持批量提交检测任务,**最多可同时创建10个任务**; 151// 152// 153// 154// ### 视频文件调用说明: 155// 156// 157// 158// - 视频文件大小支持:**文件 < 3GB** 159// 160// - 视频文件分辨率支持:**最佳分辨率为1920x1080 (1080p)**,如果视频文件小于300MB,则分辨率可以大于1080p,更大视频可以调用[云转码服务](https://cloud.tencent.com/product/mps/details)转码后再送审; 161// 162// - 视频文件支持格式:flv、mkv 、mp4 、rmvb 、avi 、wmv、3gp、ts、mov、rm、mpeg、wmf等。 163// 164// - 视频文件支持的访问方式:链接地址(支持HTTP/HTTPS)、腾讯云COS存储; 165// 166// - 若传入视频文件的访问链接,则需要注意视频**头文件的读取时间限制为3秒**,为保障被检测视频的稳定性和可靠性,建议您使用腾讯云COS存储或者CDN缓存等; 167// 168// - 支持用户配置是否需要开启音频审核,若不开启则将仅对视频文件图像内容进行审核。 169// 170// 171// 172// ### 视频流调用说明: 173// 174// 175// 176// - 视频流时长支持:**5小时以内** 177// 178// - 视频流分辨率支持:支持**1920x1080 (1080p)**,更高分辨率视频可以调用[直播云转码服务](https://cloud.tencent.com/document/product/267/39889)转码后再送审; 179// 180// - 视频流支持格式:rmtp,flv 等主流视频流编码格式。 181// 182// - 视频文件支持的传输协议:HTTP/HTTPS/RTMP; 183// 184// - 支持用户配置是否需要开启音频审核,若不开启则将仅对视频流图像内容进行审核。 185// 186// 可能返回的错误码: 187// DRYRUNOPERATION = "DryRunOperation" 188// FAILEDOPERATION = "FailedOperation" 189// INTERNALERROR = "InternalError" 190// INVALIDPARAMETER = "InvalidParameter" 191// INVALIDPARAMETERVALUE = "InvalidParameterValue" 192// LIMITEXCEEDED = "LimitExceeded" 193// MISSINGPARAMETER = "MissingParameter" 194// OPERATIONDENIED = "OperationDenied" 195// REQUESTLIMITEXCEEDED = "RequestLimitExceeded" 196// RESOURCEINUSE = "ResourceInUse" 197// RESOURCEINSUFFICIENT = "ResourceInsufficient" 198// RESOURCENOTFOUND = "ResourceNotFound" 199// RESOURCEUNAVAILABLE = "ResourceUnavailable" 200// RESOURCESSOLDOUT = "ResourcesSoldOut" 201// UNAUTHORIZEDOPERATION = "UnauthorizedOperation" 202// UNKNOWNPARAMETER = "UnknownParameter" 203// UNSUPPORTEDOPERATION = "UnsupportedOperation" 204func (c *Client) CreateVideoModerationTask(request *CreateVideoModerationTaskRequest) (response *CreateVideoModerationTaskResponse, err error) { 205 if request == nil { 206 request = NewCreateVideoModerationTaskRequest() 207 } 208 response = NewCreateVideoModerationTaskResponse() 209 err = c.Send(request, response) 210 return 211} 212 213func NewDescribeTaskDetailRequest() (request *DescribeTaskDetailRequest) { 214 request = &DescribeTaskDetailRequest{ 215 BaseRequest: &tchttp.BaseRequest{}, 216 } 217 request.Init().WithApiInfo("vm", APIVersion, "DescribeTaskDetail") 218 return 219} 220 221func NewDescribeTaskDetailResponse() (response *DescribeTaskDetailResponse) { 222 response = &DescribeTaskDetailResponse{ 223 BaseResponse: &tchttp.BaseResponse{}, 224 } 225 return 226} 227 228// DescribeTaskDetail 229// 通过查看任务详情 DescribeTaskDetail 接口,可主动轮询获取检测结果详情。<br> 230// 231// 232// 233// 默认接口请求频率限制:**200次/秒**。 234// 235// 可能返回的错误码: 236// DRYRUNOPERATION = "DryRunOperation" 237// FAILEDOPERATION = "FailedOperation" 238// INTERNALERROR = "InternalError" 239// INVALIDPARAMETER = "InvalidParameter" 240// INVALIDPARAMETERVALUE = "InvalidParameterValue" 241// LIMITEXCEEDED = "LimitExceeded" 242// MISSINGPARAMETER = "MissingParameter" 243// OPERATIONDENIED = "OperationDenied" 244// REQUESTLIMITEXCEEDED = "RequestLimitExceeded" 245// RESOURCEINUSE = "ResourceInUse" 246// RESOURCEINSUFFICIENT = "ResourceInsufficient" 247// RESOURCENOTFOUND = "ResourceNotFound" 248// RESOURCEUNAVAILABLE = "ResourceUnavailable" 249// RESOURCESSOLDOUT = "ResourcesSoldOut" 250// UNAUTHORIZEDOPERATION = "UnauthorizedOperation" 251// UNKNOWNPARAMETER = "UnknownParameter" 252// UNSUPPORTEDOPERATION = "UnsupportedOperation" 253func (c *Client) DescribeTaskDetail(request *DescribeTaskDetailRequest) (response *DescribeTaskDetailResponse, err error) { 254 if request == nil { 255 request = NewDescribeTaskDetailRequest() 256 } 257 response = NewDescribeTaskDetailResponse() 258 err = c.Send(request, response) 259 return 260} 261 262func NewDescribeTasksRequest() (request *DescribeTasksRequest) { 263 request = &DescribeTasksRequest{ 264 BaseRequest: &tchttp.BaseRequest{}, 265 } 266 request.Init().WithApiInfo("vm", APIVersion, "DescribeTasks") 267 return 268} 269 270func NewDescribeTasksResponse() (response *DescribeTasksResponse) { 271 response = &DescribeTasksResponse{ 272 BaseResponse: &tchttp.BaseResponse{}, 273 } 274 return 275} 276 277// DescribeTasks 278// 通过查看审核任务列表接口,可查询任务队列;您可根据多种业务信息(业务类型、审核结果、任务状态等)筛选审核任务列表。<br> 279// 280// 281// 282// 默认接口请求频率限制:**20次/秒**。 283// 284// 可能返回的错误码: 285// AUTHFAILURE = "AuthFailure" 286// DRYRUNOPERATION = "DryRunOperation" 287// FAILEDOPERATION = "FailedOperation" 288// INTERNALERROR = "InternalError" 289// INVALIDPARAMETER = "InvalidParameter" 290// INVALIDPARAMETERVALUE = "InvalidParameterValue" 291// LIMITEXCEEDED = "LimitExceeded" 292// MISSINGPARAMETER = "MissingParameter" 293// OPERATIONDENIED = "OperationDenied" 294// REQUESTLIMITEXCEEDED = "RequestLimitExceeded" 295// RESOURCEINUSE = "ResourceInUse" 296// RESOURCEINSUFFICIENT = "ResourceInsufficient" 297// RESOURCENOTFOUND = "ResourceNotFound" 298// RESOURCEUNAVAILABLE = "ResourceUnavailable" 299// RESOURCESSOLDOUT = "ResourcesSoldOut" 300// UNAUTHORIZEDOPERATION = "UnauthorizedOperation" 301// UNKNOWNPARAMETER = "UnknownParameter" 302// UNSUPPORTEDOPERATION = "UnsupportedOperation" 303func (c *Client) DescribeTasks(request *DescribeTasksRequest) (response *DescribeTasksResponse, err error) { 304 if request == nil { 305 request = NewDescribeTasksRequest() 306 } 307 response = NewDescribeTasksResponse() 308 err = c.Send(request, response) 309 return 310} 311