混剪API接口文档
基础信息
- 基础URL:https://api.lingyiwanwu.com/v1/mix_cut_video
- 认证方式:请求头加上如下header:
- Authorization: Bearer your_api_key或Authorization: your_api_key
通用响应格式
所有接口都使用统一的响应格式WebResponse:
详细接口说明
1、获取视频上传链接&上传视频资源(这是两步!两步同时完成,才算资源彻底上传完成)
- 接口:/upload_resource
- 方法:POST
- 描述:获取预签名的视频上传URL
- 请求体:
- 响应:
- 第一步:获取视频上传链接效果curl:
- 第二步:有了预签名的上传URL之后,需要进行本地视频的真正上传(自己进行curl请求):
1curl -X PUT -H "Content-Type: video/mp4" -T /Users/xxx/文件路径 "https:预签名的上传URL"
2
3解释:
41、-T后面跟的是本地文件的资源路径,要精确到具体的文件,比如 /Users/test/myVideo.mp4
52、Content-Type有,video/avi,video/mp4等等,需要和第一步接口请求里面的contentType一致
63、最后一个参数就是第一步接口返回的https链接,链接前后需要加入""
74、这个curl会给你返回一个response,其中response.data.id就是该资源的ResourceId;
8{"code":0,"message":"Success","data":{"id":"2630ebd2ccca6c70f45e94ec84bf7dec"}}
9
2. 获取视频资源信息
- 接口:/get_resource_by_id
- 方法:GET
- 参数:resource_id: 资源ID (string, 必填)
- 响应:(建议只是关注url字段和资源的元数据信息meta,由于meta是个不确定的结构体,java请求方可以用Object来接收)
1{
2 "code": 200,
3 "message": "success",
4 "data": {
5 "id": "da90435b13c04113e747fdf956353573",
6 "mime": "video/mp4",
7 "name": "1.mp4",
8 "url": "https://pretrain-genius-resource-sh.oss-cn-shanghai.aliyuncs.com/yds%2Fprod%2F57f12bcd5688a8ef29fd120a711ed62d%2Fda90435b13c04113e747fdf956353573?OSSAccessKeyId=xxx&Expires=1730819476&Signature=xxx",
9 "source": {
10 "type": "local_upload",
11 "path": "1.mp4"
12 },
13 "meta": {
14 "AudioStreams": [
15 {
16 "Bitrate": 64379,
17 "ChannelLayout": "stereo",
18 "Channels": 2,
19 "CodecLongName": "AAC (Advanced Audio Coding)",
20 "CodecName": "aac",
21 "CodecTag": "0x6134706d",
22 "CodecTagString": "mp4a",
23 "Duration": 13.976961,
24 "FrameCount": 604,
25 "Index": 1,
26 "SampleFormat": "fltp",
27 "SampleRate": 44100,
28 "TimeBase": "1/44100"
29 }
30 ],
31 "Bitrate": 1323041,
32 "Duration": 13.977,
33 "FormatLongName": "QuickTime / MOV",
34 "FormatName": "mov,mp4,m4a,3gp,3g2,mj2",
35 "ProduceTime": "2024-10-30T16:21:18Z",
36 "RequestId": "5468AB4D-50FF-584A-9B9B-E5B9C2B50B00",
37 "Size": 2311519,
38 "StreamCount": 2,
39 "VideoHeight": 1024,
40 "VideoStreams": [
41 {
42 "AverageFrameRate": "30/1",
43 "BitDepth": 8,
44 "Bitrate": 1253129,
45 "CodecLongName": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
46 "CodecName": "h264",
47 "CodecTag": "0x31637661",
48 "CodecTagString": "avc1",
49 "ColorPrimaries": "bt709",
50 "ColorRange": "tv",
51 "ColorSpace": "bt709",
52 "ColorTransfer": "bt709",
53 "DisplayAspectRatio": "9:16",
54 "Duration": 13.933333,
55 "FrameCount": 418,
56 "FrameRate": "30/1",
57 "HasBFrames": 2,
58 "Height": 1024,
59 "Level": 31,
60 "PixelFormat": "yuv420p",
61 "Profile": "High",
62 "SampleAspectRatio": "1:1",
63 "TimeBase": "1/15360",
64 "Width": 576
65 }
66 ],
67 "VideoWidth": 576
68 },
69 "created_at": "2024-11-04T11:48:13.634000Z",
70 "uploaded_at": "2024-11-04T11:48:17.691000Z",
71 "updated_at": "2024-11-04T11:48:17.691000Z",
72 "chapters": [],
73 "transcript_id": ""
74 }
75}
76
- 效果curl:
3. 创建新任务
- 接口:/create_new_task
- 方法:POST
- 描述:创建新的混剪任务(返回的是混剪整个流程的主任务Id,改主任务流程下会有3个子任务(视频summary提取任务、混剪脚本的生成任务、视频生成任务))
- 响应:
- 效果curl:
4. 更新主任务BgmId
- 接口:/updateTaskBgm
- 方法:POST
- 描述:更新生成视频的bgmId(背景音乐)这里的bgmId也就是resourceId,也是在第一个接口里面说明了,详情看第一个接口。
- 请求体:
- 响应:
- 使用curl调用示例:
5. 一键混剪
- 接口:/one_key_submit_task
- 方法:POST
- 描述:提交一键混剪任务,
对于视频的限制条件有:1、最多支持5个视频,最少支持3个视频;2、视频长宽比例9:16;3、视频长度120s以内,也就是2分钟; - 请求体:
- 响应:
- 效果curl:
1curl --location 'http://api.lingyiwanwu.com/v1/mix_cut_video/one_key_submit_task \
2--header 'Authorization: Bearer your_api_key' \
3--header 'Content-Type: application/json' \
4--data '{
5 "videoIdList": ["视频ID1","视频ID2","视频ID3"], // 视频ID列表,最多5个,最少3个
6 "taskId": 123 // 任务ID,必须大于0,这个Id就是上面生成的主任务Id
7}'
8
6. 获取任务信息
- 接口:/get_task_info
- 方法:GET
- 参数:
taskId: 任务ID (integer, 必填) - 响应:
1{
2 "code": 200,
3 "message": "success",
4 "data": {
5 "userMixCutMainTaskInfo": {}, // 主任务信息
6 "videoSummaryList": [], // 视频解析任务列表
7 "videoScriptInfo": {}, // 脚本生成任务信息
8 "videoMashupList": [] // 混剪视频生成任务列表
9 }
10}
11
12主任务信息:
13"userMixCutMainTaskAPIInfo": {
14 Integer id;
15 String userId;
16 String appId;
17 String bgmId;
18}
19视频解析任务列表:
20"videoSummaryList":[
21 {
22 Integer taskId;
23 String userId;
24 String appId;
25 String taskRes;
26 }
27]
28脚本生成任务信息:
29"videoScriptInfo": {
30 Integer taskId;
31 String userId;
32 String appId;
33 String taskRes;
34}
35混剪视频生成任务列表:
36"videoMashupList": [
37 {
38 Integer taskId;
39 String userId;
40 String appId;
41 String taskRes;
42 }
43]
44见备注附件 举例.json,如果无附件请联系客服处理。
45
- 效果curl:
7. 获取下一个视频
- 接口:/generate_next_video
- 方法:POST
- 描述:获取下一个待处理的视频
- 请求体:
- 响应:
- 使用curl调用示例:
错误码说明
- 200: 成功
- 400: 请求参数错误
- 401: 未授权(API key无效)
- 429: 请求频率超限
- 500: 系统内部错误
注意事项
- 所有接口都需要通过 Authorization头进行身份验证
- 所有接口都有频率限制(具体限制规则待补充)
- 视频上传数量限制为每次最多5个,最少3个
- 每个请求都会返回TRACE-ID用于问题追踪
- 建议在调用接口时做好异常处理,特别是网络超时等情况