统一图片与视频生成接口
接入 JunboTop API
使用一个令牌调用站内已开放的图片和视频模型。视频采用异步任务:先提交,再查询,成功后获取成片地址。
01
创建令牌
登录控制台,在令牌管理中创建普通 API 令牌。
02
提交任务
请求头携带 Bearer Token,选择带清晰度的模型名。
03
查询结果
使用返回的任务 ID 轮询,完成后读取视频 URL。
模型名必须完整
请使用 doubao-seedance-2.0-720p 这类带清晰度的名称。旧名称 doubao-seedance-2.0 已停止分发。
Authentication
身份认证
所有生成和查询请求都需要在请求头中携带令牌。不要把令牌写入前端源码、公开仓库或聊天截图。
HTTP Header
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Video API
创建视频任务
https://junbotop.cn/v1/videos成功提交后会返回任务 ID。提交成功不等于生成完成,必须继续查询任务状态。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 模型广场中显示的完整模型名 |
prompt | string | 是 | 视频内容、主体动作、镜头和风格描述 |
duration | integer | 否 | 视频秒数;可选值受具体模型限制 |
aspect_ratio | string | 否 | 例如 16:9、9:16、1:1 |
image_url | string | 图生视频时 | 可公开访问的 HTTPS 图片地址 |
video_url | string | 运镜模型时 | Motion Control 使用的参考视频地址 |
文生视频
curl -X POST "https://junbotop.cn/v1/videos" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2.0-720p",
"prompt": "电影感镜头,一辆汽车在雨夜城市街道上行驶",
"duration": 5,
"aspect_ratio": "16:9"
}'Python requests
import requests
response = requests.post(
"https://junbotop.cn/v1/videos",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"model": "doubao-seedance-2.0-720p",
"prompt": "电影感镜头,一辆汽车在雨夜城市街道上行驶",
"duration": 5,
"aspect_ratio": "16:9",
},
timeout=60,
)
response.raise_for_status()
task = response.json()
print(task)Node.js fetch
const response = await fetch("https://junbotop.cn/v1/videos", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "doubao-seedance-2.0-720p",
prompt: "电影感镜头,一辆汽车在雨夜城市街道上行驶",
duration: 5,
aspect_ratio: "16:9"
})
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());图生视频请求示例
JSON Body
{
"model": "kling-3.0-turbo-720p",
"prompt": "人物缓慢转身看向镜头,保持面部和服装一致",
"image_url": "https://example.com/input.jpg",
"duration": 5,
"aspect_ratio": "16:9"
}Task API
查询视频任务
https://junbotop.cn/v1/videos/{task_id}建议每 5–10 秒查询一次,不要高频轮询。状态完成后,从响应中的结果字段读取视频地址。
cURL
curl "https://junbotop.cn/v1/videos/task_xxxxxxxxx" \
-H "Authorization: Bearer YOUR_API_KEY"
queued→processing→completed
failed
兼容返回结构
不同上游模型的状态字段或结果字段可能略有差异。程序应同时兼容 id/task_id、status/state 和 url/video_url。
Image API
生成图片
https://junbotop.cn/v1/images/generations分辨率已经包含在拆分后的模型名中,例如 nano-banana2-2k,无需重复指定。每次默认生成一张。
cURL
curl -X POST "https://junbotop.cn/v1/images/generations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana2-2k",
"prompt": "极简风格的智能手表产品海报,白色背景,棚拍光线",
"n": 1
}'Live Pricing
模型与价格
正在读取线上最新价格…
视频按秒计费预计费用 = 单价 × 实际生成时长图片按次计费以一次成功请求生成一张为准
Troubleshooting
错误处理
| 状态码或提示 | 原因 | 处理方式 |
|---|---|---|
400 prompt is required | 缺少提示词 | 请求体增加非空 prompt |
401 Invalid token | 令牌缺失、错误或已失效 | 检查 Bearer Token,重新创建令牌 |
No available channel | 模型名错误或使用了旧入口 | 从本文档复制完整模型名,特别注意清晰度后缀 |
402 | 账户额度不足 | 登录控制台充值或联系管理员 |
429 | 请求频率或并发超限 | 降低并发并采用指数退避重试 |
500 / 502 / 504 | 上游异常或生成超时 | 保留 Request ID;不要立即重复提交付费任务 |
failed | 异步任务最终失败 | 记录任务 ID 和返回原因,再决定是否重试 |
Production
生产环境建议
1服务端保存令牌不要把 API Key 放在浏览器或客户端安装包中。
2保存任务 ID提交后立即持久化,以便断线后继续查询。
3控制轮询频率建议 5–10 秒一次,并设置最长等待时间。
4记录 Request ID出现异常时用于快速定位中转和上游日志。
5区分提交与完成只有最终状态成功并取得文件地址,才算生成完成。
没有找到相关内容。