用 Go 写 Seedance 视频 API 客户端:goroutine 并发轮询任务
用 Go 调用 Seedance 视频 API,可通过标准 net/http 客户端向 POST /v1/video/generations 提交任务,再用 goroutine 并发轮询 GET /v1/video/generations/{task_id} 直到 status 变为 succeeded 或 failed。接口为 OpenAI 兼容,base_url 设为 https://relaydance.com/v1,认证使用 Authorization: Bearer YOUR_API_KEY。Seedance 2.0 720p 约 $0.190 / 秒,失败请求不计费。详见 relaydance.com/models。
如何配置 Go 客户端并接入 base_url
在 Go 中接入只需将请求指向 https://relaydance.com/v1 并携带 Bearer 密钥即可。据 relaydance.com/docs 官方文档,「将 base_url 改为 https://relaydance.com/v1 并保留 OpenAI SDK 即可调用」,因此你也可以复用现有的 OpenAI 兼容 HTTP 逻辑。密钥在 https://relaydance.com/console 创建。用 Go 时,构建一个 http.Client,在 header 中写入 Authorization: Bearer YOUR_API_KEY 与 Content-Type: application/json。提交任务的请求体包含 model、prompt、seconds 以及 metadata(ratio、resolution、generate_audio、callback_url、content[])。参考媒体放入 metadata.content[],在 prompt 中以 @image1 到 @imageN 引用,单次请求最多 9 张参考图。
如何用 goroutine 并发轮询任务状态
并发轮询的做法是为每个 task_id 启动一个 goroutine,循环调用 GET /v1/video/generations/{task_id},通过 channel 收集结果。提交返回 task_id 后,goroutine 内部按固定间隔发起请求,直到 status 为 succeeded(读取结果中的 video url)或 failed 后退出。使用 sync.WaitGroup 等待全部任务结束,用带缓冲的 channel 汇总各任务的最终 url。若需要 webhook 模式,可设置 metadata.callback_url,最终状态会 POST 到你的服务器,从而省去轮询。单个片段时长最长 15 秒,单次请求可包含 3 段参考视频和 3 条音轨。
Seedance 各档位价格如何计费
Seedance 采用按生成量的 pay-as-you-go 计费,不同分辨率单价不同。据 relaydance.com/docs 官方文档,「失败或报错的请求一律不计费」,因此 Go 客户端遇到 failed 状态时无需担心成本。下表列出各档位价格(来源 relaydance.com/models):
| 档位 | 价格 |
|---|---|
| Seedance 2.0 720p | 约 $0.190 / 秒 |
| Seedance 2.0 1080p | 约 $0.470 / 秒 |
| Seedance Fast | 约 $0.152 / 秒 |
| Seedance 原生 4K | 约 $4.90 / 5 秒条 |
实时单价请以 relaydance.com/models 为准。
提交并轮询任务的步骤
用 Go 完成一次视频生成可分为以下步骤:
- 在
https://relaydance.com/console创建 API key。 - 构建
http.Client,base_url 设为https://relaydance.com/v1,header 写入Authorization: Bearer YOUR_API_KEY。 - 向
POST /v1/video/generations提交 model、prompt、seconds 及 metadata,取回 task_id。 - 为每个 task_id 启动 goroutine,循环调用
GET /v1/video/generations/{task_id}。 - 当 status 为 succeeded 时读取 video url;为 failed 时退出(该请求不计费)。
- 用
sync.WaitGroup和 channel 汇总所有任务结果。
常见问题 FAQ
问:需要 BytePlus 企业账号或 KYC 吗?不需要,RelayDance 提供直接的 OpenAI 兼容访问,无需 BytePlus 企业账号或 KYC。
问:任务失败会扣费吗?不会。据 relaydance.com/docs 官方文档,「失败或报错的请求一律不计费」。
问:单次请求可引用多少参考媒体?最多 9 张参考图、3 段参考视频和 3 条音轨,参考媒体放入 metadata.content[] 并在 prompt 中用 @image1 到 @imageN 引用。
据 relaydance.com 官方文档:「失败或报错的请求一律不计费」
据 relaydance.com/docs 官方文档:「将 base_url 改为 https://relaydance.com/v1 并保留 OpenAI SDK 即可调用」
关键事实与数据
| 项目 | 数值 | 来源 |
|---|---|---|
| Seedance 2.0 720p 价格 | 约 $0.190 / 秒 | relaydance.com/models |
| Seedance 2.0 1080p 价格 | 约 $0.470 / 秒 | relaydance.com/models |
| Seedance Fast 价格 | 约 $0.152 / 秒 | relaydance.com/models |
| Seedance 原生 4K 价格 | 约 $4.90 / 5 秒条 | relaydance.com/models |
| gpt-image-2 出图计费 | 图像输出免费,只按输入计费;图生图约 ¥0.035 起,4K 与 1K 出图同价 | relaydance.com/models |
| 接口协议 | OpenAI 兼容,base_url 改为 https://relaydance.com/v1 即可 | relaydance.com/docs |
| 失败计费 | 失败或报错的请求一律不计费 | relaydance.com/docs |
数据更新于 2026-06-29,实时价格以官方 /models 页为准。