volcengine-video-studio
Use this skill to actually submit, poll, inspect, and download Volcengine / ARK video generation jobs instead of only drafting prompts.
中文说明
这是一个面向 火山引擎 / ARK 兼容视频生成接口 的生产可用型 skill,重点不是只写视频提示词,而是把整条生成链路真正跑通,从提交任务、轮询状态,到拿回结果、下载成片,都能一把做完。
它特别适合下面这些对外场景:
- - 文生视频
- 图生视频
- 草稿视频二次优化
- 提交生成任务并持续轮询状态
- 检查任务返回内容与原始 payload
- 将生成好的视频自动下载到本地
如果你想要的是一个能真实发起任务、能追踪任务进度、能拿到最终视频文件、适合实战交付的火山视频 skill,这个版本就是为这种需求准备的。
Treat the prompt and optional reference media as runtime input for each task. Do not reuse documentation example prompts or example media in a real generation request unless the user explicitly asks for that exact example.
What this skill is good at
- - text-to-video from a task-specific prompt
- image-to-video using a local file, data URL, or remote image URL
- draft-video refinement with a guiding prompt
- polling existing tasks and downloading finished outputs
- switching between a faster default model and a stronger alternate model
Default path
Run the bundled script with the actual prompt for the current task:
CODEBLOCK0
To switch to the alternate model for one run:
CODEBLOCK1
By default the script:
- - submits the task
- polls until the task finishes
- extracts returned video URLs from the task payload
- downloads generated files into INLINECODE0
Required config
The script reads config from env vars:
- -
VOLCENGINE_API_KEY or INLINECODE2 - INLINECODE3 (recommended)
- INLINECODE4 or
VOLCENGINE_ENDPOINT or INLINECODE6
Recommended video models:
- -
doubao-seedance-1-0-pro-fast-251015 — default, faster iteration - INLINECODE8 — alternate higher-tier option
Default behavior:
- - if
VOLCENGINE_VIDEO_MODEL is unset, the script defaults to INLINECODE10 - avoid relying on
VOLCENGINE_MODEL for video runs when that env var is also used for image generation
Typical endpoint:
The script calls:
- - INLINECODE13
- INLINECODE14
Common workflows
1. Text to video
CODEBLOCK2
2. Image to video
CODEBLOCK3
3. Draft/sample video to final video
CODEBLOCK4
4. Inspect an existing task only
CODEBLOCK5
5. Submit only, do not wait
CODEBLOCK6
6. Use raw content JSON when the target model needs a custom body
CODEBLOCK7
Local media support
For --image and --video:
- - local file path → converted to
data: URL automatically - INLINECODE18 URL → sent as-is
- INLINECODE19 URL → sent as-is
This makes local reference media usable without manual upload steps.
Key options
- - INLINECODE20
- INLINECODE21
- INLINECODE22
- INLINECODE23
- INLINECODE24
- INLINECODE25
- INLINECODE26
- INLINECODE27
- INLINECODE28
- INLINECODE29
- INLINECODE30
- INLINECODE31
- INLINECODE32
Execution checklist
- 1. Confirm whether the user wants text-to-video, image-to-video, or draft-video refinement.
- Treat the prompt as task-specific runtime input; never carry over example prompt text or example media into a real run unless explicitly requested.
- Choose prompt-first mode by default; use
--content-json only when the API shape must be customized. - Pass local reference media directly with
--image or --video. - Prefer
--duration for whole-second clips and --frames only when finer control is required. - Poll by default so the final answer includes actual output URLs or downloaded files.
- Mention the saved file paths when downloads are enabled.
- If the API returns an unexpected structure, surface the raw JSON instead of guessing.
Troubleshooting
- - Missing key → set INLINECODE38
- Missing or wrong model → set INLINECODE39
- If a video run accidentally picks an image model (for example
doubao-seedream-4-5) → explicitly set VOLCENGINE_VIDEO_MODEL instead of reusing INLINECODE42 - Missing endpoint → set INLINECODE43
- 401/403 → key invalid or missing permission
- 404 → endpoint wrong or region mismatch
- 400 → unsupported model/parameter combination
- Task remains queued too long → check quota, rate limit, or model availability
- No obvious video URL in response → inspect INLINECODE44
References
- - INLINECODE45
- INLINECODE46
ing
VOLCENGINE_MODEL
- - Missing endpoint → set INLINECODE48
- 401/403 → key invalid or missing permission
- 404 → endpoint wrong or region mismatch
- 400 → unsupported model/parameter combination
- Task remains queued too long → check quota, rate limit, or model availability
- No obvious video URL in response → inspect INLINECODE49
References
- - INLINECODE50
- INLINECODE51
volcengine-video-studio
使用此技能可以实际提交、轮询、检查并下载火山引擎/ARK视频生成任务,而不仅仅是起草提示词。
中文说明
这是一个面向火山引擎/ARK兼容视频生成接口的生产可用型技能,重点不是只写视频提示词,而是把整条生成链路真正跑通,从提交任务、轮询状态,到拿回结果、下载成片,都能一把做完。
它特别适合下面这些对外场景:
- - 文生视频
- 图生视频
- 草稿视频二次优化
- 提交生成任务并持续轮询状态
- 检查任务返回内容与原始payload
- 将生成好的视频自动下载到本地
如果你想要的是一个能真实发起任务、能追踪任务进度、能拿到最终视频文件、适合实战交付的火山视频技能,这个版本就是为这种需求准备的。
将提示词和可选的参考媒体作为每个任务的运行时输入。除非用户明确要求使用文档中的示例提示词或示例媒体,否则不要在真实的生成请求中重复使用它们。
此技能擅长什么
- - 根据任务特定的提示词进行文生视频
- 使用本地文件、数据URL或远程图片URL进行图生视频
- 通过引导性提示词对草稿视频进行优化
- 轮询现有任务并下载已完成的结果
- 在更快的默认模型和更强的备选模型之间切换
默认路径
使用当前任务的实际提示词运行捆绑脚本:
bash
python3 scripts/generate_video.py 当前任务的实际视频提示词
要切换到备选模型运行一次:
bash
VOLCENGINEVIDEOMODEL=doubao-seedance-1-5-pro-251215 \
python3 scripts/generate_video.py 当前任务的实际视频提示词
默认情况下,脚本会:
- - 提交任务
- 轮询直到任务完成
- 从任务payload中提取返回的视频URL
- 将生成的文件下载到~/Desktop/volcengine-videos/<时间戳>-<短标识>/
所需配置
脚本从环境变量读取配置:
- - VOLCENGINEAPIKEY 或 ARKAPIKEY
- VOLCENGINEVIDEOMODEL(推荐)
- VOLCENGINEVIDEOENDPOINT 或 VOLCENGINEENDPOINT 或 ARKBASE_URL
推荐的视频模型:
- - doubao-seedance-1-0-pro-fast-251015 — 默认,迭代速度更快
- doubao-seedance-1-5-pro-251215 — 备选的高阶选项
默认行为:
- - 如果未设置VOLCENGINEVIDEOMODEL,脚本默认使用doubao-seedance-1-0-pro-fast-251015
- 当该环境变量也用于图像生成时,避免在视频运行中依赖VOLCENGINE_MODEL
典型端点:
- - https://ark.cn-beijing.volces.com/api/v3
脚本调用:
- - POST /contents/generations/tasks
- GET /contents/generations/tasks/{task_id}
常见工作流程
1. 文生视频
bash
python3 scripts/generate_video.py 为当前需求编写的视频提示词 \
--ratio 16:9 \
--duration 5
2. 图生视频
bash
python3 scripts/generate_video.py 描述你希望图片如何动起来 \
--image ~/Desktop/reference.png \
--ratio 9:16 \
--duration 5
3. 草稿/样片视频到最终视频
bash
python3 scripts/generate_video.py 说明要保留什么、增强什么 \
--video ~/Desktop/draft.mp4
4. 仅检查现有任务
bash
python3 scripts/generatevideo.py --task-id id> --wait false
5. 仅提交,不等待
bash
python3 scripts/generate_video.py 当前任务的实际视频提示词 \
--ratio 16:9 \
--wait false
6. 当目标模型需要自定义请求体时使用原始内容JSON
bash
python3 scripts/generate_video.py --content-json [
{type:text,text:当前任务的实际视频提示词},
{type:imageurl,imageurl:{url:https://example.com/reference.png}}
]
本地媒体支持
对于--image和--video:
- - 本地文件路径 → 自动转换为data:URL
- https://...URL → 原样发送
- data:...URL → 原样发送
这使得本地参考媒体无需手动上传步骤即可使用。
关键选项
- - --ratio 16:9|9:16|1:1|adaptive
- --duration <秒数>
- --frames <数量>
- --seed <整数>
- --resolution <值>
- --camera-fixed true|false
- --watermark true|false
- --callback-url
- --poll-interval <秒数>
- --timeout <秒数>
- --download-results true|false
- --download-dir <路径>
- --print-request
执行清单
- 1. 确认用户想要的是文生视频、图生视频还是草稿视频优化。
- 将提示词视为任务特定的运行时输入;除非明确要求,否则不要将示例提示词文本或示例媒体带入实际运行。
- 默认选择提示词优先模式;仅在API结构必须自定义时使用--content-json。
- 直接使用--image或--video传递本地参考媒体。
- 对于整秒片段优先使用--duration,仅在需要更精细控制时使用--frames。
- 默认进行轮询,以便最终答案包含实际的输出URL或下载的文件。
- 当启用下载时,提及保存的文件路径。
- 如果API返回意外的结构,显示原始JSON而不是猜测。
故障排除
- - 缺少密钥 → 设置VOLCENGINEAPIKEY
- 缺少或错误的模型 → 设置VOLCENGINEVIDEOMODEL
- 如果视频运行意外选择了图像模型(例如doubao-seedream-4-5)→ 明确设置VOLCENGINEVIDEOMODEL,而不是重用VOLCENGINEMODEL
- 缺少端点 → 设置VOLCENGINEVIDEO_ENDPOINT
- 401/403 → 密钥无效或缺少权限
- 404 → 端点错误或区域不匹配
- 400 → 不支持的模型/参数组合
- 任务长时间保持排队状态 → 检查配额、速率限制或模型可用性
- 响应中没有明显的视频URL → 检查raw
参考资料
- - references/sources.md
- references/api-notes.md