48 lines
2.3 KiB
Go
48 lines
2.3 KiB
Go
package video
|
||
|
||
import "github.com/gogf/gf/v2/frame/g"
|
||
|
||
// ---------- 提交视频分析任务 ----------
|
||
|
||
// AnalysisReq 提交视频分析任务请求
|
||
type AnalysisReq struct {
|
||
g.Meta `path:"/video/analysis" method:"post" tags:"视频分析" summary:"提交视频分析任务" dc:"接收视频链接数组,后台异步串行分析,立即返回taskId"`
|
||
VideoURLs []string `json:"video_urls" v:"required#视频URL列表不能为空" dc:"视频URL列表"`
|
||
CallbackURL string `json:"callback_url" v:"required#回调地址不能为空" dc:"回调地址,分析完成后POST结果到该地址"`
|
||
}
|
||
|
||
// CreateAnalysisTaskRes 创建视频分析任务响应
|
||
type CreateAnalysisTaskRes struct {
|
||
TaskID string `json:"taskId" dc:"任务ID"`
|
||
}
|
||
|
||
// ---------- 查询任务进度/结果 ----------
|
||
|
||
// GetAnalysisTaskReq 查询视频分析任务请求
|
||
type GetAnalysisTaskReq struct {
|
||
g.Meta `path:"/video/analysis/task/{taskId}" method:"get" tags:"视频分析" summary:"查询分析任务结果" dc:"根据taskId查询视频分析任务的进度和结果"`
|
||
TaskID string `json:"taskId" dc:"任务ID"`
|
||
}
|
||
|
||
// AnalysisDetailItem 单个视频分析结果项
|
||
type AnalysisDetailItem struct {
|
||
VideoURL string `json:"video_url" dc:"原始视频URL"`
|
||
VideoSavePath string `json:"video_save_path" dc:"视频本地保存路径"`
|
||
Status string `json:"status" dc:"状态: pending/success/failed"`
|
||
CaptionResult interface{} `json:"caption_result,omitempty" dc:"Caption接口返回结果"`
|
||
FailReason string `json:"fail_reason,omitempty" dc:"失败原因"`
|
||
}
|
||
|
||
// GetAnalysisTaskRes 查询视频分析任务响应
|
||
type GetAnalysisTaskRes struct {
|
||
TaskID string `json:"taskId" dc:"任务ID"`
|
||
Status string `json:"status" dc:"状态: pending/processing/success/failed"`
|
||
Total int `json:"total" dc:"视频总数"`
|
||
Processed int `json:"processed" dc:"已处理数"`
|
||
SuccessCount int `json:"successCount" dc:"成功数"`
|
||
FailedCount int `json:"failedCount" dc:"失败数"`
|
||
List []AnalysisDetailItem `json:"list" dc:"视频详情列表"`
|
||
ErrorMessage string `json:"errorMessage,omitempty" dc:"错误信息"`
|
||
CreatedAt int64 `json:"createdAt" dc:"创建时间戳"`
|
||
}
|