web-video-presentation

Convert articles and narration scripts into click-driven 16:9 web presentations renderable as videos.

3|Updated Aug 5, 2026
One-click install
npx skills add https://github.com/xuanbingbingo/wvp-kit --skill web-video-presentation-xuanbingbingo
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: web-video-presentation
Source: https://github.com/xuanbingbingo/wvp-kit/tree/main/skill
Command: npx skills add https://github.com/xuanbingbingo/wvp-kit --skill web-video-presentation-xuanbingbingo

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires gsap, @gsap/react, vite, react, typescript, edge-tts, mmx-cli, and includes scripts (resource) and references (resource) components.

What problem does it solve? Turning a written article or voiceover script into a video usually means fighting three separate battles: building visuals that don't look like a slide deck, syncing narration timing with on-screen animation, and recording the result without dropped frames. This Skill provides a methodology and scaffold that produces a Vite + React + TypeScript presentation where each click advances one narration beat on a fixed 1920×1080 stage, then renders it frame-by-frame into an mp4 with deterministic, reproducible output. ## Core Features & Use Cases - Script-to-stage workflow: Produces script.md and outline.md from an article, aligns theme, assets, and development mode at hard checkpoints, then builds chapters where each step owns the full screen and matches one narration beat. - Theme-token architecture: Ships 23 themes with semantic design tokens, plus contracts like inverted ink surfaces and a bottom subtitle band, so chapters stay visually consistent without hardcoded colors or fonts. - Deterministic rendering and QA: Includes a frame-by-frame renderer, a shot checker validating animation duration against audio length, and a mid-frame motion probe that catches defects invisible in final-state screenshots. - Pluggable TTS: Synthesizes per-step mp3 narration through provider-agnostic scripts with built-in MiniMax and OpenAI providers, plus snippets for edge-tts, ElevenLabs, Azure, Google, and macOS say. - Use Case: A creator has a 15-chapter technical course script. The Skill generates the narration script and outline, scaffolds a themed React presentation, synthesizes Chinese voiceover per step, validates every step's animation fits its audio budget, and renders a finished mp4 without any screen recording. ## Quick Start Ask your agent to use the web-video-presentation skill to turn your article or narration script into a 16:9 web video presentation, then confirm the theme and outline at the checkpoint before chapter development begins.

Frequently Asked Questions about web-video-presentation

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I turn an article into a video presentation with AI?

Provide the article to the skill, which generates a narration script and chapter outline in one pass, then pauses at a checkpoint for you to confirm the script, outline, theme, assets, and development mode. After approval it builds a Vite + React + TypeScript presentation chapter by chapter, optionally synthesizes audio, and renders the final mp4.

How do I sync narration audio with web animations?

Each chapter has a narrations.ts file that is the single source of truth for step count and spoken text, so one step equals one mp3 file. The qa-shot script validates that every step's animation duration stays within its audio duration, and the renderer concatenates audio with a 200ms tail gap.

What TTS providers does the audio synthesis support?

The runner is provider-agnostic with two built-in providers: MiniMax via mmx-cli as the default for Chinese narration, and OpenAI TTS via curl using OPENAI_API_KEY. Ready-to-paste snippets cover ElevenLabs, edge-tts, macOS say, Azure, and Google Cloud, and any custom backend works by adding one shell file implementing the three-function contract.

Can I use GSAP animations in the presentation?

Yes, GSAP is supported for DrawSVG, SplitText, MorphSVG, and Flip effects under a determinism contract: all tweens must live on the global timeline inside useGSAP with scope and step dependencies, with no setTimeout, gsap.ticker, or infinite repeats. Simple fades and rises should stay as CSS keyframes.

Why does my rendered video differ between runs?

Non-determinism comes from animations that cannot be externally seeked, such as self-running clocks or GSAP tweens not registered on the global timeline. The renderer pauses both WAAPI and gsap.globalTimeline and seeks both tracks per frame, so any animation outside those mechanisms produces unreproducible frames.

What are the limitations of final-state screenshot QA?

Final-state screenshots miss an entire class of defects including silently non-playing Flip transitions, zero-length drawSVG dots, clipped flying elements, and twisted morphs, all of which look correct at the end state. The qa-motion script samples five mid-animation timestamps per step and compares hashes to catch these issues.