最近做 AIGC 视频工具时,一个常见需求是:用户输入一段提示词,或者上传图片、视频、音频素材,然后系统自动生成短视频。这个需求看起来像一个"生成按钮",但真正接入时会涉及素材管理、任务提交、异步查询、分辨率、时长、回调和成本控制。
本文用 likeadmin-api 中的 Seedance 2.0 应用为例,整理一套视频生成 API 的接入流程,适合正在做短视频生成、营销素材生成、AI 视频工具或内部内容生产系统的开发者参考。
一、为什么视频生成更适合做成异步任务?
视频生成和普通文本接口不一样,它通常耗时更长,输入素材也更复杂。用户可能只输入文本,也可能同时上传图片、视频和音频。后端如果用同步请求一直等待,很容易出现超时、页面卡死和任务丢失。
更稳的做法是把视频生成拆成三段:
-
素材先入库或上传。
-
后端创建生成任务。
-
前端或后台根据任务 ID 查询结果。
likeadmin-api 的 Seedance 2.0 接口就是这样的思路:既有素材资产相关接口,也有创建任务和查询任务接口,适合做成完整的视频生成工作流。
二、Seedance 2.0 能做什么?
根据本地接口资料,likeadmin-api 的 `seedance` 应用基于 Seedance 2.0 多模态视频生成能力,支持文本、图片、视频、音频等多种输入组合,可用于文生视频、图生视频、视频编辑、延长和多模态参考等场景。
比较适合的业务场景包括:
• 商品卖点视频:输入商品图和卖点文案,生成短视频素材。
• 口播或剧情分镜:用文本提示词控制镜头、人物、场景和运动。
• 视频二创工作流:基于已有视频素材进行编辑和延展。
• AIGC 工具平台:把视频生成能力包装成 Web 表单、批量任务或开放 API。
• 营销素材生产:根据活动主题批量生成不同风格的视频初稿。
需要注意的是,涉及模型名称、开放范围、生成限制和平台价格时,发布前仍要以平台当前说明为准,不建议在文章中写死无法确认的信息。
三、接入前要先设计好素材链路
Seedance 2.0 的接口里有一组素材资产能力:
• 创建素材资产组合:`POST /api/v1/apps/seedance/createGroup`
• 上传素材:`POST /api/v1/apps/seedance/createAsset`
• 获取素材详情:`POST /api/v1/apps/seedance/getAsset`
• 更新素材:`POST /api/v1/apps/seedance/updateAsset`
• 删除素材:`POST /api/v1/apps/seedance/deleteAsset`
如果只是简单文生视频,可以直接提交文本内容;如果涉及图片、视频、音频素材,建议先把素材按项目或用户维度分组管理。这样后续查询、复用和删除都会更清楚。
创建素材分组示例:
示例代码:
curl -X POST "https://api.likeadmin.cn/api/v1/apps/seedance/createGroup" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"Name": "demo-group",
"GroupType": "AIGC",
"Description": "营销视频生成素材组",
"ProjectName": "default"
}'
上传素材示例:
示例代码:
curl -X POST "https://api.likeadmin.cn/api/v1/apps/seedance/createAsset" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"URL": "https://your-domain.com/uploads/product.png",
"Name": "product-image",
"GroupId": "YOUR_GROUP_ID",
"AssetType": "Image",
"ProjectName": "default"
}'
这里同样要注意:`URL` 必须是公网可访问地址,上游才能拉取素材。
四、创建视频生成任务
Seedance 2.0 的创建任务接口是:
`POST /api/v1/apps/seedance/create`
资料中记录的核心参数包括:
核心参数:
-
`model`:模型标识,可按平台当前支持列表选择(是)
-
`content`:多模态输入列表,支持文本、图片、视频、音频组合(是)
-
`duration`:生成视频时长,资料中记录为 4 到 15 秒,或 `-1` 自动决定(否)
-
`resolution`:输出分辨率(否)
-
`ratio`:画面宽高比,默认可用 adaptive(否)
-
`watermark`:是否添加水印(否)
-
`callback_url`:任务完成或失败时的回调地址(否)
-
`generate_audio`:是否生成同步音频(否)
文生视频请求示例:
示例代码:
curl -X POST "https://api.likeadmin.cn/api/v1/apps/seedance/create" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-text-2-video",
"content": [
{
"type": "text",
"text": "一位产品经理在明亮办公室介绍 AI 视频生成工具,镜头稳定,画面干净,不出现字幕和水印"
}
],
"duration": 5,
"resolution": "720p",
"ratio": "16:9",
"watermark": false,
"generate_audio": true,
"callback_url": "https://your-domain.com/webhook/seedance"
}'
如果要做图生视频,可以在 `content` 里加入图片素材。资料中记录图片最多 9 张,视频最多 3 个,音频最多 3 段,并且音频不能单独作为输入。实际开发时,建议先从"文本 + 1 张图片"这种简单组合开始测试。
五、查询任务结果
Seedance 2.0 查询接口是:
`GET /api/v1/apps/seedance/query`
查询示例:
示例代码:
curl -G "https://api.likeadmin.cn/api/v1/apps/seedance/query" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "task_id=YOUR_TASK_ID"
任务系统建议至少保存这些字段:
• `task_id`:平台或上游任务 ID。
• `status`:任务状态。
• `input`:原始提示词和素材地址。
• `result_url`:生成成功后的视频地址。
• `error_message`:失败原因。
• `created_at` / `updated_at`:用于排查超时和队列积压。
如果业务有回调地址,可以用 `callback_url` 接收结果;如果没有回调,就用后台定时轮询。无论哪种方式,都要允许任务失败后重试,不能只处理成功路径。
六、成本和稳定性怎么控制?
视频生成的成本主要和分辨率、是否包含视频输入、生成时长等因素有关。资料中记录的 Seedance 2.0 价格摘要包括 480P 含视频输入、480P 不含视频输入、720P 含视频输入等档位;实际接入时建议先调用平台价格或查看当前说明,再决定默认配置。
我的建议是:
-
默认先用较短时长测试,比如 5 秒。
-
默认分辨率不要一开始拉满,先验证场景可用性。
-
对失败任务记录具体输入,便于优化 prompt 和素材。
-
对高成本任务增加二次确认,避免用户误点。
-
批量任务要做队列和并发限制。
Prompt 也要尽量具体。比如不要只写"生成一个宣传片",而是写清人物、场景、镜头、动作、画面风格、是否需要字幕或水印等约束。
七、总结
likeadmin-api 的 Seedance 2.0 接口更适合做成"素材管理 + 创建任务 + 查询结果"的完整工作流,而不是只封装一个简单的生成按钮。
如果你正在做 AI 视频生成产品,我建议先搭一个最小闭环:文本输入、可选图片上传、创建任务、查询结果、失败重试、成本提示。等这条链路跑稳定后,再继续扩展到视频编辑、多素材参考、批量生成和用户模板系统。