- Home
- Skills
- Image & Video
- Short-video pipeline: topic → script → finished cut
More screenshots
Works with the AI Agents you already use
Short-video pipeline: topic → script → finished cut
Four skills that take a news beat from "what should I make today" to a rendered, captioned, publishable video — with two deliberate human checkpoints.
$15
Short-video pipeline: topic → script → finished cut
Example session with this skill installed
SpaceX just flew its first operational batch of flat-packed Starlink V3 satellites and Musk put a $200B revenue number on it. Make me a video — long cut and a short cut.
- Read your context and instructions
- Compiled the short-video pipeline
STAGE 1 — TITLE (checkpoint, waits for you)
Three options, each committing the piece to a different angle:
A. "The satellites are real. The $200 billion is arithmetic."
B. "Musk's newest number, checked line by line"
C. "What flat-packing a satellite actually buys you"
→ you pick. Everything downstream follows the angle you chose.
STAGE 2 — SCRIPT
733 words, three-part structure. Facts cross-checked against the primary
source before they reach the page. On this story that meant:
· two outlets gave conflicting cumulative sales figures → NEITHER went in
· a projected number was labelled "planned capacity" every time, never output
· the transcript of the talk was pulled and read, not an aggregator's summary
of it — which is where the most useful line turned out to be
STAGE 3 — SIGN-OFF (checkpoint, waits for you)
STAGE 4 — VOICEOVER
edge-tts → assets/narration.mp3 (3:52), captions.vtt, word-level cues.
Completeness check: captions vs script. It has caught a real truncation —
92s of narration where 161s were expected, exit code 0, no error anywhere.
STAGE 5 — FOOTAGE
First-party sources preferred, then every clip inspected across the span it
will actually occupy, with the crop that will actually be applied:
· one clip's title promised deployment footage; sampling its full 11 minutes
showed it never shows the deployment → dropped
· the best bay footage was from an earlier flight carrying SIMULATORS →
used, but labelled on screen as exactly that, and only under narration
about the mechanism, never under the sentence about the real launch
STAGE 6 — SCENE PLAN → plan.json, plan-short.json
Boundaries taken from caption cue edges, never rounded.
STAGE 7 — RENDER (silent → audio → final, so a caption fix is not a re-encode)
renders/starlink-v3-16x9-final.mp4 3:52 1920x1080 34 scenes
renders/starlink-v3-short-9x16-final.mp4 2:41 1080x1920 26 scenes
STAGE 8 — QA
Stills extracted and read. On this video they caught an on-screen label
reading "Gen 2" while the narration discussed the third generation.
ffprobe reports that file as perfectly healthy.
STAGE 9 — COVER + DISTRIBUTION COPY (+ optional YouTube upload)
Both finished cuts from this run are public:
https://www.youtube.com/watch?v=RIgpSjUw_hM
https://www.youtube.com/watch?v=sPMsLv1DURI
Connects securely to your tools. The creator never sees your data.
About this skill
Most video tooling starts after you already know what to say. This starts before that, and stops at a finished MP4.
topic-scan — scans your source list in priority order, verifies every URL resolves, scores candidates on reach, engagement, freshness and fit, and returns a ranked Top 6 with the lead flagged.
script-writing — five-step pipeline: title, frame, research, draft, sign-off. Cross-checks facts against at least three independent outlets before they reach the page. Picks one of five category templates (opinion, event, product, showcase, incident) and applies that category's cold open, analogy system and closing form. Produces a ~750-word three-part voiceover.
news-short-video — TTS, sourced b-roll, data and quote cards, burned-in subtitles, QA stills, covers, distribution copy, optional YouTube upload. Nine scripts, three render tiers, 16:9 and 9:16.
video-pipeline — chains the three and owns the seams between them. The seams are where these things actually break: facts arriving unverified, a word count line getting read aloud by the TTS, a script written to the wrong length for the platform it is going to.
What you configure
Three files, once. Persona and beat, your source list, 20–50 filter keywords. The method is fixed; the beat is yours. Switching from EV to biotech means editing those three files and nothing else.
The two checkpoints are deliberate
You pick the title, and you sign off the script. Everything in between — the research, the scene plan, the render, the QA stills, the cover — the agent does. Those two stay with you because the title sets the angle of the whole piece and the script carries the factual liability. This is not one-click video, and it is not trying to be.
What it is honest about
It orchestrates external tools it does not bundle: ffmpeg, yt-dlp, edge-tts, Node. Run the included doctor.mjs first — one command tells you exactly what is missing and how to install it on your platform. Several of these dependencies fail silently (a missing font makes ffmpeg substitute a face and return success), which is why the preflight exists and why it exits non-zero.
Footage rights are yours. It fetches from public channels for commentary and citation and prefers first-party sources. Clearing that for commercial publication is your call.
The voiceover is synthetic. Every platform has a disclosure control.
Ships configured for English, but not limited to it. Another language needs a font that has the glyphs and the matching voice — both settings. For a script without spaces, keep caption cues inside the line limit; the line-breaker splits on whitespace. TROUBLESHOOTING.md covers both.
Track record
This runs a live channel, not a demo account. One cut produced with it has passed 130,000 views on RedNote. That one was Chinese-language; the two worked examples below are the English build, both public, both finished in a single pass through the pipeline. Watch them before you buy — they are the honest output, not a showreel.
Long cut, 16:9, 3:52 — https://www.youtube.com/watch?v=RIgpSjUw_hM Short cut, 9:16, 2:41 — https://www.youtube.com/watch?v=sPMsLv1DURI
What ships
33 files. Four SKILL.md definitions, nine Node scripts, reference docs for the scene-plan format, dependencies, upload and distribution copy, a TROUBLESHOOTING.md for the failure modes that return exit code 0 and pass ffprobe cleanly, and a commercial licence.
Find more skills like this on the Claude Skills Marketplace, the Codex Skills Marketplace and the Gemini Skills Marketplace, or browse Claude Video Skills.
• Ships configured for English, not limited to it. Another language needs a font that has the glyphs and the matching TTS voice — both are settings, not code changes. For a script without spaces (Chinese, Japanese) the caption line-breaker will not wrap for you, so cues have to be authored inside the line limit: 30 characters at 9:16, 40 at 16:9. • It does not bundle ffmpeg, ffprobe, yt-dlp, edge-tts or Node; it orchestrates them. Several fail silently, which is why doctor.mjs exists and exits non-zero. • Footage rights are yours. It prefers first-party sources and credits them on screen, but clearing a clip for commercial publication is your call. • The voiceover is synthetic. Every platform has a disclosure control and you should use it. • Not one-click, by design. You pick the title and you sign off the script — two stops that carry the angle and the factual liability. • Developed and run on macOS. Font paths are configurable, but the defaults are macOS system faces; on Linux set HF_FONT_DIR or edit the font table in styles.mjs.
How to use
- 1
Connect your agent to the Agensi MCP
Copy the prompt and paste it into Claude, ChatGPT, Cursor or any agent that supports MCP. It sets up the connection for you. Manual setup
- 2
Sign in to Agensi
Your agent shows a sign-in link. Sign in and click Allow.
- 3
Ask for what you need
Your agent loads this skill and uses it on your task. It always asks before buying a skill.
Reviews
This skill has been used 7 times.
Trust & safety
Security scan
Security scan passed 3 months ago
- Software
Node.jsedge-tts
uv (Python tool runner)hyperframescannot
Permissions
File Scopes
Terminal, network and file access are the core of what this does: it shells out to ffmpeg, ffprobe, yt-dlp and edge-tts, downloads sourced footage, and writes narration, scene plans, renders and QA stills into the video project directory. Browser access is used by the topic-scan stage to open pages that web_fetch cannot read. The host list is not closed, and it would be dishonest to present it as one. topic-scan and script-writing fetch news pages from whatever source list YOU configure, so the outlets reached are yours, not ours. The hosts listed above are the ones the package itself names. edge-tts additionally reaches a Microsoft speech endpoint; it runs as a separate binary via uvx, and this package does not hardcode that address. Environment variables: two optional overrides only, HF_FONT_DIR and HF_VERSION. No credentials are read from the environment, and none are bundled. If you enable the optional YouTube upload you supply your own OAuth client, and it stays on your machine. Note on auto-detection: the scanner does not read .mjs files, so it under-reports this package's nine Node scripts. The declarations above were written by hand against the actual source.