视频不是聊天请求
已确认的视频任务适配采用 POST /v1/videos。软件必须支持异步任务,不能把视频模型直接交给 /v1/chat/completions,也不能假定 /v2/videos/generations 是通用入口。
流程:核对能力 → 提交一次 → 保存任务 ID → 按 ID 查询 → 取得视频。
1. 提交任务
{
"model": "YOUR_VIDEO_MODEL_ID",
"prompt": "海边日落,镜头缓慢向前推进",
"seconds": 8,
"aspect_ratio": "16:9",
"resolution": "720p"
}
curl --fail-with-body 'https://api.nailongapi.cc/v1/videos' \
-H "Authorization: Bearer ${NAILONG_API_KEY}" \
-H 'Content-Type: application/json' \
--data-binary @video-request.json
把 JSON 保存为 video-request.json。示例中的8秒、720p、16:9只展示字段位置;执行前必须确认所选型号支持这些参数及价格。提交可能收费,禁止自动重试这条 POST。
| 字段 | 校验要点 |
|---|---|
model |
当前账户有权限的精确 ID |
prompt |
非空文本;不能代替结构化时长和比例 |
seconds |
支持的整数时长;固定值、枚举、范围要区分 |
aspect_ratio |
按模型比例枚举,不套用图片尺寸公式 |
resolution |
当前支持的清晰度;不同清晰度可能限制不同最大时长 |
images、videos、audios |
当前兼容契约使用公网 URL 数组;数量按模型校验 |
某些适配器兼容 ratio、image_urls 或时长别名,但不能视作所有视频接口都支持。优先发送已确认契约的单一字段,避免别名冲突。
参考素材
{
"images": ["https://your-public-relay.example/media/reference.png"],
"videos": ["https://your-public-relay.example/media/motion.mp4"],
"audios": ["https://your-public-relay.example/media/music.mp3"]
}
这是可选字段片段,合并到请求前先核对数量和格式。不支持的类型应省略。your-public-relay.example 是不可直接使用的占位域名,不是官方上传接口。素材读取要求见 素材与中转。
2. 保存创建回执
该已确认适配契约的任务回执示意:
{
"id": "task_example",
"object": "video",
"model": "YOUR_VIDEO_MODEL_ID",
"status": "queued",
"progress": 0,
"created_at": 1700000000
}
立即保存 id、客户归属、请求参数和所用协议。该标准回执读取 id;其他经确认的插件若使用不同字段,应单独适配,不要模糊猜测任意嵌套字符串。
创建回执可能没有最终视频 URL。只有收到200但没有 ID、提交连接中断或超时,均属于提交结果不明:先核查任务和用量记录,不能自动重新生成。
3. 查询进度
curl --fail-with-body 'https://api.nailongapi.cc/v1/videos/task_example' \
-H "Authorization: Bearer ${NAILONG_API_KEY}"
替换为自己的任务 ID,始终使用有权访问该任务的密钥。典型状态:
| 状态 | 客户端处理 |
|---|---|
queued |
排队,继续查询 |
in_progress |
生成中,显示进度并继续查询 |
completed |
进入结果下载 |
failed |
保存并展示脱敏的 error.message,停止查询 |
unknown / 无法识别 |
保留 ID,核对协议,不能冒充成功或擅自重提 |
可以每10–30秒观察一次,并为每次 HTTP 设置超时;遇到429、临时5xx或网络故障,按限次退避和合理的 Retry-After 处理。达到本地观察上限后暂停并保留 ID,之后可恢复查询。
pending 持续30分钟不等于上游失败。停止本地轮询也不等于取消服务端任务或自动退款。页面刷新、程序重启后应恢复查询已有任务,不再次 POST。
4. 下载视频
在该已确认视频适配器中,内容入口为 GET /v1/videos/{id}/content,需要鉴权;其他插件须核对自己的契约:
curl --fail-with-body 'https://api.nailongapi.cc/v1/videos/task_example/content' \
-H "Authorization: Bearer ${NAILONG_API_KEY}" \
--output video.mp4
不要把未确认的重定向目标自动附上 Bearer。若接口返回3xx,由接入方确认同站受信跳转或采用其已验证的下载流程。浏览器视频标签无法任意附加 Bearer,可由客户后端鉴权下载并提供受控访问;不要把密钥拼进视频 URL。
不同插件可能提供额外的 url、video_url 或结果结构,必须按实际契约解析,不假定所有成功响应都有公网直链。