delivery-video-plugin
lumos-789/delivery-video-plugin
把真实运行的功能做成可信交付演示视频:真实录屏、edge-tts 旁白与逐字对齐字幕、自包含 ffmpeg 管线,配一道拒绝放过造假或残次演示的确定性质量闸(规格、音轨、响度、黑帧/冻结/静音扫描),含渲染前预检与成片证据核验。需 Python 3.9+、PATH 上的 ffmpeg/ffprobe,以及 `pip install edge-tts Pillow`;旁白会调用 edge-tts 公共接口。
安装
dsh plugin --profile web add github:lumos-789/delivery-video-pluginREADME
delivery-video
A skill plugin that turns a feature that actually runs into a trustworthy delivery demo video — real screen recordings, synthesized narration, word-synced subtitles, and a deterministic quality gate that refuses to pass a fake or broken demo.
Most "AI demo videos" are stitched from static screenshots, mock pages or stale recordings. This plugin enforces the opposite discipline: every segment must point at a real recording with a traceable time range, the last shot must end on a verified result state, and the artifact must pass a hard gate (resolution/fps/codec, audio presence, loudness, black frames, freeze frames, bitrate density) before anything is posted. The uploaded file is always the gated file, bound by SHA256.
What it does
- Verify first, record second — the workflow requires evidence that the current version really runs (git SHA, tickets, request IDs) before any recording.
- episode.json recipe — each segment binds one real take + time range + one narration line + optional crop/case chip.
- Self-contained renderer —
render.pysynthesizes narration via edge-tts (word-boundary clocks), times each segment to its narration (0.3x–3x speed clamp), draws the label chip and word-synced subtitles, concatenates, loudness-normalizes to −14 LUFS, and runs the built-in quality gate. Output:screen_demo.mp4(1920×1080, 30fps, h264+AAC),timeline.json, cover/preview frames,quality_gate/report.json. - Fail-loud checks —
preflight.pyvalidates the recipe before rendering (structure, intervals, crops, browser-recording evidence, TTS cache contracts, narration red lines);verify_delivery.pyverifies the finished artifact, gate binding and optional independent visual review afterwards. - Attachment gate —
render.py gateruns the same hard checks on any mp4 before it goes into a ticket, chat or customer channel.
Prerequisites
python33.9+ffmpegandffprobeon PATHpip install edge-tts Pillow
Side effects (disclosed for review)
- Network: narration synthesis calls the public edge-tts (Microsoft Cognitive Services) endpoint; no other network access.
- Files: writes only inside the build directory you pass in (
tts/cache, per-segment clips, final mp4, gate reports). - Commands: runs
ffmpeg/ffprobelocally; the skill never uploads, publishes or deletes anything by itself.
Quick start
- Record real takes of the feature with your usual tool (macOS
Cmd+Shift+5, OBS, or a scripted browser screencast — see the skill's recording reference). - Create
build/screen_demo-<slug>/episode.json(copyexamples/episode.example.json). - Run the three scripts:
python3 <skill>/scripts/preflight.py build/screen_demo-myfeature
python3 <skill>/scripts/render.py render build/screen_demo-myfeature
python3 <skill>/scripts/verify_delivery.py build/screen_demo-myfeature
Suggested trial prompt after install: "用 delivery-video 把这个项目刚完成的功能录成一段 90 秒交付演示视频" — the skill will walk verification, storyboard, recording guidance, recipe assembly, render and gating.
License
MIT © Lumos-789