首页 / 正文

Seedance 2.0 API 全量开放:用火山引擎/BytePlus 把视频 Agent 跑起来(含调用示例与避坑清单)

Mooko
发布于 2026-04-21 · 5分钟阅读
528 浏览
0 点赞 暴击点赞!

Seedance 2.0 API 全量开放:把你的视频工作流做成 Agent

Seedance 2.0 这类“脑子很灵”的视频模型,最爽的地方不是你手动点按钮出片,而是能接进你的工作流:选题→脚本→分镜→素材→生成→剪辑→发布,一条龙。

现在 API 全量开放后,国内用火山引擎就能直接调,海外用 BytePlus 接。按量付费也很友好:你做一个小工具、一个 Skill、一个 MCP Server,都能跑起来,不用一上来就搞很重的系统。

下面按“你照着做就能通”的方式来。


你该选火山引擎还是 BytePlus?

  • 国内账号/国内业务:走 火山引擎(Volcengine)
  • 海外账号/海外业务:走 BytePlus

两边本质都是接 Seedance 2.0 的能力,差别主要在控制台、计费、合规与可用地域。


Seedance 2.0 API 能做什么(挑你用得上的)

1)多模态输入:文本 / 图片 / 音频 / 视频

火山引擎这边已经明确支持四种模态输入。

你可以玩这些组合:

  • 文生视频:脚本 + 风格描述 → 出镜头
  • 图生视频:你给角色立绘/产品图 → 做成动图/镜头
  • 音频驱动:你给配音 → 让角色对口型(具体能力以控制台为准)
  • 视频驱动/参考:你给一段参考视频 → 迁移风格/节奏(看你开通的能力)

2)人脸登记 & 肖像授权

这点对做“口播短剧”“虚拟分身”太关键了。

  • 你可以做自己的人脸登记 + 肖像授权 → 生成带你脸的视频
  • 平台也预置了一堆虚拟人像特征 → 不想露脸就用现成的

提醒一句:这个环节经常涉及审核与合规,别偷懒,按平台流程来。


适合哪些人用:几个真实场景

场景 A:你想每天早下班一小时的剪辑党 🎬

  • 你把“口播脚本 + 参考风格 + BGM + 片头模板”固化成一个工作流
  • 每天只改脚本,其他全部自动化

场景 B:你在做 AI 短剧/长剧

短剧现在真离谱,热度你也看到了。

你可以把流程拆开:

  • 编剧 Agent 出大纲
  • 分镜 Agent 出镜头表
  • Seedance 负责出镜头
  • 后处理 Agent 做字幕、转场、封面、发布

场景 C:你想做一个“视频 Skill / MCP 工具”

现在 vibe coding + Skills + MCP 很能打。

你做一个 Skill:

  • 输入:一句话需求 + 角色设定 + 风格
  • 输出:可直接发布的成片/镜头包

别人按量付费用你的 Skill,你也不用维护一堆 GUI 页面。


接入路线图(照着做就行)

Step 1:开通控制台能力 & 拿到鉴权信息

你需要准备:

  • 对应平台账号:火山引擎 / BytePlus
  • API 鉴权:Access Key/Secret 或平台要求的 Token
  • 额度与计费开通:不然你会在“鉴权成功但调用失败”里怀疑人生

鉴权字段名、签名方式、请求域名会随平台迭代。别硬猜,直接以控制台文档为准。

Step 2:确定你要的输入类型

常见做法:

  • 只做 文生视频:最快跑通 MVP
  • 再加 图生视频:用角色图锁定一致性
  • 再加 音频:让成片更像“真人口播”

Step 3:把“生成”做成异步任务

视频生成大概率不是秒回。

推荐的工程姿势:

  • 提交任务 → 拿到 task_id
  • 轮询/回调 查询状态
  • 成功 → 拉取视频地址/下载
  • 失败 → 记录错误码 + 参数快照(方便复现)

Step 4:接进你的 Agent / 工作流

你可以把 Seedance 当成一个工具节点:

  • 输入:prompt / 素材 URL / 风格参数
  • 输出:video URL / metadata(时长、分辨率、镜头信息)

再往后才是你最熟的:剪辑、配字幕、封面、发布、数据回流。


调用示例(用占位字段,结构给你抄)

说明:下面用“通用结构”写,字段名请按火山引擎/BytePlus 实际文档替换。别照抄到线上直接跑。

1)cURL:提交一个文生视频任务

curl -X POST "https://<api-host>/v1/video/generate" \
  -H "Authorization: Bearer <YOUR_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.0",
    "input": {
      "text": "一支放在桌上的银色钢笔,微距镜头,光线从窗边斜射进来,电影质感,镜头缓慢推进"
    },
    "params": {
      "duration": 6,
      "resolution": "1080p",
      "fps": 24,
      "style": "cinematic"
    }
  }'

返回你重点盯这几个:

  • task_id:后面查询用
  • status:queued/running/succeeded/failed
  • error:失败时别只打印一句“失败了”,把错误码也存下来

2)cURL:查询任务状态

curl -X GET "https://<api-host>/v1/video/tasks/<task_id>" \
  -H "Authorization: Bearer <YOUR_TOKEN>"

成功后一般会给:

  • output.video_url:成片地址
  • output.cover_url:封面
  • output.meta:时长、分辨率、编码信息

3)Python:封装成一个“视频生成工具函数”

import time
import requests

API_HOST = "https://<api-host>"
TOKEN = "<YOUR_TOKEN>"

headers = {
    "Authorization": f"Bearer {TOKEN}",
    "Content-Type": "application/json",
}

def submit(prompt: str) -> str:
    url = f"{API_HOST}/v1/video/generate"
    payload = {
        "model": "seedance-2.0",
        "input": {"text": prompt},
        "params": {
            "duration": 6,
            "resolution": "1080p",
            "fps": 24,
            "style": "cinematic",
        },
    }
    r = requests.post(url, json=payload, headers=headers, timeout=60)
    r.raise_for_status()
    return r.json()["task_id"]


def wait_result(task_id: str, timeout_sec: int = 600):
    url = f"{API_HOST}/v1/video/tasks/{task_id}"
    start = time.time()

    while True:
        r = requests.get(url, headers=headers, timeout=30)
        r.raise_for_status()
        data = r.json()

        status = data.get("status")
        if status == "succeeded":
            return data["output"]["video_url"]
        if status == "failed":
            raise RuntimeError(data.get("error", "unknown error"))

        if time.time() - start > timeout_sec:
            raise TimeoutError("task timeout")

        time.sleep(3)


if __name__ == "__main__":
    task = submit("桌面上一杯冒着热气的咖啡,清晨阳光,轻微手持感,日系暖色")
    video_url = wait_result(task)
    print("OK:", video_url)

你把这段函数塞进:

  • 你的 Agent 工具箱
  • 你的 MCP Server
  • 或一个最简单的 Webhook 服务

就能让别人一句话生成视频。


人脸登记与肖像授权:建议你这样做

这块别搞“我先跑起来再说”。跑起来很容易,卡在审核更难受。

一个稳的流程:

  • 控制台里把人脸登记按要求传素材(清晰、角度、光照)
  • 走完肖像授权的流程(该签的签,该勾的勾)
  • 用平台提供的预置虚拟人像先把流程跑通
  • 等你的人脸资产通过后,再切到真实人脸

这样你不会因为一个“人脸还没过审”把整个项目拖死。


做视频 Agent 的参数小抄(少走弯路)

建议你把参数做成配置文件,别写死在代码里:

  • duration:短视频镜头 4–8 秒更好控
  • fps:24/30 常用,别乱加,成本会上去
  • resolution:先 720p 跑流程,确定效果再上 1080p
  • style:固定一个风格词表,减少“每次出片都像换了个导演”
  • seed(如果支持):想复现就得保留

再加一个实践经验:

  • 让编剧 Agent 输出镜头级 prompt,别只给大段散文
  • 每个镜头给:主体、动作、镜头语言、光线、景别、情绪

你会发现稳定性立刻上来。


避坑清单(血压稳住)

  • 只写一句“生成一个好看的视频”:模型会自由发挥到你怀疑人生。把镜头语言写出来。
  • 不做异步:你用同步请求等 2 分钟,服务端超时直接给你断。
  • 不记录请求参数:失败了没法复现,只能靠猜。
  • 分辨率一上来就拉满:成本飙升,调参还慢。
  • 人脸素材随手拍:光线差、角度怪,后面出片“像你但又不像你”,最尴尬。
  • 没做内容安全与合规:准备上线就别头铁,平台审核和风控比你想的严格。

一个很实用的落地路线(适合个人/小团队)

  • 用预置虚拟人像跑通“脚本→镜头→生成→剪辑→发布”
  • 把生成封装成 Skill / MCP 工具,对外提供统一输入输出
  • 加上素材库(本地也行)和缓存,把常用角色、场景、BGM 固化
  • 等数据起来后再优化:一致性、角色多镜头、批量生成、成本控制

你会发现:真正值钱的不是“点一下出视频”,而是你那套能持续产出的流程。


如果你愿意,我可以按你的目标把“视频 Agent 的工具清单”也给你列出来:比如脚本格式、镜头 JSON Schema、MCP 工具定义、以及你现在最常用的剪辑/发布平台怎么接。你告诉我你做的是口播、短剧,还是产品视频就行。

OpenClaw
OpenClaw
木瓜AI支持养龙虾啦
木瓜AI龙虾专供API,限时领取免费tokens
可在 OpenClaw接入全球顶尖AI大模型
立即领取