Seedance 视频生成说明

理解模型与价格,掌握异步提交、任务轮询和成片下载,避开分辨率与计费常见错误。

注册账号 ↗打开服务

视频生成 API 使用说明(Seedance)

面向普通用户。记录截止 2026-07-30。 本站与 https://llm.eastwisdom.cc两套独立的账号和余额,不通用。 管理员相关内容见 服务器运维手册.md

1. 这是什么

用字节跳动的 Seedance 2.0 模型生成视频,支持文字生成视频(文生视频)。

  • 站点地址:https://video.eastwisdom.cc
  • 生成方式:异步。提交后拿到一个任务 ID,之后自己轮询查结果,不是发一个请求就等着返回视频
  • 单次耗时:2–5 分钟(实测 115 秒到 279 秒都出现过,同样参数也会波动)

⚠️ 和主站是两套东西

主站本站
地址llm.eastwisdom.ccvideo.eastwisdom.cc
用途Claude / GPT / Grok 文本模型Seedance 视频生成
账号各自独立各自独立
余额各自独立各自独立
API Key不能跨站使用不能跨站使用

主站的 key 拿到这里用会报鉴权失败,反之也一样。两边要分别充值。

2. 开通账号和建 Key

账号

打开 https://video.eastwisdom.cc/register,填写用户名、邮箱和密码,点击发送验证码。 验证码会发到邮箱,填入后即可完成注册,10 分钟内有效。

新账号初始额度为 0,需要管理员充值后才能生成视频。

建 API Key

  1. 登录后进「令牌」页面 → 新建
  2. 名称随便填,方便自己区分用途
  3. 分组选 default
  4. 额度按需设,也可以设成无限
  5. 建好后立刻复制保存——关掉弹窗就看不到完整的 key 了

Key 形如 sk- 开头的一串。这串就是密码,不要提交到 git、不要贴在公开群里。

验证 key 能用

不花钱,随便查一个不存在的任务,能返回业务错误就说明鉴权是通的:

curl -s https://video.eastwisdom.cc/v1/videos/task_notexist \
  -H "Authorization: Bearer sk-你的key"
  • 返回任务不存在之类的错误 → key 正常
  • 返回 401 / 未提供令牌 → key 不对或没带上

3. 可用模型和价格

目前开放两个模型:

模型名说明支持分辨率
doubao-seedance-2-0-260128标准版,质量更好480p / 720p / 1080p
doubao-seedance-2-0-fast-260128Fast 版,更快更便宜仅 480p / 720p

模型名必须照抄,写错会报「无可用渠道」。

⚠️ Fast 版传 1080p 会被拒绝,不要用。

价格

按视频实际消耗的 token 计费,不是按次固定价。

模型480p / 720p1080p
标准版$10.50 / 百万 token$11.64 / 百万 token
Fast 版$8.40 / 百万 token不支持

🔴 分辨率对费用的影响远超单价差

单价只差 10%,但高分辨率消耗的 token 数量差好几倍。实测同一条提示词、同样 4 秒:

配置token 消耗实际费用
Fast + 480p50,638$0.43
标准版 + 1080p245,025$2.85

同样 4 秒的视频,1080p 比 480p 贵 6.6 倍。 看单价表会严重低估 1080p 的成本,一定要按 token 量估算。

⚠️ 另外同样参数 token 量本身也会浮动(实测 40594 和 50638 都出现过,差 25%),按条估成本要留余量。

4. 怎么调用

三步:提交 → 轮询 → 取回

POST /v1/videos                     提交,立刻返回 task_id
GET  /v1/videos/{task_id}           轮询进度
GET  /v1/videos/{task_id}/content   下载 mp4

Base URL 统一是 https://video.eastwisdom.cc,鉴权统一用 Authorization: Bearer sk-你的key

不要同步等待。提交接口只返回任务 ID,视频要 2–5 分钟才好。

4.1 提交任务

curl https://video.eastwisdom.cc/v1/videos \
  -H "Authorization: Bearer sk-你的key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "doubao-seedance-2-0-fast-260128",
    "prompt": "一只玻璃香水瓶放在大理石桌面上,清晨柔和光线,镜头缓慢推近",
    "duration": 4,
    "metadata": {
      "resolution": "480p",
      "ratio": "16:9",
      "generate_audio": false,
      "watermark": false
    }
  }'

返回:

{
  "id": "task_6Y2CXrNvpPFPghsCtL52gKgGcr7TLMsc",
  "task_id": "task_6Y2CXrNvpPFPghsCtL52gKgGcr7TLMsc",
  "object": "video",
  "model": "doubao-seedance-2-0-fast-260128",
  "status": "queued",
  "progress": 0,
  "created_at": 1785317575
}

🔴 两个最容易踩的坑

1. resolution 必须放在 metadata 里面

"metadata": {"resolution": "720p"}    ✅ 正确
"size": "720p"                        ❌ 会按 480p 档计费,但实际出 720p

放错位置视频照样能生成,但计费档位会算错,属于我们这边的账不对,请配合放对位置。

2. 用 prompt 字段,不要用 content 数组

如果你参考过火山引擎或 BytePlus 的官方文档,那边用的是 content: [{...}] 数组格式。本站不接受那种格式,会报 prompt is required。请用上面示例里的 prompt 字符串写法。

立刻存下 task_id

拿到 task_id 第一件事就是存起来(写日志、写数据库都行)。生成要好几分钟,程序中途崩了、网断了、终端关了,只要有 task_id 就还能查回结果;丢了就等于钱白花,任务还在跑但你拿不到视频。

4.2 查询进度

curl https://video.eastwisdom.cc/v1/videos/task_6Y2CXrNvpPFPghsCtL52gKgGcr7TLMsc \
  -H "Authorization: Bearer sk-你的key"

进行中:

{"task_id": "task_6Y2...", "status": "in_progress", "progress": 0}

完成:

{
  "task_id": "task_6Y2CXrNvpPFPghsCtL52gKgGcr7TLMsc",
  "status": "completed",
  "progress": 100,
  "created_at": 1785317575,
  "completed_at": 1785317689,
  "metadata": {
    "url": "https://d1olhcno4eh2oq.cloudfront.net/media/videos/mvt-7aa4fa6ec83944d1.mp4"
  }
}

状态取值:

status含义
queued排队中
in_progress生成中
completed完成,metadata.url 里是视频地址
failed失败,费用会退回

轮询建议

  • 间隔 15 秒。太密没意义,生成本身要好几分钟
  • 超时上限设 10 分钟。实测 115–279 秒,但留足余量
  • 别写成死循环无限轮询,加个最大次数

4.3 取回视频

两种方式,任选:

方式一:直接用返回的 URL(推荐)

metadata.url 是 CDN 直链,不需要鉴权,可以直接下载、分享、嵌入网页:

curl -L -o output.mp4 "https://d1olhcno4eh2oq.cloudfront.net/media/videos/mvt-xxx.mp4"

方式二:走本站代理接口

curl -L https://video.eastwisdom.cc/v1/videos/task_6Y2xxx/content \
  -H "Authorization: Bearer sk-你的key" \
  --output output.mp4

这个接口要带 key,支持分片下载(Accept-Ranges: bytes)。

注意路径是 /v1/videos/{id}/contentvideos),不是 /v1/video/generations/...

视频尽快转存

CDN 链接不保证长期有效。生成完就下载到自己的存储里,别把这个 URL 当长期地址存进数据库。

5. 参数说明

顶层字段

参数类型必填说明
modelstring模型名,见 §3,必须照抄
promptstring画面描述。不要用 content 数组
durationinteger时长(秒),常用 4 / 5 / 10

metadata 里的字段

参数类型默认说明
resolutionstring720p480p / 720p / 1080p必须放这里
ratiostring画幅比例,如 16:99:161:1
generate_audiobooleanfalse是否生成音频
watermarkbooleanfalse是否加水印

提示词怎么写

Seedance 对镜头语言的理解不错,描述里可以带上:

  • 主体:什么东西、什么状态
  • 环境光线:清晨柔光、霓虹夜景、逆光
  • 镜头运动:缓慢推近、环绕、固定机位、快速切镜
  • 风格:写实、电影感、延时摄影

例:写实风格,晴朗蓝天下一大片白色雏菊花田,镜头缓慢推近,最终定格在一朵雏菊特写,花瓣上有晶莹露珠

时长越长、分辨率越高,token 消耗越多。先用 Fast + 480p 试提示词,效果满意再用标准版和高分辨率出成品,能省不少钱。

6. 完整示例

Python(提交 + 轮询 + 下载)

import time
import requests

BASE_URL = "https://video.eastwisdom.cc"
API_KEY = "sk-你的key"

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

# 1. 提交任务
resp = requests.post(f"{BASE_URL}/v1/videos", headers=headers, json={
    "model": "doubao-seedance-2-0-fast-260128",
    "prompt": "一只玻璃香水瓶放在大理石桌面上,清晨柔和光线,镜头缓慢推近",
    "duration": 4,
    "metadata": {
        "resolution": "480p",      # 注意:放在 metadata 里
        "ratio": "16:9",
        "generate_audio": False,
        "watermark": False,
    },
})
resp.raise_for_status()
task_id = resp.json()["task_id"]

# 2. 立刻存下 task_id —— 后面任何环节出错都还能查回来
print("task_id:", task_id)
with open("tasks.log", "a") as f:
    f.write(f"{time.strftime('%F %T')}\t{task_id}\n")

# 3. 轮询,15 秒一次,最多 10 分钟
video_url = None
for _ in range(40):
    r = requests.get(f"{BASE_URL}/v1/videos/{task_id}", headers=headers, timeout=30)
    r.raise_for_status()
    data = r.json()
    status = data.get("status")
    print("status:", status)

    if status == "completed":
        video_url = data["metadata"]["url"]
        break
    if status == "failed":
        raise RuntimeError(f"任务失败(费用会退回): {data}")
    time.sleep(15)

if not video_url:
    raise TimeoutError(f"超时未完成,任务可能还在跑,稍后用 task_id 再查: {task_id}")

# 4. 下载(CDN 直链,无需鉴权)
with requests.get(video_url, stream=True, timeout=120) as s:
    s.raise_for_status()
    with open("output.mp4", "wb") as f:
        for chunk in s.iter_content(8192):
            f.write(chunk)
print("saved output.mp4")

Bash(简版)

KEY="sk-你的key"
BASE="https://video.eastwisdom.cc"

# 提交
TASK=$(curl -s "$BASE/v1/videos" \
  -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
  -d '{"model":"doubao-seedance-2-0-fast-260128",
       "prompt":"一只玻璃香水瓶放在大理石桌面上,镜头缓慢推近",
       "duration":4,
       "metadata":{"resolution":"480p","ratio":"16:9"}}' \
  | python3 -c "import json,sys; print(json.load(sys.stdin)['task_id'])")

echo "task_id: $TASK"          # 存下来!

# 轮询
for i in $(seq 1 40); do
  R=$(curl -s "$BASE/v1/videos/$TASK" -H "Authorization: Bearer $KEY")
  echo "$R" | grep -q '"completed"' && break
  echo "$R" | grep -q '"failed"' && { echo "失败"; exit 1; }
  sleep 15
done

# 下载
curl -sL "$BASE/v1/videos/$TASK/content" \
  -H "Authorization: Bearer $KEY" -o output.mp4
echo "saved output.mp4"

7. 计费怎么算

按视频实际消耗的 token 计费(不是按次固定价):

费用 = 实际 total_tokens / 1,000,000 × 单价

单价见 §3。

你会在日志里看到两条记录

提交任务时预扣一笔(按请求的时长和分辨率估算),任务完成后按真实用量补扣或退款

对账时把同一个任务的两条记录合并,净额才是最终费用。看到"扣了两次"不要慌。

失败会退

任务 failed 时预扣的费用会退回。

省钱的几个做法

  1. 调提示词一律用 Fast + 480p(约 $0.43 一条),效果满意了再用标准版和高分辨率出成品。直接拿 1080p 试提示词,试十次就是 $28
  2. 1080p 只用在真要交付的成品上。实测比 480p 贵 6.6 倍,见 §3
  3. 时长按需,4 秒够用就别写 10 秒
  4. 生成前想清楚,失败重试也要重新排队等几分钟

实测费用参考

配置tokens费用
Fast + 480p + 4s50,638$0.43
标准版 + 1080p + 4s245,025$2.85

查余额

登录 https://video.eastwisdom.cc 看首页,或者:

curl -s https://video.eastwisdom.cc/v1/dashboard/billing/subscription \
  -H "Authorization: Bearer sk-你的key"

8. 暂不支持的功能

以下能力上游有,但本站没有开放,请求了会报错或计费不准。需要的话找管理员说,可以评估开通。

功能状态说明
4K 分辨率❌ 未开放上游报价未明确,开了可能算错钱
图生视频⚠️ 未验证接口支持传参考图,但本站还没实测过,想用先跟管理员打招呼
视频生视频❌ 别用传参考视频会导致计费偏差,本站计费口径和上游不一致
数字人 / 真人素材asset://❌ 不支持需要素材上传接口,本站网关没有这个路由
Mini 系列模型❌ 未开放上游未提供报价
EP 版模型❌ 未开放可按需开通

关于真人图片

标准版和 Fast 版对真人人像会触发上游的隐私拦截。上游有专门的 -hc 模型处理这类素材,但它依赖素材上传接口(asset://),本站网关不支持,所以真人视频目前做不了

9. 常见问题

报错对照

报错原因怎么办
prompt is required用了 content 数组格式改用 prompt 字符串,见 §4.1
model_not_found / 无可用渠道模型名写错,或用了未开放的模型照抄 §3 的模型名
401 / 未提供令牌key 没带上、写错,或用了主站的 key检查 Authorization: Bearer sk-...
余额不足本站余额用完本站余额和主站独立,要单独充
Fast 传 1080p 被拒Fast 版不支持 1080p换标准版,或降到 720p
resource download failed参考图 URL 上游下载不了换公开可访问、无防盗链的 HTTPS 直链

视频一直 in_progress,是卡住了吗

大概率没卡。实测 115–279 秒都有,5 分钟内属正常。超过 10 分钟还在 in_progress,把 task_id 发给管理员查。

程序崩了 / 终端关了,任务还在吗

任务在服务端继续跑,只要你存了 task_id,随时可以再查:

curl https://video.eastwisdom.cc/v1/videos/你的task_id \
  -H "Authorization: Bearer sk-你的key"

没存 task_id 就找不回来了,钱照扣。所以 §4.1 反复强调先存 ID。

主站的 key 能用在这里吗

不能。两套独立账号,key 不通用,余额也不通用。

能用现成的客户端调吗

视频生成是异步任务制,大部分聊天类客户端(Cherry Studio、Chatbox 等)不支持这种"提交—轮询—下载"流程。目前建议用代码调,照抄 §6 的示例改改就能用。

为什么同样的参数,两次费用不一样

token 消耗由模型实际生成过程决定,会有波动(实测同参数差过 25%)。按 token 计费是随上游口径,我们这边不做加成之外的调整。

10. 联系

遇到下列情况,请发送邮件至 [email protected]

  • 开号、充值
  • 任务超过 10 分钟没结果(带上 task_id
  • 想开通 §8 里未开放的功能(4K、图生视频、EP 模型等)
  • 计费有疑问(带上 task_id,能查到预扣和补差的明细)

反馈问题时请提供:task_id + 完整请求体 + 收到的报错。只说"生成失败了"查不了。


相关文档

  • 用户使用说明.md — 主站(Claude / GPT / Grok 文本模型)的使用说明
  • 服务器运维手册.md — 管理员运维文档