{"data":{"id":81,"slug":"openplane-seedance-2-0-channel-t","title":"Seedance2.0 · 创境渠道T线路 接入文档","summary":"异步视频生成：提交、查询和结果下载","source_type":"markdown","markdown_content":"# Seedance2.0 · 创境渠道T线路 接入文档\n\n异步视频任务：提交后轮询，完成后从 `metadata.url` 下载视频。\n\n## 接口与鉴权\n\n| 用途 | 方法与地址 |\n|---|---|\n| 提交 | `POST https://api.orbiorbi.com/v1/tasks` |\n| 查询 | `GET https://api.orbiorbi.com/v1/tasks/{task_id}` |\n\n```http\nAuthorization: Bearer $ORBIS_API_KEY\nContent-Type: application/json\n```\n\n模型 ID：`seedance-2.0-pro`。使用绑定「Seedance2.0 · 创境渠道T线路」的 API Key。\n\n## 最小示例\n\n```bash\ncurl -X POST 'https://api.orbiorbi.com/v1/tasks' \\\n  -H \"Authorization: Bearer $ORBIS_API_KEY\" \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"model\": \"seedance-2.0-pro\", \"prompt\": \"一片绿叶在微风中轻轻摇动，固定镜头，自然光。\", \"duration_sec\": 4, \"resolution\": \"1080p\", \"aspect_ratio\": \"16:9\", \"enable_audio\": true}'\n```\n\n保存返回的 `id`，供下一步查询使用。\n\nPython（标准库，提交一次后查询；先设置 `ORBIS_API_KEY`）：\n\n```python\nimport json, os, time, urllib.request\nbase = 'https://api.orbiorbi.com/v1/tasks'\nheaders = {'Authorization': 'Bearer ' + os.environ['ORBIS_API_KEY'], 'Content-Type': 'application/json'}\npayload = json.loads(\"{\\\"model\\\": \\\"seedance-2.0-pro\\\", \\\"prompt\\\": \\\"一片绿叶在微风中轻轻摇动，固定镜头，自然光。\\\", \\\"duration_sec\\\": 4, \\\"resolution\\\": \\\"1080p\\\", \\\"aspect_ratio\\\": \\\"16:9\\\", \\\"enable_audio\\\": true}\")\nreq = urllib.request.Request(base, data=json.dumps(payload).encode(), headers=headers)\nwith urllib.request.urlopen(req, timeout=60) as response:\n    task = json.load(response)\ntask_id = task['id']\nprint('task_id:', task_id, flush=True)\nfor _ in range(180):\n    time.sleep(20)\n    with urllib.request.urlopen(urllib.request.Request(base + '/' + task_id, headers=headers), timeout=60) as response:\n        task = json.load(response)\n    if task['status'] in ('completed', 'failed'):\n        print(json.dumps(task, ensure_ascii=False))\n        break\nelse:\n    print('等待超时；保留 task_id 继续查询，勿重复生成')\n```\n\nNode.js 18+（保存为 `.mjs`，设置 `ORBIS_API_KEY` 后运行）：\n\n```javascript\nconst base = 'https://api.orbiorbi.com/v1/tasks';\nconst headers = {Authorization: `Bearer ${process.env.ORBIS_API_KEY}`, 'Content-Type': 'application/json'};\nconst payload = {\"model\": \"seedance-2.0-pro\", \"prompt\": \"一片绿叶在微风中轻轻摇动，固定镜头，自然光。\", \"duration_sec\": 4, \"resolution\": \"1080p\", \"aspect_ratio\": \"16:9\", \"enable_audio\": true};\nasync function request(url, options = {}) {\n  const response = await fetch(url, {headers, ...options, signal: AbortSignal.timeout(60000)});\n  const data = await response.json();\n  if (!response.ok) throw new Error(JSON.stringify(data));\n  return data;\n}\nlet task = await request(base, {method: 'POST', body: JSON.stringify(payload)});\nconst taskId = task.id;\nconsole.log('task_id:', taskId);\nfor (let i = 0; i \u003c 180; i++) {\n  await new Promise(resolve =\u003e setTimeout(resolve, 20000));\n  task = await request(`${base}/${taskId}`);\n  if (['completed', 'failed'].includes(task.status)) { console.log(task); break; }\n}\n// 超时后保留 taskId 继续查询，勿重复生成。\n```\n\n## 请求参数\n\n| 参数 | 类型 | 必填 | 默认值 | 说明 |\n|---|---|---|---|---|\n| `prompt` | string | 是 | `null` | 必填。视频生成提示词。 |\n| `resolution` | string | 是 | `\"1080p\"` | 输出清晰度固定为 1080P。 取值：1080p 影响计费。 |\n| `aspect_ratio` | string | 是 | `\"16:9\"` | 必填。视频画面比例；adaptive 表示自动。 取值：adaptive, 16:9, 4:3, 1:1, 3:4, 9:16, 21:9 |\n| `duration_sec` | integer | 是 | `5` | 必填。视频时长，4 到 15 秒，默认 5 秒。 范围：4–15 影响计费。 |\n| `enable_audio` | boolean | 否 | `true` | 可选。是否生成音频，默认开启。 |\n| `input_audios` | array | 否 | `[]` | 可选。公网可下载素材 URL 数组，由服务端处理上传。 最多 3 个。 |\n| `input_images` | array | 否 | `[]` | 可选。公网可下载素材 URL 数组，由服务端处理上传。 最多 9 个。 |\n| `model` | string | 是 | `\"seedance-2.0-pro\"` |  取值：seedance-2.0-pro |\n\n素材数组填写公网可下载的 URL，不填写其他平台的文件 ID。\n未使用参考素材时省略对应数组即可。\n`720p_upscaled` 表示超分，和原生 `720p` 是不同规格；仅支持参数表列出的取值。\n\n## 返回结果\n\n以下为接口结构示意；具体任务 ID 和地址以响应为准。\n\n```json\n{\"id\":\"task_example\",\"status\":\"queued\",\"progress\":0}\n```\n\n完成后的结构：\n\n```json\n{\"id\":\"task_example\",\"status\":\"completed\",\"progress\":100,\"metadata\":{\"url\":\"https://example.com/result.mp4\"}}\n```\n\n视频地址位于 `metadata.url`。请下载并保存，本文不承诺永久保存期限。\n\n## 任务状态与轮询\n\n```bash\ncurl 'https://api.orbiorbi.com/v1/tasks/TASK_ID' \\\n  -H \"Authorization: Bearer $ORBIS_API_KEY\"\n```\n\n| 状态 | 含义 | 处理 |\n|---|---|---|\n| `queued` | 排队 | 等待后再查 |\n| `in_progress` | 处理中 | 等待后再查 |\n| `completed` | 完成 | 读取 `metadata.url`，结束轮询 |\n| `failed` | 失败 | 结束轮询，保留任务 ID 排查 |\n\n建议每 20 秒查询一次，总等待上限可设为 60 分钟。\n客户端等待超时不代表服务端失败；先查已有任务，不要立即重复提交。\n失败结构示意（查询响应当前不返回详细失败原因，可凭任务 ID 联系平台排查）：\n\n```json\n{\"id\":\"task_example\",\"status\":\"failed\",\"progress\":100}\n```\n\n## 价格\n\n| 清晰度 | 元/秒 |\n|---|---:|\n| `1080p` | 0.625 |\n\n按生成时长与清晰度计费。支持参考视频的线路还会计入参考视频时长。\n提交时预扣估算费用，完成时按实际规格结算；失败按平台任务退款规则处理。\n参考视频的费用不能用参考图片或参考音频数量代替。\n\n## 错误与处理\n\n| 情况 | 处理 |\n|---|---|\n| 鉴权或线路权限错误 | 检查 API Key 是否有效并绑定本线路 |\n| 时长、清晰度等参数不合法 | 按本页参数表修改后提交 |\n| 参考素材无法下载或上传 | 检查 URL 的公网可达性及文件格式 |\n| 任务生成失败 | 查看任务错误，修改输入或稍后重新提交 |\n| 下载或保存失败 | 保留任务 ID，联系平台排查，不立即重复生成 |\n\n## 限制与注意事项\n\n- 提交请求只等待任务受理，不同步等待视频生成完毕。\n- 初始并发建议不超过 5 路；生成期间会经历排队。\n- 不支持的请求字段不要提交。\n- 不同线路的时长范围、参考素材数量和清晰度不同，以本页参数表为准。\n- 切换线路后重新核对参数，不保证旧请求体在另一条线路上兼容。\n- 平台地址：https://agent.tmlab.top/\n- 更多详细内容推荐：https://agent.tmlab.top/agent/openapi","language":"zh","status":1,"created_time":1792402212,"updated_time":1792405835},"message":"","success":true}