videorecog-20200320/Sources/AlibabacloudVideorecog20200320/Client.swift (679 lines of code) (raw):
import Foundation
import Tea
import TeaUtils
import AlibabaCloudOssSdk
import AlibabacloudOpenPlatform20191219
import AlibabaCloudOSSUtil
import TeaFileForm
import AlibabacloudOpenApi
import AlibabaCloudOpenApiUtil
import AlibabacloudEndpointUtil
open class Client : AlibabacloudOpenApi.Client {
public override init(_ config: AlibabacloudOpenApi.Config) throws {
try super.init(config)
self._endpointRule = "regional"
try checkConfig(config as! AlibabacloudOpenApi.Config)
self._endpoint = try getEndpoint("videorecog", self._regionId ?? "", self._endpointRule ?? "", self._network ?? "", self._suffix ?? "", self._endpointMap ?? [:], self._endpoint ?? "")
}
public func getEndpoint(_ productId: String, _ regionId: String, _ endpointRule: String, _ network: String, _ suffix: String, _ endpointMap: [String: String], _ endpoint: String) throws -> String {
if (!TeaUtils.Client.empty(endpoint)) {
return endpoint as! String
}
if (!TeaUtils.Client.isUnset(endpointMap) && !TeaUtils.Client.empty(endpointMap[regionId as! String])) {
return endpointMap[regionId as! String] ?? ""
}
return try AlibabacloudEndpointUtil.Client.getEndpointRules(productId, regionId, endpointRule, network, suffix)
}
@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
public func detectVideoShotWithOptions(_ request: DetectVideoShotRequest, _ runtime: TeaUtils.RuntimeOptions) async throws -> DetectVideoShotResponse {
try TeaUtils.Client.validateModel(request)
var body: [String: Any] = [:]
if (!TeaUtils.Client.isUnset(request.videoUrl)) {
body["VideoUrl"] = request.videoUrl ?? "";
}
var req: AlibabacloudOpenApi.OpenApiRequest = AlibabacloudOpenApi.OpenApiRequest([
"body": AlibabaCloudOpenApiUtil.Client.parseToMap(body)
])
var params: AlibabacloudOpenApi.Params = AlibabacloudOpenApi.Params([
"action": "DetectVideoShot",
"version": "2020-03-20",
"protocol": "HTTPS",
"pathname": "/",
"method": "POST",
"authType": "AK",
"style": "RPC",
"reqBodyType": "formData",
"bodyType": "json"
])
var tmp: [String: Any] = try await callApi(params as! AlibabacloudOpenApi.Params, req as! AlibabacloudOpenApi.OpenApiRequest, runtime as! TeaUtils.RuntimeOptions)
return Tea.TeaConverter.fromMap(DetectVideoShotResponse(), tmp)
}
@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
public func detectVideoShot(_ request: DetectVideoShotRequest) async throws -> DetectVideoShotResponse {
var runtime: TeaUtils.RuntimeOptions = TeaUtils.RuntimeOptions([:])
return try await detectVideoShotWithOptions(request as! DetectVideoShotRequest, runtime as! TeaUtils.RuntimeOptions)
}
@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
public func detectVideoShotAdvance(_ request: DetectVideoShotAdvanceRequest, _ runtime: TeaUtils.RuntimeOptions) async throws -> DetectVideoShotResponse {
var accessKeyId: String = try await self._credential!.getAccessKeyId()
var accessKeySecret: String = try await self._credential!.getAccessKeySecret()
var securityToken: String = try await self._credential!.getSecurityToken()
var credentialType: String = self._credential!.getType()
var openPlatformEndpoint: String = self._openPlatformEndpoint ?? ""
if (TeaUtils.Client.empty(openPlatformEndpoint)) {
openPlatformEndpoint = "openplatform.aliyuncs.com"
}
if (TeaUtils.Client.isUnset(credentialType)) {
credentialType = "access_key"
}
var authConfig: AlibabacloudOpenApi.Config = AlibabacloudOpenApi.Config([
"accessKeyId": accessKeyId as! String,
"accessKeySecret": accessKeySecret as! String,
"securityToken": securityToken as! String,
"type": credentialType as! String,
"endpoint": openPlatformEndpoint as! String,
"protocol": self._protocol ?? "",
"regionId": self._regionId ?? ""
])
var authClient: AlibabacloudOpenPlatform20191219.Client = try AlibabacloudOpenPlatform20191219.Client(authConfig)
var authRequest: AlibabacloudOpenPlatform20191219.AuthorizeFileUploadRequest = AlibabacloudOpenPlatform20191219.AuthorizeFileUploadRequest([
"product": "videorecog",
"regionId": self._regionId ?? ""
])
var authResponse: AlibabacloudOpenPlatform20191219.AuthorizeFileUploadResponse = AlibabacloudOpenPlatform20191219.AuthorizeFileUploadResponse([:])
var ossConfig: AlibabaCloudOssSdk.Config = AlibabaCloudOssSdk.Config([
"accessKeyId": accessKeyId as! String,
"accessKeySecret": accessKeySecret as! String,
"type": "access_key",
"protocol": self._protocol ?? "",
"regionId": self._regionId ?? ""
])
var ossClient: AlibabaCloudOssSdk.Client = try AlibabaCloudOssSdk.Client(ossConfig)
var fileObj: TeaFileForm.FileField = TeaFileForm.FileField([:])
var ossHeader: AlibabaCloudOssSdk.PostObjectRequest.Header = AlibabaCloudOssSdk.PostObjectRequest.Header([:])
var uploadRequest: AlibabaCloudOssSdk.PostObjectRequest = AlibabaCloudOssSdk.PostObjectRequest([:])
var ossRuntime: AlibabaCloudOSSUtil.RuntimeOptions = AlibabaCloudOSSUtil.RuntimeOptions([:])
AlibabaCloudOpenApiUtil.Client.convert(runtime, ossRuntime)
var detectVideoShotReq: DetectVideoShotRequest = DetectVideoShotRequest([:])
AlibabaCloudOpenApiUtil.Client.convert(request, detectVideoShotReq)
if (!TeaUtils.Client.isUnset(request.videoUrlObject)) {
authResponse = try await authClient.authorizeFileUploadWithOptions(authRequest as! AlibabacloudOpenPlatform20191219.AuthorizeFileUploadRequest, runtime as! TeaUtils.RuntimeOptions)
ossConfig.accessKeyId = authResponse.body!.accessKeyId
ossConfig.endpoint = AlibabaCloudOpenApiUtil.Client.getEndpoint(authResponse.body!.endpoint, authResponse.body!.useAccelerate, self._endpointType)
ossClient = try AlibabaCloudOssSdk.Client(ossConfig)
fileObj = TeaFileForm.FileField([
"filename": authResponse.body!.objectKey ?? "",
"content": request.videoUrlObject!,
"contentType": ""
])
ossHeader = AlibabaCloudOssSdk.PostObjectRequest.Header([
"accessKeyId": authResponse.body!.accessKeyId ?? "",
"policy": authResponse.body!.encodedPolicy ?? "",
"signature": authResponse.body!.signature ?? "",
"key": authResponse.body!.objectKey ?? "",
"file": fileObj as! TeaFileForm.FileField,
"successActionStatus": "201"
])
uploadRequest = AlibabaCloudOssSdk.PostObjectRequest([
"bucketName": authResponse.body!.bucket ?? "",
"header": ossHeader as! AlibabaCloudOssSdk.PostObjectRequest.Header
])
try await ossClient.postObject(uploadRequest as! AlibabaCloudOssSdk.PostObjectRequest, ossRuntime as! AlibabaCloudOSSUtil.RuntimeOptions)
detectVideoShotReq.videoUrl = "http://" + (authResponse.body!.bucket ?? "") + "." + (authResponse.body!.endpoint ?? "") + "/" + (authResponse.body!.objectKey ?? "")
}
var detectVideoShotResp: DetectVideoShotResponse = try await detectVideoShotWithOptions(detectVideoShotReq as! DetectVideoShotRequest, runtime as! TeaUtils.RuntimeOptions)
return detectVideoShotResp as! DetectVideoShotResponse
}
@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
public func evaluateVideoQualityWithOptions(_ request: EvaluateVideoQualityRequest, _ runtime: TeaUtils.RuntimeOptions) async throws -> EvaluateVideoQualityResponse {
try TeaUtils.Client.validateModel(request)
var body: [String: Any] = [:]
if (!TeaUtils.Client.isUnset(request.mode)) {
body["Mode"] = request.mode ?? "";
}
if (!TeaUtils.Client.isUnset(request.videoUrl)) {
body["VideoUrl"] = request.videoUrl ?? "";
}
var req: AlibabacloudOpenApi.OpenApiRequest = AlibabacloudOpenApi.OpenApiRequest([
"body": AlibabaCloudOpenApiUtil.Client.parseToMap(body)
])
var params: AlibabacloudOpenApi.Params = AlibabacloudOpenApi.Params([
"action": "EvaluateVideoQuality",
"version": "2020-03-20",
"protocol": "HTTPS",
"pathname": "/",
"method": "POST",
"authType": "AK",
"style": "RPC",
"reqBodyType": "formData",
"bodyType": "json"
])
var tmp: [String: Any] = try await callApi(params as! AlibabacloudOpenApi.Params, req as! AlibabacloudOpenApi.OpenApiRequest, runtime as! TeaUtils.RuntimeOptions)
return Tea.TeaConverter.fromMap(EvaluateVideoQualityResponse(), tmp)
}
@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
public func evaluateVideoQuality(_ request: EvaluateVideoQualityRequest) async throws -> EvaluateVideoQualityResponse {
var runtime: TeaUtils.RuntimeOptions = TeaUtils.RuntimeOptions([:])
return try await evaluateVideoQualityWithOptions(request as! EvaluateVideoQualityRequest, runtime as! TeaUtils.RuntimeOptions)
}
@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
public func evaluateVideoQualityAdvance(_ request: EvaluateVideoQualityAdvanceRequest, _ runtime: TeaUtils.RuntimeOptions) async throws -> EvaluateVideoQualityResponse {
var accessKeyId: String = try await self._credential!.getAccessKeyId()
var accessKeySecret: String = try await self._credential!.getAccessKeySecret()
var securityToken: String = try await self._credential!.getSecurityToken()
var credentialType: String = self._credential!.getType()
var openPlatformEndpoint: String = self._openPlatformEndpoint ?? ""
if (TeaUtils.Client.empty(openPlatformEndpoint)) {
openPlatformEndpoint = "openplatform.aliyuncs.com"
}
if (TeaUtils.Client.isUnset(credentialType)) {
credentialType = "access_key"
}
var authConfig: AlibabacloudOpenApi.Config = AlibabacloudOpenApi.Config([
"accessKeyId": accessKeyId as! String,
"accessKeySecret": accessKeySecret as! String,
"securityToken": securityToken as! String,
"type": credentialType as! String,
"endpoint": openPlatformEndpoint as! String,
"protocol": self._protocol ?? "",
"regionId": self._regionId ?? ""
])
var authClient: AlibabacloudOpenPlatform20191219.Client = try AlibabacloudOpenPlatform20191219.Client(authConfig)
var authRequest: AlibabacloudOpenPlatform20191219.AuthorizeFileUploadRequest = AlibabacloudOpenPlatform20191219.AuthorizeFileUploadRequest([
"product": "videorecog",
"regionId": self._regionId ?? ""
])
var authResponse: AlibabacloudOpenPlatform20191219.AuthorizeFileUploadResponse = AlibabacloudOpenPlatform20191219.AuthorizeFileUploadResponse([:])
var ossConfig: AlibabaCloudOssSdk.Config = AlibabaCloudOssSdk.Config([
"accessKeyId": accessKeyId as! String,
"accessKeySecret": accessKeySecret as! String,
"type": "access_key",
"protocol": self._protocol ?? "",
"regionId": self._regionId ?? ""
])
var ossClient: AlibabaCloudOssSdk.Client = try AlibabaCloudOssSdk.Client(ossConfig)
var fileObj: TeaFileForm.FileField = TeaFileForm.FileField([:])
var ossHeader: AlibabaCloudOssSdk.PostObjectRequest.Header = AlibabaCloudOssSdk.PostObjectRequest.Header([:])
var uploadRequest: AlibabaCloudOssSdk.PostObjectRequest = AlibabaCloudOssSdk.PostObjectRequest([:])
var ossRuntime: AlibabaCloudOSSUtil.RuntimeOptions = AlibabaCloudOSSUtil.RuntimeOptions([:])
AlibabaCloudOpenApiUtil.Client.convert(runtime, ossRuntime)
var evaluateVideoQualityReq: EvaluateVideoQualityRequest = EvaluateVideoQualityRequest([:])
AlibabaCloudOpenApiUtil.Client.convert(request, evaluateVideoQualityReq)
if (!TeaUtils.Client.isUnset(request.videoUrlObject)) {
authResponse = try await authClient.authorizeFileUploadWithOptions(authRequest as! AlibabacloudOpenPlatform20191219.AuthorizeFileUploadRequest, runtime as! TeaUtils.RuntimeOptions)
ossConfig.accessKeyId = authResponse.body!.accessKeyId
ossConfig.endpoint = AlibabaCloudOpenApiUtil.Client.getEndpoint(authResponse.body!.endpoint, authResponse.body!.useAccelerate, self._endpointType)
ossClient = try AlibabaCloudOssSdk.Client(ossConfig)
fileObj = TeaFileForm.FileField([
"filename": authResponse.body!.objectKey ?? "",
"content": request.videoUrlObject!,
"contentType": ""
])
ossHeader = AlibabaCloudOssSdk.PostObjectRequest.Header([
"accessKeyId": authResponse.body!.accessKeyId ?? "",
"policy": authResponse.body!.encodedPolicy ?? "",
"signature": authResponse.body!.signature ?? "",
"key": authResponse.body!.objectKey ?? "",
"file": fileObj as! TeaFileForm.FileField,
"successActionStatus": "201"
])
uploadRequest = AlibabaCloudOssSdk.PostObjectRequest([
"bucketName": authResponse.body!.bucket ?? "",
"header": ossHeader as! AlibabaCloudOssSdk.PostObjectRequest.Header
])
try await ossClient.postObject(uploadRequest as! AlibabaCloudOssSdk.PostObjectRequest, ossRuntime as! AlibabaCloudOSSUtil.RuntimeOptions)
evaluateVideoQualityReq.videoUrl = "http://" + (authResponse.body!.bucket ?? "") + "." + (authResponse.body!.endpoint ?? "") + "/" + (authResponse.body!.objectKey ?? "")
}
var evaluateVideoQualityResp: EvaluateVideoQualityResponse = try await evaluateVideoQualityWithOptions(evaluateVideoQualityReq as! EvaluateVideoQualityRequest, runtime as! TeaUtils.RuntimeOptions)
return evaluateVideoQualityResp as! EvaluateVideoQualityResponse
}
@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
public func generateVideoCoverWithOptions(_ request: GenerateVideoCoverRequest, _ runtime: TeaUtils.RuntimeOptions) async throws -> GenerateVideoCoverResponse {
try TeaUtils.Client.validateModel(request)
var body: [String: Any] = [:]
if (!TeaUtils.Client.isUnset(request.isGif)) {
body["IsGif"] = request.isGif!;
}
if (!TeaUtils.Client.isUnset(request.videoUrl)) {
body["VideoUrl"] = request.videoUrl ?? "";
}
var req: AlibabacloudOpenApi.OpenApiRequest = AlibabacloudOpenApi.OpenApiRequest([
"body": AlibabaCloudOpenApiUtil.Client.parseToMap(body)
])
var params: AlibabacloudOpenApi.Params = AlibabacloudOpenApi.Params([
"action": "GenerateVideoCover",
"version": "2020-03-20",
"protocol": "HTTPS",
"pathname": "/",
"method": "POST",
"authType": "AK",
"style": "RPC",
"reqBodyType": "formData",
"bodyType": "json"
])
var tmp: [String: Any] = try await callApi(params as! AlibabacloudOpenApi.Params, req as! AlibabacloudOpenApi.OpenApiRequest, runtime as! TeaUtils.RuntimeOptions)
return Tea.TeaConverter.fromMap(GenerateVideoCoverResponse(), tmp)
}
@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
public func generateVideoCover(_ request: GenerateVideoCoverRequest) async throws -> GenerateVideoCoverResponse {
var runtime: TeaUtils.RuntimeOptions = TeaUtils.RuntimeOptions([:])
return try await generateVideoCoverWithOptions(request as! GenerateVideoCoverRequest, runtime as! TeaUtils.RuntimeOptions)
}
@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
public func generateVideoCoverAdvance(_ request: GenerateVideoCoverAdvanceRequest, _ runtime: TeaUtils.RuntimeOptions) async throws -> GenerateVideoCoverResponse {
var accessKeyId: String = try await self._credential!.getAccessKeyId()
var accessKeySecret: String = try await self._credential!.getAccessKeySecret()
var securityToken: String = try await self._credential!.getSecurityToken()
var credentialType: String = self._credential!.getType()
var openPlatformEndpoint: String = self._openPlatformEndpoint ?? ""
if (TeaUtils.Client.empty(openPlatformEndpoint)) {
openPlatformEndpoint = "openplatform.aliyuncs.com"
}
if (TeaUtils.Client.isUnset(credentialType)) {
credentialType = "access_key"
}
var authConfig: AlibabacloudOpenApi.Config = AlibabacloudOpenApi.Config([
"accessKeyId": accessKeyId as! String,
"accessKeySecret": accessKeySecret as! String,
"securityToken": securityToken as! String,
"type": credentialType as! String,
"endpoint": openPlatformEndpoint as! String,
"protocol": self._protocol ?? "",
"regionId": self._regionId ?? ""
])
var authClient: AlibabacloudOpenPlatform20191219.Client = try AlibabacloudOpenPlatform20191219.Client(authConfig)
var authRequest: AlibabacloudOpenPlatform20191219.AuthorizeFileUploadRequest = AlibabacloudOpenPlatform20191219.AuthorizeFileUploadRequest([
"product": "videorecog",
"regionId": self._regionId ?? ""
])
var authResponse: AlibabacloudOpenPlatform20191219.AuthorizeFileUploadResponse = AlibabacloudOpenPlatform20191219.AuthorizeFileUploadResponse([:])
var ossConfig: AlibabaCloudOssSdk.Config = AlibabaCloudOssSdk.Config([
"accessKeyId": accessKeyId as! String,
"accessKeySecret": accessKeySecret as! String,
"type": "access_key",
"protocol": self._protocol ?? "",
"regionId": self._regionId ?? ""
])
var ossClient: AlibabaCloudOssSdk.Client = try AlibabaCloudOssSdk.Client(ossConfig)
var fileObj: TeaFileForm.FileField = TeaFileForm.FileField([:])
var ossHeader: AlibabaCloudOssSdk.PostObjectRequest.Header = AlibabaCloudOssSdk.PostObjectRequest.Header([:])
var uploadRequest: AlibabaCloudOssSdk.PostObjectRequest = AlibabaCloudOssSdk.PostObjectRequest([:])
var ossRuntime: AlibabaCloudOSSUtil.RuntimeOptions = AlibabaCloudOSSUtil.RuntimeOptions([:])
AlibabaCloudOpenApiUtil.Client.convert(runtime, ossRuntime)
var generateVideoCoverReq: GenerateVideoCoverRequest = GenerateVideoCoverRequest([:])
AlibabaCloudOpenApiUtil.Client.convert(request, generateVideoCoverReq)
if (!TeaUtils.Client.isUnset(request.videoUrlObject)) {
authResponse = try await authClient.authorizeFileUploadWithOptions(authRequest as! AlibabacloudOpenPlatform20191219.AuthorizeFileUploadRequest, runtime as! TeaUtils.RuntimeOptions)
ossConfig.accessKeyId = authResponse.body!.accessKeyId
ossConfig.endpoint = AlibabaCloudOpenApiUtil.Client.getEndpoint(authResponse.body!.endpoint, authResponse.body!.useAccelerate, self._endpointType)
ossClient = try AlibabaCloudOssSdk.Client(ossConfig)
fileObj = TeaFileForm.FileField([
"filename": authResponse.body!.objectKey ?? "",
"content": request.videoUrlObject!,
"contentType": ""
])
ossHeader = AlibabaCloudOssSdk.PostObjectRequest.Header([
"accessKeyId": authResponse.body!.accessKeyId ?? "",
"policy": authResponse.body!.encodedPolicy ?? "",
"signature": authResponse.body!.signature ?? "",
"key": authResponse.body!.objectKey ?? "",
"file": fileObj as! TeaFileForm.FileField,
"successActionStatus": "201"
])
uploadRequest = AlibabaCloudOssSdk.PostObjectRequest([
"bucketName": authResponse.body!.bucket ?? "",
"header": ossHeader as! AlibabaCloudOssSdk.PostObjectRequest.Header
])
try await ossClient.postObject(uploadRequest as! AlibabaCloudOssSdk.PostObjectRequest, ossRuntime as! AlibabaCloudOSSUtil.RuntimeOptions)
generateVideoCoverReq.videoUrl = "http://" + (authResponse.body!.bucket ?? "") + "." + (authResponse.body!.endpoint ?? "") + "/" + (authResponse.body!.objectKey ?? "")
}
var generateVideoCoverResp: GenerateVideoCoverResponse = try await generateVideoCoverWithOptions(generateVideoCoverReq as! GenerateVideoCoverRequest, runtime as! TeaUtils.RuntimeOptions)
return generateVideoCoverResp as! GenerateVideoCoverResponse
}
@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
public func getAsyncJobResultWithOptions(_ request: GetAsyncJobResultRequest, _ runtime: TeaUtils.RuntimeOptions) async throws -> GetAsyncJobResultResponse {
try TeaUtils.Client.validateModel(request)
var body: [String: Any] = [:]
if (!TeaUtils.Client.isUnset(request.jobId)) {
body["JobId"] = request.jobId ?? "";
}
var req: AlibabacloudOpenApi.OpenApiRequest = AlibabacloudOpenApi.OpenApiRequest([
"body": AlibabaCloudOpenApiUtil.Client.parseToMap(body)
])
var params: AlibabacloudOpenApi.Params = AlibabacloudOpenApi.Params([
"action": "GetAsyncJobResult",
"version": "2020-03-20",
"protocol": "HTTPS",
"pathname": "/",
"method": "POST",
"authType": "AK",
"style": "RPC",
"reqBodyType": "formData",
"bodyType": "json"
])
var tmp: [String: Any] = try await callApi(params as! AlibabacloudOpenApi.Params, req as! AlibabacloudOpenApi.OpenApiRequest, runtime as! TeaUtils.RuntimeOptions)
return Tea.TeaConverter.fromMap(GetAsyncJobResultResponse(), tmp)
}
@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
public func getAsyncJobResult(_ request: GetAsyncJobResultRequest) async throws -> GetAsyncJobResultResponse {
var runtime: TeaUtils.RuntimeOptions = TeaUtils.RuntimeOptions([:])
return try await getAsyncJobResultWithOptions(request as! GetAsyncJobResultRequest, runtime as! TeaUtils.RuntimeOptions)
}
@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
public func recognizeVideoCastCrewListWithOptions(_ tmpReq: RecognizeVideoCastCrewListRequest, _ runtime: TeaUtils.RuntimeOptions) async throws -> RecognizeVideoCastCrewListResponse {
try TeaUtils.Client.validateModel(tmpReq)
var request: RecognizeVideoCastCrewListShrinkRequest = RecognizeVideoCastCrewListShrinkRequest([:])
AlibabaCloudOpenApiUtil.Client.convert(tmpReq, request)
if (!TeaUtils.Client.isUnset(tmpReq.params)) {
request.paramsShrink = AlibabaCloudOpenApiUtil.Client.arrayToStringWithSpecifiedStyle(tmpReq.params, "Params", "json")
}
var body: [String: Any] = [:]
if (!TeaUtils.Client.isUnset(request.paramsShrink)) {
body["Params"] = request.paramsShrink ?? "";
}
if (!TeaUtils.Client.isUnset(request.videoUrl)) {
body["VideoUrl"] = request.videoUrl ?? "";
}
var req: AlibabacloudOpenApi.OpenApiRequest = AlibabacloudOpenApi.OpenApiRequest([
"body": AlibabaCloudOpenApiUtil.Client.parseToMap(body)
])
var params: AlibabacloudOpenApi.Params = AlibabacloudOpenApi.Params([
"action": "RecognizeVideoCastCrewList",
"version": "2020-03-20",
"protocol": "HTTPS",
"pathname": "/",
"method": "POST",
"authType": "AK",
"style": "RPC",
"reqBodyType": "formData",
"bodyType": "json"
])
var tmp: [String: Any] = try await callApi(params as! AlibabacloudOpenApi.Params, req as! AlibabacloudOpenApi.OpenApiRequest, runtime as! TeaUtils.RuntimeOptions)
return Tea.TeaConverter.fromMap(RecognizeVideoCastCrewListResponse(), tmp)
}
@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
public func recognizeVideoCastCrewList(_ request: RecognizeVideoCastCrewListRequest) async throws -> RecognizeVideoCastCrewListResponse {
var runtime: TeaUtils.RuntimeOptions = TeaUtils.RuntimeOptions([:])
return try await recognizeVideoCastCrewListWithOptions(request as! RecognizeVideoCastCrewListRequest, runtime as! TeaUtils.RuntimeOptions)
}
@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
public func recognizeVideoCastCrewListAdvance(_ request: RecognizeVideoCastCrewListAdvanceRequest, _ runtime: TeaUtils.RuntimeOptions) async throws -> RecognizeVideoCastCrewListResponse {
var accessKeyId: String = try await self._credential!.getAccessKeyId()
var accessKeySecret: String = try await self._credential!.getAccessKeySecret()
var securityToken: String = try await self._credential!.getSecurityToken()
var credentialType: String = self._credential!.getType()
var openPlatformEndpoint: String = self._openPlatformEndpoint ?? ""
if (TeaUtils.Client.empty(openPlatformEndpoint)) {
openPlatformEndpoint = "openplatform.aliyuncs.com"
}
if (TeaUtils.Client.isUnset(credentialType)) {
credentialType = "access_key"
}
var authConfig: AlibabacloudOpenApi.Config = AlibabacloudOpenApi.Config([
"accessKeyId": accessKeyId as! String,
"accessKeySecret": accessKeySecret as! String,
"securityToken": securityToken as! String,
"type": credentialType as! String,
"endpoint": openPlatformEndpoint as! String,
"protocol": self._protocol ?? "",
"regionId": self._regionId ?? ""
])
var authClient: AlibabacloudOpenPlatform20191219.Client = try AlibabacloudOpenPlatform20191219.Client(authConfig)
var authRequest: AlibabacloudOpenPlatform20191219.AuthorizeFileUploadRequest = AlibabacloudOpenPlatform20191219.AuthorizeFileUploadRequest([
"product": "videorecog",
"regionId": self._regionId ?? ""
])
var authResponse: AlibabacloudOpenPlatform20191219.AuthorizeFileUploadResponse = AlibabacloudOpenPlatform20191219.AuthorizeFileUploadResponse([:])
var ossConfig: AlibabaCloudOssSdk.Config = AlibabaCloudOssSdk.Config([
"accessKeyId": accessKeyId as! String,
"accessKeySecret": accessKeySecret as! String,
"type": "access_key",
"protocol": self._protocol ?? "",
"regionId": self._regionId ?? ""
])
var ossClient: AlibabaCloudOssSdk.Client = try AlibabaCloudOssSdk.Client(ossConfig)
var fileObj: TeaFileForm.FileField = TeaFileForm.FileField([:])
var ossHeader: AlibabaCloudOssSdk.PostObjectRequest.Header = AlibabaCloudOssSdk.PostObjectRequest.Header([:])
var uploadRequest: AlibabaCloudOssSdk.PostObjectRequest = AlibabaCloudOssSdk.PostObjectRequest([:])
var ossRuntime: AlibabaCloudOSSUtil.RuntimeOptions = AlibabaCloudOSSUtil.RuntimeOptions([:])
AlibabaCloudOpenApiUtil.Client.convert(runtime, ossRuntime)
var recognizeVideoCastCrewListReq: RecognizeVideoCastCrewListRequest = RecognizeVideoCastCrewListRequest([:])
AlibabaCloudOpenApiUtil.Client.convert(request, recognizeVideoCastCrewListReq)
if (!TeaUtils.Client.isUnset(request.videoUrlObject)) {
authResponse = try await authClient.authorizeFileUploadWithOptions(authRequest as! AlibabacloudOpenPlatform20191219.AuthorizeFileUploadRequest, runtime as! TeaUtils.RuntimeOptions)
ossConfig.accessKeyId = authResponse.body!.accessKeyId
ossConfig.endpoint = AlibabaCloudOpenApiUtil.Client.getEndpoint(authResponse.body!.endpoint, authResponse.body!.useAccelerate, self._endpointType)
ossClient = try AlibabaCloudOssSdk.Client(ossConfig)
fileObj = TeaFileForm.FileField([
"filename": authResponse.body!.objectKey ?? "",
"content": request.videoUrlObject!,
"contentType": ""
])
ossHeader = AlibabaCloudOssSdk.PostObjectRequest.Header([
"accessKeyId": authResponse.body!.accessKeyId ?? "",
"policy": authResponse.body!.encodedPolicy ?? "",
"signature": authResponse.body!.signature ?? "",
"key": authResponse.body!.objectKey ?? "",
"file": fileObj as! TeaFileForm.FileField,
"successActionStatus": "201"
])
uploadRequest = AlibabaCloudOssSdk.PostObjectRequest([
"bucketName": authResponse.body!.bucket ?? "",
"header": ossHeader as! AlibabaCloudOssSdk.PostObjectRequest.Header
])
try await ossClient.postObject(uploadRequest as! AlibabaCloudOssSdk.PostObjectRequest, ossRuntime as! AlibabaCloudOSSUtil.RuntimeOptions)
recognizeVideoCastCrewListReq.videoUrl = "http://" + (authResponse.body!.bucket ?? "") + "." + (authResponse.body!.endpoint ?? "") + "/" + (authResponse.body!.objectKey ?? "")
}
var recognizeVideoCastCrewListResp: RecognizeVideoCastCrewListResponse = try await recognizeVideoCastCrewListWithOptions(recognizeVideoCastCrewListReq as! RecognizeVideoCastCrewListRequest, runtime as! TeaUtils.RuntimeOptions)
return recognizeVideoCastCrewListResp as! RecognizeVideoCastCrewListResponse
}
@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
public func splitVideoPartsWithOptions(_ request: SplitVideoPartsRequest, _ runtime: TeaUtils.RuntimeOptions) async throws -> SplitVideoPartsResponse {
try TeaUtils.Client.validateModel(request)
var body: [String: Any] = [:]
if (!TeaUtils.Client.isUnset(request.maxTime)) {
body["MaxTime"] = request.maxTime!;
}
if (!TeaUtils.Client.isUnset(request.minTime)) {
body["MinTime"] = request.minTime!;
}
if (!TeaUtils.Client.isUnset(request.template)) {
body["Template"] = request.template ?? "";
}
if (!TeaUtils.Client.isUnset(request.videoUrl)) {
body["VideoUrl"] = request.videoUrl ?? "";
}
var req: AlibabacloudOpenApi.OpenApiRequest = AlibabacloudOpenApi.OpenApiRequest([
"body": AlibabaCloudOpenApiUtil.Client.parseToMap(body)
])
var params: AlibabacloudOpenApi.Params = AlibabacloudOpenApi.Params([
"action": "SplitVideoParts",
"version": "2020-03-20",
"protocol": "HTTPS",
"pathname": "/",
"method": "POST",
"authType": "AK",
"style": "RPC",
"reqBodyType": "formData",
"bodyType": "json"
])
var tmp: [String: Any] = try await callApi(params as! AlibabacloudOpenApi.Params, req as! AlibabacloudOpenApi.OpenApiRequest, runtime as! TeaUtils.RuntimeOptions)
return Tea.TeaConverter.fromMap(SplitVideoPartsResponse(), tmp)
}
@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
public func splitVideoParts(_ request: SplitVideoPartsRequest) async throws -> SplitVideoPartsResponse {
var runtime: TeaUtils.RuntimeOptions = TeaUtils.RuntimeOptions([:])
return try await splitVideoPartsWithOptions(request as! SplitVideoPartsRequest, runtime as! TeaUtils.RuntimeOptions)
}
@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
public func splitVideoPartsAdvance(_ request: SplitVideoPartsAdvanceRequest, _ runtime: TeaUtils.RuntimeOptions) async throws -> SplitVideoPartsResponse {
var accessKeyId: String = try await self._credential!.getAccessKeyId()
var accessKeySecret: String = try await self._credential!.getAccessKeySecret()
var securityToken: String = try await self._credential!.getSecurityToken()
var credentialType: String = self._credential!.getType()
var openPlatformEndpoint: String = self._openPlatformEndpoint ?? ""
if (TeaUtils.Client.empty(openPlatformEndpoint)) {
openPlatformEndpoint = "openplatform.aliyuncs.com"
}
if (TeaUtils.Client.isUnset(credentialType)) {
credentialType = "access_key"
}
var authConfig: AlibabacloudOpenApi.Config = AlibabacloudOpenApi.Config([
"accessKeyId": accessKeyId as! String,
"accessKeySecret": accessKeySecret as! String,
"securityToken": securityToken as! String,
"type": credentialType as! String,
"endpoint": openPlatformEndpoint as! String,
"protocol": self._protocol ?? "",
"regionId": self._regionId ?? ""
])
var authClient: AlibabacloudOpenPlatform20191219.Client = try AlibabacloudOpenPlatform20191219.Client(authConfig)
var authRequest: AlibabacloudOpenPlatform20191219.AuthorizeFileUploadRequest = AlibabacloudOpenPlatform20191219.AuthorizeFileUploadRequest([
"product": "videorecog",
"regionId": self._regionId ?? ""
])
var authResponse: AlibabacloudOpenPlatform20191219.AuthorizeFileUploadResponse = AlibabacloudOpenPlatform20191219.AuthorizeFileUploadResponse([:])
var ossConfig: AlibabaCloudOssSdk.Config = AlibabaCloudOssSdk.Config([
"accessKeyId": accessKeyId as! String,
"accessKeySecret": accessKeySecret as! String,
"type": "access_key",
"protocol": self._protocol ?? "",
"regionId": self._regionId ?? ""
])
var ossClient: AlibabaCloudOssSdk.Client = try AlibabaCloudOssSdk.Client(ossConfig)
var fileObj: TeaFileForm.FileField = TeaFileForm.FileField([:])
var ossHeader: AlibabaCloudOssSdk.PostObjectRequest.Header = AlibabaCloudOssSdk.PostObjectRequest.Header([:])
var uploadRequest: AlibabaCloudOssSdk.PostObjectRequest = AlibabaCloudOssSdk.PostObjectRequest([:])
var ossRuntime: AlibabaCloudOSSUtil.RuntimeOptions = AlibabaCloudOSSUtil.RuntimeOptions([:])
AlibabaCloudOpenApiUtil.Client.convert(runtime, ossRuntime)
var splitVideoPartsReq: SplitVideoPartsRequest = SplitVideoPartsRequest([:])
AlibabaCloudOpenApiUtil.Client.convert(request, splitVideoPartsReq)
if (!TeaUtils.Client.isUnset(request.videoUrlObject)) {
authResponse = try await authClient.authorizeFileUploadWithOptions(authRequest as! AlibabacloudOpenPlatform20191219.AuthorizeFileUploadRequest, runtime as! TeaUtils.RuntimeOptions)
ossConfig.accessKeyId = authResponse.body!.accessKeyId
ossConfig.endpoint = AlibabaCloudOpenApiUtil.Client.getEndpoint(authResponse.body!.endpoint, authResponse.body!.useAccelerate, self._endpointType)
ossClient = try AlibabaCloudOssSdk.Client(ossConfig)
fileObj = TeaFileForm.FileField([
"filename": authResponse.body!.objectKey ?? "",
"content": request.videoUrlObject!,
"contentType": ""
])
ossHeader = AlibabaCloudOssSdk.PostObjectRequest.Header([
"accessKeyId": authResponse.body!.accessKeyId ?? "",
"policy": authResponse.body!.encodedPolicy ?? "",
"signature": authResponse.body!.signature ?? "",
"key": authResponse.body!.objectKey ?? "",
"file": fileObj as! TeaFileForm.FileField,
"successActionStatus": "201"
])
uploadRequest = AlibabaCloudOssSdk.PostObjectRequest([
"bucketName": authResponse.body!.bucket ?? "",
"header": ossHeader as! AlibabaCloudOssSdk.PostObjectRequest.Header
])
try await ossClient.postObject(uploadRequest as! AlibabaCloudOssSdk.PostObjectRequest, ossRuntime as! AlibabaCloudOSSUtil.RuntimeOptions)
splitVideoPartsReq.videoUrl = "http://" + (authResponse.body!.bucket ?? "") + "." + (authResponse.body!.endpoint ?? "") + "/" + (authResponse.body!.objectKey ?? "")
}
var splitVideoPartsResp: SplitVideoPartsResponse = try await splitVideoPartsWithOptions(splitVideoPartsReq as! SplitVideoPartsRequest, runtime as! TeaUtils.RuntimeOptions)
return splitVideoPartsResp as! SplitVideoPartsResponse
}
@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
public func understandVideoContentWithOptions(_ request: UnderstandVideoContentRequest, _ runtime: TeaUtils.RuntimeOptions) async throws -> UnderstandVideoContentResponse {
try TeaUtils.Client.validateModel(request)
var body: [String: Any] = [:]
if (!TeaUtils.Client.isUnset(request.videoURL)) {
body["VideoURL"] = request.videoURL ?? "";
}
var req: AlibabacloudOpenApi.OpenApiRequest = AlibabacloudOpenApi.OpenApiRequest([
"body": AlibabaCloudOpenApiUtil.Client.parseToMap(body)
])
var params: AlibabacloudOpenApi.Params = AlibabacloudOpenApi.Params([
"action": "UnderstandVideoContent",
"version": "2020-03-20",
"protocol": "HTTPS",
"pathname": "/",
"method": "POST",
"authType": "AK",
"style": "RPC",
"reqBodyType": "formData",
"bodyType": "json"
])
var tmp: [String: Any] = try await callApi(params as! AlibabacloudOpenApi.Params, req as! AlibabacloudOpenApi.OpenApiRequest, runtime as! TeaUtils.RuntimeOptions)
return Tea.TeaConverter.fromMap(UnderstandVideoContentResponse(), tmp)
}
@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
public func understandVideoContent(_ request: UnderstandVideoContentRequest) async throws -> UnderstandVideoContentResponse {
var runtime: TeaUtils.RuntimeOptions = TeaUtils.RuntimeOptions([:])
return try await understandVideoContentWithOptions(request as! UnderstandVideoContentRequest, runtime as! TeaUtils.RuntimeOptions)
}
@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
public func understandVideoContentAdvance(_ request: UnderstandVideoContentAdvanceRequest, _ runtime: TeaUtils.RuntimeOptions) async throws -> UnderstandVideoContentResponse {
var accessKeyId: String = try await self._credential!.getAccessKeyId()
var accessKeySecret: String = try await self._credential!.getAccessKeySecret()
var securityToken: String = try await self._credential!.getSecurityToken()
var credentialType: String = self._credential!.getType()
var openPlatformEndpoint: String = self._openPlatformEndpoint ?? ""
if (TeaUtils.Client.empty(openPlatformEndpoint)) {
openPlatformEndpoint = "openplatform.aliyuncs.com"
}
if (TeaUtils.Client.isUnset(credentialType)) {
credentialType = "access_key"
}
var authConfig: AlibabacloudOpenApi.Config = AlibabacloudOpenApi.Config([
"accessKeyId": accessKeyId as! String,
"accessKeySecret": accessKeySecret as! String,
"securityToken": securityToken as! String,
"type": credentialType as! String,
"endpoint": openPlatformEndpoint as! String,
"protocol": self._protocol ?? "",
"regionId": self._regionId ?? ""
])
var authClient: AlibabacloudOpenPlatform20191219.Client = try AlibabacloudOpenPlatform20191219.Client(authConfig)
var authRequest: AlibabacloudOpenPlatform20191219.AuthorizeFileUploadRequest = AlibabacloudOpenPlatform20191219.AuthorizeFileUploadRequest([
"product": "videorecog",
"regionId": self._regionId ?? ""
])
var authResponse: AlibabacloudOpenPlatform20191219.AuthorizeFileUploadResponse = AlibabacloudOpenPlatform20191219.AuthorizeFileUploadResponse([:])
var ossConfig: AlibabaCloudOssSdk.Config = AlibabaCloudOssSdk.Config([
"accessKeyId": accessKeyId as! String,
"accessKeySecret": accessKeySecret as! String,
"type": "access_key",
"protocol": self._protocol ?? "",
"regionId": self._regionId ?? ""
])
var ossClient: AlibabaCloudOssSdk.Client = try AlibabaCloudOssSdk.Client(ossConfig)
var fileObj: TeaFileForm.FileField = TeaFileForm.FileField([:])
var ossHeader: AlibabaCloudOssSdk.PostObjectRequest.Header = AlibabaCloudOssSdk.PostObjectRequest.Header([:])
var uploadRequest: AlibabaCloudOssSdk.PostObjectRequest = AlibabaCloudOssSdk.PostObjectRequest([:])
var ossRuntime: AlibabaCloudOSSUtil.RuntimeOptions = AlibabaCloudOSSUtil.RuntimeOptions([:])
AlibabaCloudOpenApiUtil.Client.convert(runtime, ossRuntime)
var understandVideoContentReq: UnderstandVideoContentRequest = UnderstandVideoContentRequest([:])
AlibabaCloudOpenApiUtil.Client.convert(request, understandVideoContentReq)
if (!TeaUtils.Client.isUnset(request.videoURLObject)) {
authResponse = try await authClient.authorizeFileUploadWithOptions(authRequest as! AlibabacloudOpenPlatform20191219.AuthorizeFileUploadRequest, runtime as! TeaUtils.RuntimeOptions)
ossConfig.accessKeyId = authResponse.body!.accessKeyId
ossConfig.endpoint = AlibabaCloudOpenApiUtil.Client.getEndpoint(authResponse.body!.endpoint, authResponse.body!.useAccelerate, self._endpointType)
ossClient = try AlibabaCloudOssSdk.Client(ossConfig)
fileObj = TeaFileForm.FileField([
"filename": authResponse.body!.objectKey ?? "",
"content": request.videoURLObject!,
"contentType": ""
])
ossHeader = AlibabaCloudOssSdk.PostObjectRequest.Header([
"accessKeyId": authResponse.body!.accessKeyId ?? "",
"policy": authResponse.body!.encodedPolicy ?? "",
"signature": authResponse.body!.signature ?? "",
"key": authResponse.body!.objectKey ?? "",
"file": fileObj as! TeaFileForm.FileField,
"successActionStatus": "201"
])
uploadRequest = AlibabaCloudOssSdk.PostObjectRequest([
"bucketName": authResponse.body!.bucket ?? "",
"header": ossHeader as! AlibabaCloudOssSdk.PostObjectRequest.Header
])
try await ossClient.postObject(uploadRequest as! AlibabaCloudOssSdk.PostObjectRequest, ossRuntime as! AlibabaCloudOSSUtil.RuntimeOptions)
understandVideoContentReq.videoURL = "http://" + (authResponse.body!.bucket ?? "") + "." + (authResponse.body!.endpoint ?? "") + "/" + (authResponse.body!.objectKey ?? "")
}
var understandVideoContentResp: UnderstandVideoContentResponse = try await understandVideoContentWithOptions(understandVideoContentReq as! UnderstandVideoContentRequest, runtime as! TeaUtils.RuntimeOptions)
return understandVideoContentResp as! UnderstandVideoContentResponse
}
}