Install
openclaw skills install ark-video-storyboardGenerate a storyboard and prompts from a scene or reference images, confirm the script with the user, then optionally submit multi-segment video generation tasks to the Volcengine Ark video API. Use when the user wants to turn a scene idea into a structured video workflow, especially for mood films, product scenes, narrative shorts, or image-to-video prompt pipelines.
openclaw skills install ark-video-storyboardTurn a scene idea into a structured video plan, then optionally execute it with the Ark video generation API.
This skill is confirmation-first:
所有片段下载完成后,按以下步骤合并并发送给用户:
Ark API 下载的视频片段默认保存在 ~/.openclaw/media/{timestamp}/,按时间戳组织。确认目录存在:
ls ~/.openclaw/media/{timestamp}/seg*.mp4
cd ~/.openclaw/media/{timestamp}/
echo "file 'seg1.mp4'\nfile 'seg2.mp4'\n..." > concat.txt
seg 序号与片段数量一致,逐行追加。
ffmpeg -f concat -safe 0 -i concat.txt -c copy merged.mp4
ls -lh merged.mp4
ffprobe -v quiet -print_format json -show_format merged.mp4
飞书直接发送限制约 20MB:
merged.mp4ffmpeg -i merged.mp4 \
-c:v libx264 \
-crf 28 \
-c:a aac \
-b:a 128k \
-y merged_compressed.mp4
使用 message 工具发送文件:
filePath: ~/.openclaw/media/{timestamp}/merged_compressed.mp4channel: feishumessage: 告知用户视频已合并完成,共多少片段,时长多少在 ~/.openclaw/workspace/WORKFLOW.md 中记录本次处理信息(时间戳、片段数量、输出文件路径、文件大小)。
如果视频有多个片段,且用户没有提供人物参考图,则:
East Asian young man, black short hair, white T-shirt, 25 years old如果用户提供了人物参考图,则每个提示词里统一写:consistent with the character in reference image
Collect as many of these as possible before writing prompts:
If inputs are incomplete, still proceed with reasonable defaults and clearly state the assumptions.
Follow the schema in references/storyboard-schema.md.
At minimum include:
When writing a segment prompt, include the details that matter most for video generation:
Use this narrative rhythm by default unless the user asks for a different structure:
For more than 4 segments, insert additional deepen / transition beats while preserving continuity.
This skill should support dynamic segment splitting.
Examples:
Current validated Seedance 1.5 Pro rule from user-confirmed testing:
duration must be an integer in the range [4, 12]So before execution:
duration = total_duration_seconds / segment_countAPI key loading order for actual generation:
ARK_API_KEY~/.openclaw/openclaw.json → skills.entries.ark-video-storyboard.apiKeyskills.ark-video-storyboard.apiKeyIf the user wants actual generation, read references/api.md and use the scripts:
scripts/build_storyboard.py to assemble structured segment datascripts/run_full_generation.py to sequentially submit segments, poll each task, collect video_url, and optionally download videosscripts/submit_segment.py to submit one segment at a timescripts/get_task_result.py to query a task once and extract video_urlscripts/poll_task_until_done.py to poll until completion and return video_urlscripts/download_video.py to download a finished video_url to local storageSubmit segments sequentially, not in parallel, unless the user explicitly asks otherwise.
Current known request requirements include:
modelcontent (first item is the text prompt)ratiodurationwatermark{"type": "image_url", "image_url": {"url": "<data_uri or url>"}} in content arrayCurrent validated model in this workspace:
doubao-seedance-1-5-pro-251215If API submission fails, returns any model / parameter / schema error, or returns no valid task_id:
If API submission succeeds and returns a valid task_id:
A good segment should look like this:
See references/examples.md for a concrete sleeping-scene example.
references/storyboard-schema.md before generating structured segments.references/prompt-rules.md when you need guardrails for prompt quality or continuity.references/api.md before building or submitting API payloads.references/examples.md when the user wants output that matches the example style.