1实现原理 · 为什么它能做到
单一 Python 脚本经 volcengine-ark SDK 调用字节 Seedance-1.5-pro 模型,从文本或首帧图片生成视频。
skills/canghe-seedance-video/SKILL.md
使用字节跳动 Seedance-1.5-pro 模型 (doubao-seedance-1-5-pro-251215) 根据文本或图片生成视频。
这里在做什么:SKILL.md 首句定位模型与能力,脚本侧用 Ark 客户端封装 create/get。
运行前需安装 SDK:pip install 'volcengine-python-sdk[ark]'。
skills/canghe-seedance-video/SKILL.md
pip install 'volcengine-python-sdk[ark]'
这里在做什么:前置要求段给出唯一安装命令;脚本在 ImportError 时也会提示同一命令。
鉴权从环境变量强制读取 ARK_API_KEY 或 SEEDANCE_API_KEY(无默认值,缺失即退出)。
skills/canghe-seedance-video/scripts/generate_video.py
API_KEY = require_env_key("ARK_API_KEY", ["SEEDANCE_API_KEY"])
这里在做什么:模块级调用 require_env_key,key 缺失时直接 sys.exit,避免硬编码密钥。
服务端点固定为火山方舟 Ark,默认模型 doubao-seedance-1-5-pro-251215。
skills/canghe-seedance-video/scripts/generate_video.py
BASE_URL = "https://ark.cn-beijing.volces.com/api/v3"
这里在做什么:常量写死官方 endpoint;main() 用它初始化 Ark 客户端。
异步任务模型:create 建任务 → 轮询 get 状态(queued/running/succeeded/failed)→ 成功后下载。
skills/canghe-seedance-video/scripts/generate_video.py
result = client.content_generation.tasks.get(task_id=task_id)
这里在做什么:get_task_status 提取 status/video_url/last_frame_url;wait_for_video 以 5s 间隔最多等 600s。
图生视频通过在 content 列表追加 image_url 项实现(首帧图片)。
skills/canghe-seedance-video/scripts/generate_video.py
"type": "image_url", "image_url": {"url": image_url}
这里在做什么:create_video_task 里按是否传 --image-url 决定是否附图;图片由后端按 URL 拉取。
生成完成后用 requests 流式下载视频到本地文件。
skills/canghe-seedance-video/scripts/generate_video.py
response = requests.get(url, stream=True, timeout=120)
这里在做什么:download_file 以 chunk_size=8192 写盘,超时 120s。
密钥/配置经仓库共享模块 env_utils 加载,支持系统 env 与 .env 三级优先级。
skills/canghe-seedance-video/scripts/generate_video.py
from env_utils import load_env, require_env_key
这里在做什么:脚本把 ../common 加入 sys.path 后导入共享 env 工具;.env 优先级为 env → 项目 .canghe-skills/.env → ~/.canghe-skills/.env。
2核心能力
01文生视频(根据文本提示词生成视频)
02图生视频(根据首帧图片生成视频)
03自定义生成参数(时长、宽高比、水印、返回尾帧)
04任务创建与状态查询(--status)
05自动轮询等待(--wait)直至成功/失败/超时
06自动下载生成视频到本地
07配置三级加载(系统环境变量 / 项目 .env / 用户 .env)
08Python API 复用(create_video_task / wait_for_video 可直接 import)
3外部依赖
| Kind | Dependency / Endpoint |
|---|---|
| api | 火山方舟 Ark API(视频生成后端) |
| package | volcengine-python-sdk[ark](Ark SDK) |
| package | requests(下载生成结果) |
| network | 生成视频/尾帧下载(服务端返回的 URL) |
| reference | Seedance-1.5-pro 提示词指南 |
4管控建议与判定依据
建议配套管控措施
面向 Agent
分级或逐次授权,建议在沙箱运行
面向管理者
审批流程、可回滚、全程审计
判定依据(文件路径与关键语句摘要)
- scripts/: 执行本地脚本或命令: python3 scripts/generate_video.py "<prompt>" --wait -o out.mp4(agent 依 SKIL
- 网络端点: 声明外部网络访问: 火山方舟 Ark API https://ark.cn-beijing.volces.com/api/v3(创建/查询视频生成任务)
- 本地工作目录: 文件读写与工件输出: 下载视频写入 -o 指定路径(默认 output.mp4)
审计说明: 。两据:① 为自身声明用途读凭证——脚本以 require_env_key("ARK_API_KEY", ["SEEDANCE_API_KEY"]) 强制读取 API Key(env 或 .env)。② 把用户素材送外部生成/服务后端——提示词与首帧图片 URL 发往火山方舟 Ark 生成视频,并消耗账号额度。未有逆向/冒充/绕过防护/安全降级(无 AutomationControlled、无 TLS 关闭、无沙箱降级),故不升红;端点虽为官方生态,但凭证+素材出网使其落橙(先例 image-to-video、ai-image-generation)。
5第二遍独立确认
- [ok] SDK 调用与模型 — SKILL.md description 与 generate_video.py 的 Ark 客户端、默认模型 ID 一致。
- [ok] 凭证强制读取 — generate_video.py 模块级 require_env_key 调用与 SKILL.md 的 ARK_API_KEY/SEEDANCE_API_KEY 说明互证。
- [ok] 固定端点 — BASE_URL 与风险扫描 generate_video.py:40 命中同值,且 SKILL.md Python 示例 base_url 一致。
- [ok] 异步任务与轮询 — create_video_task/get_task_status/wait_for_video 三个函数正文完整展开,状态分支 queued/running/succeeded/failed 与 SKILL.md 一致。
- [ok] 下载行为 — download_file 用 requests 流式写盘;风险扫描仅两点写盘命中(open/write),无其它隐藏落盘。
- [ok] 跨 skill 共享模块 — 脚本 import env_utils 并把 ../common 加入 sys.path,属仓库共享模块,非本 skill 独有依赖。
- [ok] 是否有绕过/降级 — 风险扫描「危险旗标/沙箱」均无命中;全文无 AutomationControlled、无 TLS 关闭,判橙非红据成立。
- [ok] 是否存在本地命令执行面 — 「执行外部程序」无命中;脚本不 spawn 子进程,无可控命令拼接。
6结论
适合: 需要用字节 Seedance 模型做文生/图生视频的创作者与开发者,已具备火山方舟 API Key 并接受素材出网与额度消耗。
不适合: 不能提供/不愿出网 API Key 的环境;要求素材本地闭环、不使用外部生成后端的场景。
Install Agent-Ready
① Verified Mirror 2026-10-10
Option A · Direct DownloadDownload seedance-video.tar.gz
sha256:
Option B · Copy Guide for Agentf9f1f149e8b1bcd1…agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
② Upstream GitHub
GitHub Repo ↗
Pinned to commit dd0bf35595.