Install
openclaw skills install @bunsdev/research-to-music-video-pipelineCreate 60s music videos from research articles using storyboard PDF, image/video/audio gen, and ffmpeg assembly.
openclaw skills install @bunsdev/research-to-music-video-pipelineTurn a research article into a finished 60-second music video and a structured storyboard PDF.
Run this as a resumable production pipeline, not as a chat-only brainstorm. The final deliverables are:
final.mp4: stitched 60-second music video with generated song underneath.storyboard.pdf: structured PDF with narrative storyboard, image prompts, video prompts, music direction, source notes, and provider/job metadata.final.mp4, storyboard.pdf, and a concise run summary.Do not spend paid credits or launch long-running generation jobs until the user has approved:
You may generate the research brief, prompt pack, and storyboard draft before that approval when no paid or external generation is required.
Use available runtime tools exactly as exposed. If a tool is deferred, discover and load the exact callable spec first.
Target providers from the user request:
ffmpeg/ffprobe.If a target provider is unavailable or missing credentials, produce the storyboard/prompt pack and ask for the missing provider/credential. Do not silently substitute providers for final generation unless the user approves.
Create one timestamped run directory:
research-music-video-runs/<safe-title>-YYYYMMDD-HHMMSS/
Use this structure:
source/
article.pdf | article.html | article.txt
storyboard.md
storyboard.pdf
prompts.json
manifest.json
images/
scene-01.png
videos/
scene-01.mp4
audio/
song.mp3 | song.wav
assembly/
concat.txt
normalized/
final.mp4
Update manifest.json after every completed step so interrupted runs can resume.
Extract or infer:
If extraction is partial, state that in the storyboard and preserve the source file.
Create storyboard.md with these sections:
Render storyboard.md to storyboard.pdf using available local tooling. Use pandoc, playwright print-to-PDF, or another reliable renderer already available in the environment.
Unless the user specifies otherwise:
Adjust scene count only when provider duration limits require it.
For every scene, generate:
image_prompt: still-image prompt with subject, composition, style, lighting, camera/lens, aspect ratio, and negative constraints.video_prompt: reference-to-video prompt with motion, camera movement, temporal progression, transformation, continuity requirements, and mood.Rules:
For each scene:
image_prompt to the selected image generator.images/scene-XX.<ext>.manifest.json.If an image is blank, corrupt, wrong subject, or unusable, regenerate that scene only.
For each scene:
video_prompt plus matching still to the selected reference-to-video provider.videos/scene-XX.mp4.ffprobe.If a video job is pending, report the job id and do not claim final completion. If one scene fails, retry or substitute only that scene with user approval.
Create an audio prompt from the research brief and storyboard:
Generate original music with Suno, MiniMax audio, or another approved provider. Save under audio/ and record prompt, provider, job id, and file path in manifest.json.
Use ffmpeg to create final.mp4:
Use simple cuts by default. Add crossfades only when they are easy to verify and do not introduce timing problems.
Before reporting success:
storyboard.pdf exists and has nonzero size.manifest.json.ffprobe on every clip or at least confirm nonzero duration for each clip.ffprobe on final.mp4 and confirm video and audio streams exist.Useful commands:
ffprobe -v error -show_entries format=duration -of default=nw=1:nk=1 final.mp4
ffprobe -v error -select_streams v:0 -show_entries stream=codec_name,width,height -of default=nw=1 final.mp4
ffprobe -v error -select_streams a:0 -show_entries stream=codec_name -of default=nw=1 final.mp4
Return only high-signal status:
Do not claim the video is complete unless the verification gate passed.
ffmpeg missing: return storyboard, prompts, generated assets, and exact assembly plan.