educational-video-creator
Create educational videos using Remotion with Kurzgesagt/回形针 style. Use when users want to: (1) create teaching or educational videos, (2) design video storyboards, (3) produce animated explainer videos, (4) build SVG-based animations for learning content, (5) visualize complex concepts with motion graphics, (6) make science/tech explainer videos, (7) create 可视化讲解视频 or 科普视频. Triggers on requests like '帮我做一个教学视频', 'create an explainer video about X', '制作科普动画', 'make a video explaining Y'. This skill requires remotion-best-practices skill for technical implementation.
How do I install this agent skill?
npx skills add https://github.com/skindhu/skind-skills --skill educational-video-creatorIs this agent skill safe to install?
- Gen Agent Trust Hubpass
The skill provides a robust and well-documented system for creating educational videos with the Remotion framework. It automates complex tasks like TTS generation and timeline management using local scripts and standard media tools. The analysis found no evidence of malicious patterns, data exfiltration, or dangerous obfuscation.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
- Runlayerwarn
18/20 files flagged
What does this agent skill do?
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 | 脚本共享函数(内部依赖,无需直接调用) |
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/skindhu/skind-skills/educational-video-creator">View educational-video-creator on skillZs</a>