educational-video-creator
npx skills add https://github.com/skindhu/skind-skills --skill educational-video-creator
Agent 安装分布
Skill 文档
Educational Video Creator
Create professional educational videos with Kurzgesagt/åå½¢é visual style using Remotion.
Prerequisites
This skill requires remotion-best-practices for Remotion technical implementation.
Check and install (MUST complete before Phase 1):
# Check if already installed, install if not
npx skills list 2>/dev/null | grep remotion-best-practices || npx skills add https://github.com/remotion-dev/skills --skill remotion-best-practices
Once installed, read the remotion-best-practices skill to load Remotion API details into context. This is essential â without it, Phase 4 code will have incorrect Remotion API usage.
External dependencies (needed for Phase 4.5 audio generation):
# ffmpeg (provides ffprobe for audio duration measurement)
brew install ffmpeg # macOS
# apt install ffmpeg # Linux
# edge-tts (Python TTS engine for narration generation)
pip install edge-tts
Project Setup
This skill creates videos in a dedicated remotion_video subdirectory within the current workspace.
First-time setup (recommended â non-interactive):
# Create video project directory
mkdir -p remotion_video
cd remotion_video
# Initialize without interactive prompts
npm init -y
npm install remotion @remotion/cli @remotion/google-fonts @remotion/transitions react react-dom
npm install -D typescript @types/react
# Create minimal project structure
mkdir -p src public/audio/narration
Then create the required entry files:
src/Root.tsxâ Main composition registrysrc/index.tsâ Remotion entry point withregisterRoot(Root)remotion.config.tsâ Remotion configurationtsconfig.jsonâ TypeScript config
Alternative (interactive â may block in automated environments):
mkdir -p remotion_video && cd remotion_video
npx create-video@latest --blank
npm install
Note:
npx create-videomay prompt for project name, package manager, etc. In CLI/automation contexts, use the non-interactive method above to avoid blocking.
Existing project:
cd remotion_video
npm install # Ensure dependencies are installed
Project structure:
your-workspace/
âââ remotion_video/ # Video project root
â âââ src/
â â âââ Root.tsx # Main composition registry
â â âââ YourVideo/ # Video-specific components
â â âââ index.tsx
â â âââ scenes/
â â âââ components/
â âââ public/ # Static assets
â âââ package.json
âââ ... (other workspace files)
Quick Start
- Setup project â create
remotion_videodirectory if needed - Gather requirements â confirm topic, audience, duration
- Write script â complete narrative with story arc and pacing
- Create storyboard â break script into visual scenes with animation specs
- Design visuals â apply style guide, create SVG components
- Implement animations â code scenes in Remotion
- Quality assurance â auto-check, auto-fix, auto-start preview
â ï¸ Context Recovery Protocol
Every conversation turn may follow a context loss (compaction, new session). Before doing ANY work:
- Check if
remotion_video/PROGRESS.mdexists- If YES â Read it completely to determine current phase and last completed step
- If NO â This is a new project, proceed to Phase 1
- Read supporting files referenced in PROGRESS.md (only if that phase is marked complete):
remotion_video/script.md(if Phase 1.5+ completed)remotion_video/storyboard.md(if Phase 2+ completed)src/<Composition>/constants.ts(if Phase 3+ completed â contains COLORS, SCENES, NARRATION, AUDIO_SEGMENTS)
- Verify files listed in “Files Created” section actually exist on disk
- Resume from the first unchecked item in the current phase
Skipping this protocol causes repeated work or file corruption. Always run it first.
Progress Tracking â Mandatory Protocol
â ï¸ This protocol is NON-NEGOTIABLE. Skipping updates causes context loss and repeated work.
Maintain remotion_video/PROGRESS.md using progress-template.md. Create it at Phase 1 start. Log decisions in the Decisions table and add every created file to “Files Created”.
Checkpoint Rule
Every time you complete a checkbox item in PROGRESS.md, you MUST immediately:
- Mark the item
[x]and add brief notes - Update the “Current State” section (Current Phase + Current Step)
- Then â and only then â proceed to the next item
Do NOT batch multiple items. One item done â one update â next item.
Phase Transition Gate
Before starting any new Phase, you MUST:
- Read
PROGRESS.mdand verify ALL items in the previous phase are[x] - Update “Current Phase” to the new phase
- If any previous item is unchecked, complete it first
Workflow
Phase 1: Requirements Gathering
â ï¸ First: Complete the Prerequisites section (install remotion-best-practices skill and read it). Then create
remotion_video/PROGRESS.mdfrom progress-template.md and fill in Project Info.
Before starting, confirm these essential details with the user:
- Topic: What concept/subject to explain?
- Audience: Who is watching? (children/adults, beginners/experts)
- Language: Chinese/English/other?
- Duration: Short (1-3min), Medium (3-5min), or Long (5-10min)?
- Key points: What must the viewer learn?
For detailed question templates, see requirements-guide.md.
Phase 1.5: Script Writing
â ï¸ Checkpoint Rule active: After completing EACH checkbox item for this phase, immediately update
PROGRESS.md. Do not batch updates.
Write a complete narrative script before designing the storyboard. This phase focuses purely on storytelling â what to say and how to say it well â without worrying about visual specs, frame numbers, or animation parameters.
IMPORTANT: Write the FULL narration text â every word that will be spoken. Do NOT write summaries, bullet points, or placeholders. The script is the final spoken content.
The script must include:
- Core message â one-line summary, learning objectives
- Narrative strategy â apply techniques from script-and-narration.md:
- Entry angle (question / scenario / challenge / story)
- Core metaphor that runs through the entire video
- Knowledge scaffolding order (what depends on what)
- Emotional curve (curiosity â understanding â wonder â satisfaction)
- Full narration text â complete word-for-word script for every chapter:
- Include emphasis markers (bold for stress, italic for softer tone)
- Mark pauses with
[.](short),[..](medium),[...](long),[PAUSE]or[BEAT](dramatic) â see script-and-narration.md Part 3 for duration semantics - Add visual intents after each chapter (1-2 sentences describing what viewers should see â enough for Phase 2 to design scenes, but no animation specs)
- Pacing notes â where to speed up, slow down, and pause
- Self-review â run through the checklist in script-and-narration.md before presenting to user
Quality gate: Present the complete script to the user for approval. Do NOT proceed to Phase 2 until the user explicitly approves the narrative.
Why script first:
- Separates “what to tell” from “how to show” â two different creative activities
- LLM produces better narratives when not simultaneously calculating frame ranges
- Pure text is cheap to iterate; storyboard with animation specs is expensive to revise
- Users can easily review “is the story good?” without wading through technical details
Output: Save the approved script as remotion_video/script.md
See script-and-narration.md for video structure templates, narrative techniques, writing techniques, and TTS notes.
Phase 2: Storyboard Design
â ï¸ Checkpoint Rule active: After completing EACH checkbox item for this phase, immediately update
PROGRESS.md. Do not batch updates.
Convert the approved script into a production-ready storyboard. The script provides what to say; the storyboard defines how to show it.
Input: Completed script (approved in Phase 1.5)
Tasks:
- Break script chapters into visual scenes (5-15 scenes)
- Assign narration text from the script to each scene
- Design visual layers for each scene (background / midground / foreground / UI)
- Add frame-level animation specifications (spring, easing, timing)
- Define visual-narration sync points
- Plan the asset inventory (SVG components, colors, typography)
The cognitive load is much lower than creating everything from scratch â the narrative is already decided, so you only need to focus on visual execution.
Output: Save the completed storyboard as remotion_video/storyboard.md for design traceability and iteration reference.
See storyboard-template.md for templates. See script-and-narration.md Part 4 for subtitle formatting and TTS notes.
Phase 3: Visual Design
â ï¸ Checkpoint Rule active: After completing EACH checkbox item for this phase, immediately update
PROGRESS.md. Do not batch updates.
Apply the Kurzgesagt/åå½¢é style. Concrete steps:
- Choose color palette â Select from design-tokens.ts Section 1 or create a custom palette matching the topic
- Create
constants.tsâ DefineCOLORS,TYPOGRAPHY,SCENES,NARRATION, and estimatedAUDIO_SEGMENTSfollowing design-tokens.ts Section 3 - Set up fonts â Use Remotion’s
loadFont()from@remotion/google-fonts(see design-tokens.ts Section 2 for reference) - Create shared SVG components â Build reusable visual elements (icons, illustrations, decorative elements) following svg-components.md
- Design scene layouts â Plan visual layers (background / midground / foreground / UI) per scene following visual-principles.md
Style principles:
- Flat design with subtle gradients
- Bold, saturated color palette
- Geometric shapes with rounded corners (rx/ry)
- Clean sans-serif typography
See style-guide.md for complete visual standards. See visual-principles.md for composition and layout.
Phase 4: Animation Production
â ï¸ Checkpoint Rule active: After completing EACH checkbox item for this phase, immediately update
PROGRESS.md. Do not batch updates. Log key file paths in “Files Created”.
Implement scenes using Remotion:
- Create SVG components for visual elements
- Use
useCurrentFrame()for all animations - Apply appropriate easing (spring for natural motion)
- Add scene transitions
Subtitle & narration rules (critical for Phase 4.5 compatibility):
- All narration text must be stored in the
NARRATIONobject inconstants.tsâ never hardcode text directly in scene TSX files - Create an estimated
AUDIO_SEGMENTSinconstants.tswith approximate timing. Phase 4.5 will overwrite it with real audio-based timing - Subtitle components must reference
AUDIO_SEGMENTS.sceneKeyâ never use inline segment arrays with hardcoded frame numbers AUDIO_SEGMENTSä¸çstartFrame/endFrameå¿ é¡»ä½¿ç¨åºæ¯æ¬å°å¸§å·ï¼æ¯ä¸ªåºæ¯ä»SCENE_PAD=15 å¼å§ï¼ï¼ä¸æ¯å ¨å±å¸§å·ãå 为 AudioLayer å SubtitleSequence é½å¨åºæ¯ç<Sequence>å é¨è¿è¡ï¼useCurrentFrame()è¿åçæ¯æ¬å°å¸§å·ãå¦æä½¿ç¨å ¨å±å¸§å·ï¼åç»åºæ¯çåå¹ä¼å»¶è¿æå®å ¨ä¸æ¾ç¤º- This ensures
rebuild-timeline.ts --writein Phase 4.5 can update timing without modifying any scene files
Visual-narration alignment rules (prevents animation-subtitle desync):
- æ¯ä¸ªä¸æç½å
容对åºçè§è§å
ç´ ï¼å¾æ åºç°ãç®å¤´å±å¼ãå¾è¡¨ç»å¶çï¼ï¼å
¶
startFrameå¿ é¡»ä»AUDIO_SEGMENTSå¯¹åºæ®µçstartFrameæ´¾çï¼ä¸è½å”è§è§è奔硬ç¼ç - æ£ç¡®æ¨¡å¼ï¼
const liftArrowStart = AUDIO_SEGMENTS.forces[0].startFrame;ï¼ååç®å¤´å¨æç½è¯´”å唿¶åºç°ï¼ - é误模å¼ï¼
const liftArrowStart = 30;ï¼åæè§åç帧æ°ï¼åæç½æ å ³ï¼ - çº¯è£ é¥°æ§å¨ç»ï¼èæ¯ç²åãç¯å¢æ°å´ï¼ä¸åæ¤çº¦æï¼å¯ä»¥èªç±å®æ¶
- Phase 4 使ç¨ä¼°ç® AUDIO_SEGMENTSï¼Phase 4.5 rebuild-timeline æ´æ°ç宿¶é´åï¼å 为代ç å¼ç¨çæ¯åéèé硬ç¼ç æ°åï¼è§è§å¨ç»ä¼èªå¨åæ¥
- åè animation-guide.md “Narration-Synced Animation” ç« èçå®ç°æ¨¡å¼
Element sizing rules (prevents “Thumbnail Syndrome” â tiny elements on a large canvas):
- åè visual-principles.md “Content Area Utilization” ç¡®ä¿å 容填å ç»å¸ï¼æ ¸å¿å 容 ⥠å®å ¨åº 60%ï¼
- ç»ä»¶é»è®¤å°ºå¯¸åè svg-components.mdï¼å¾æ â¥96pxï¼æµç¨èç¹ â¥160px é«ï¼æ ç¾ â¥40pxï¼
- å¾è¡¨/æµç¨å¾åºå æ®å 容åºå大é¨åé¢ç§¯ï¼é¿å å¨ 1920Ã1080 ç»å¸ä¸ç¼©æç¼©ç¥å¾
Background rules (prevents transparent/checkerboard frames during transitions):
- The main composition must have a persistent
<AbsoluteFill>background layer (usingCOLORS.background) that sits behind all scenes and never participates in transitions - Each scene component must also have its own solid background as the first child element
- During
fade()transitions, both scenes have reduced opacity â without a persistent background, transparent frames appear as a checkerboard pattern in preview and black in renders - See animation-guide.md “Preventing Transparent Frames” for the implementation pattern
Visual richness rules (prevents PPT-like output):
- æ¯ä¸ªåºæ¯å¿ é¡»æè³å°ä¸ä¸ª éæåçè§è§ä¸»ä½å ç´ ï¼SVG æç»ãå¾è¡¨ãå¨ç»å¾å½¢çï¼ã纯æåæ ç¾ + æ¹å䏿¯åæ ¼çè§è§å 容
- æµç¨å¾/å æé¾å¿ é¡»ç¨ å¾æ ææç» é åæåï¼ä¸è½åªç¨çº¯è²æ¹åè£ æåãåè svg-components.md “Illustrated Flow Node” 模å¼
- æ¯ä¸ªåºæ¯åºæ ç¯å¢æ°å´å±ï¼ç²åãå æã纹ççï¼ï¼åè style-guide.md Ambient Effects ç« è
- SVG æç»åºä½ç° Kurzgesagt 飿 ¼ï¼åè§å ä½å½¢ç¶ï¼rx/ryï¼ãæå¹³å使屿¬¡ï¼å¤ path å å ï¼ãæåæ¸åï¼linearGradient/radialGradientï¼ãéå½æè¾¹
- åè visual-principles.md “Show, Don’t Tell” ååï¼è½ç¨å¾ç¤ºè¡¨è¾¾çæ¦å¿µä¸è¦ç¨æåæ¹å
- åè scene-template.tsx ä¸ ForceDiagramScene ç SVG 飿ºæç»ä½ä¸ºå ·è±¡æç»çæä½è´¨éæ å
Color rules (critical for Phase 5 style-scan compliance):
- All colors must be referenced via the
COLORSobject fromconstants.ts(e.g.,COLORS.accent.rose) â never write hex values directly in TSX files - The only exception is
rgba()for opacity variations (e.g.,rgba(0, 0, 0, 0.7)for subtitle backgrounds) - This prevents the common issue where style-scan reports dozens of “color not in approved palette” warnings
See design-tokens.ts Section 3 for the complete constants.ts structure (COLORS, SCENES, NARRATION, AUDIO_SEGMENTS, font loading). See svg-components.md for component patterns. See animation-guide.md for timing and easing.
Phase 4.5: Audio Generation
â ï¸ Checkpoint Rule active: After completing EACH checkbox item for this phase, immediately update
PROGRESS.md. Do not batch updates.
宿å¨ç»ç¼ç åï¼çæè§é¢é³é¢å¹¶åæ¥æ¶é´çº¿ï¼
- çæ TTS é³é¢ â ç¨
generate-tts.tsä» NARRATION æåææ¬çæ mp3 - é建æ¶é´çº¿ â ç¨
rebuild-timeline.ts --writeæ ¹æ®å®é é³é¢æ¶é¿æ´æ° constants.ts - è°æ´å¨ç»å
³é®å¸§ â æ
newDuration / oldDurationæ¯ä¾ç¼©æ¾ - æ·»å èæ¯é³ä¹ â å
çç¨ BGM å°
public/audio/bgm.mp3 - å建 AudioLayer â ææ¾æç½ + BGM çç»ä»¶
- éæå¹¶éªè¯ â AudioLayer å¿ é¡»å¨ TransitionSeries å¤é¨
è¯¦ç»æ¥éª¤ãå½ä»¤åæ°ãAudioLayer 模æ¿è§ audio-guide.mdã
Phase 5: Quality Assurance
â ï¸ Checkpoint Rule active: After completing EACH checkbox item for this phase, immediately update
PROGRESS.md. Do not batch updates.
宿ç¼ç åï¼æ§è¡èªå¨è´¨éæ£æ¥æµç¨ï¼
- ä»£ç æ«æ â æ£æ¥æ ·å¼åè§æ§ï¼åå·ãé¢è²ãå®å ¨åºåçï¼
- æªå¾å®¡æ¥ â æ¸²æå ³é®å¸§ï¼è§è§æ£æ¥
- èªå¨ä¿®å¤ â æ ¹æ®æ£æ¥æ¥åä¿®å¤é®é¢ï¼å¾ªç¯ç´å°éè¿
- å¯å¨é¡¹ç® â æææ£æ¥éè¿åï¼èªå¨å¯å¨ Remotion é¢è§
è¯¦ç»æ£æ¥æ¥éª¤åè§åè§ quality-checklist.mdã
Phase 6: Final Export
After preview looks correct, render the final video:
cd remotion_video
npx remotion render src/index.ts <CompositionName> out/video.mp4
Options:
--codec h264(default) or--codec h265for smaller file size--quality 80to100(default: 80)--scale 1(1080p) â use--scale 2for 4K if source assets support it- Add
--log verboseif debugging render issues
The output file will be at remotion_video/out/video.mp4.
Video Structure
Standard educational video structure:
1. Hook (5-10s) - Attention-grabbing question or statement
2. Intro (10-20s) - Topic introduction
3. Content (main) - Core explanation, broken into segments
4. Summary (10-20s) - Key takeaways
5. Outro (5-10s) - Call to action or closing
See script-and-narration.md Part 1 for detailed structure templates.
Key Principles
Content Clarity
- One concept per scene
- Build complexity gradually
- Use visual metaphors for abstract ideas
Visual Simplicity
- Minimal elements on screen
- Clear visual hierarchy
- Consistent style throughout
Animation Purpose
- Every animation serves understanding
- Avoid decorative motion
- Sync with narration pace
Reference Files
| File | When to Use |
|---|---|
| requirements-guide.md | Starting a new video project (Phase 1) |
| script-and-narration.md | Video structure, script writing, narration, subtitle/TTS (Phase 1.5 + 2) |
| storyboard-template.md | Converting script into visual scenes (Phase 2) |
| style-guide.md | Designing visual elements (Phase 3 + 4) |
| visual-principles.md | Layout and composition decisions (Phase 3 + 4) |
| animation-guide.md | Implementing animations (Phase 4) |
| svg-components.md | Creating reusable components (Phase 4) |
| audio-guide.md | TTS çæãæ¶é´çº¿é建ãAudioLayer éæè¯¦ç»æ¥éª¤ (Phase 4.5) |
| quality-checklist.md | Quality assurance + style check rules (Phase 5) |
| design-tokens.ts | Color palettes, typography presets, constants.ts template (Phase 3) |
| progress-template.md | æ§è¡è¿åº¦è·è¸ªæ¨¡æ¿ (å ¨æµç¨) |
| scene-template.tsx | åºæ¯ç»ä»¶æ¨¡æ¿ (Phase 4) |
| subtitle-sequence-template.tsx | åå¹åºåç»ä»¶æ¨¡æ¿ (Phase 4) |
| common-icons.tsx | éç¨ SVG 徿 ç»ä»¶ (Phase 4) |
| generate-tts.ts | å广å + TTS é³é¢çæèæ¬ (Phase 4.5) |
| rebuild-timeline.ts | é³é¢æ¶é¿æµé + æ¶é´çº¿éå»ºèæ¬ (Phase 4.5) |
| style-scan.ts | ä»£ç æ ·å¼æ«æèæ¬ (Phase 5) |
| render-keyframes.ts | å ³é®å¸§æ¹éæªå¾èæ¬ (Phase 5) |
| shared.ts | èæ¬å ±äº«å½æ°ï¼å é¨ä¾èµï¼æ éç´æ¥è°ç¨ï¼ |