edit-video

GitHub

用于编辑 ClassroomIO 视频,利用 ffmpeg 和 Python 脚本进行剪辑、降噪、字幕及品牌化包装,生成适合多平台的短视频内容。

skills/edit-video/SKILL.md classroomio/classroomio

Trigger Scenarios

用户要求编辑或剪辑视频 需要为视频添加品牌元素或字幕 准备视频用于社交媒体发布

Install

npx skills add classroomio/classroomio --skill edit-video -g -y
More Options

Use without installing

npx skills use classroomio/classroomio@edit-video

指定 Agent (Claude Code)

npx skills add classroomio/classroomio --skill edit-video -a claude-code -g -y

安装 repo 全部 skill

npx skills add classroomio/classroomio --all -g -y

预览 repo 内 skill

npx skills add classroomio/classroomio --list

SKILL.md

Frontmatter
{
    "name": "edit-video",
    "description": "Edit ClassroomIO videos (talking heads, team discussions, product demos, screen recordings, tutorials, webinars) into branded, professional cuts for YouTube, Shorts, Reels, LinkedIn and X using the ClassroomIO design system. Covers pause trimming, noise removal, word-by-word captions, explainer split screens and full-screen takeovers (news screenshots, flows, lists), short-form hooks, the ClassroomIO sign-off, thumbnails, QA and a posting-guide PDF. Use when the user asks to edit, cut, clip, caption, brand, repurpose or prepare a ClassroomIO video for social media or YouTube.",
    "user-invocable": true
}

Edit ClassroomIO videos

Turn a recording into short, independent clips that look like ClassroomIO made them. One JSON project file describes the job, and scripts/cio-video does the editing. The look comes entirely from the classroomio-design skill; this skill adds the steps and the motion.

Nothing here depends on a particular machine or account. Every input path comes from the project file the user gives you, and the tool only needs the requirements below.

Requirements

  • ffmpeg 6+ with the arnndn, afftdn, silencedetect, loudnorm and ebur128 filters.
  • Python 3.10+. scripts/cio-video creates its own venv and installs scripts/requirements.txt on first run.
  • Chrome or Chromium for screenshots and the guide PDF. It's found on PATH, or set CIO_VIDEO_CHROME.
  • Network on first run to download the RNNoise sh model.
  • The classroomio-design skill next to this one (skills/classroomio-design/). Fonts, logo geometry and image assets are read from it.
  • Caches live in $CIO_VIDEO_CACHE, or $XDG_CACHE_HOME/cio-video, or ~/.cache/cio-video.

Run skills/edit-video/scripts/cio-video check first. It names anything missing.

The design system in video

Load classroomio-design before choosing any colour, type, copy or layout. This is how the skill maps it to video:

Design system Used for
Palette (tokens/colors.css, docs/visual.md): paper, sand, ink, one blue #0233BD, sky #ADC3FF Panels on paper or sand, the vertical background and caption chips in ink, the current caption word and swipes in sky. One blue element per visual.
Geist 700 / 800 and Geist Mono (fonts/) Headlines and captions in Geist 700, the wordmark in Geist 800, uppercase eyebrows and labels in Geist Mono with 0.12em tracking.
Logo (assets/logo-mark.svg + lowercase wordmark) Built from the SVG geometry. Never lift a logo or animation from old footage.
Block / BlockStack (notch cards) Explainer flows and stacks, and the sign-off's Lesson / Quiz / Certificate blocks.
BrowserFrame, DetailRows, FlowLines, Stamp Screenshot panels, comparison rows, dashed connectors, date stamps.
Launch-gallery frame 02 “Pain” (templates/launch-gallery/) The YouTube thumbnail layout.
Motion (docs/visual.md): block drop with bounce, marker swipe, typed caret Every entrance animation.
Voice (docs/content.md) Titles, hooks and social copy: sentence case, plain claims, no emoji, no exclamation marks, no em dashes.
Rules (docs/brand-assets.md) No shadows, no decorative gradients, square corners except BrowserFrame and Stamp, one idea per clip.

Steps

  1. Collect inputs. You need the source recording and a transcript with word timings. A YouTube auto-caption VTT is best (yt-dlp --write-auto-subs --sub-format vtt --skip-download <url>). SRT or [[seconds, "word"], …] JSON also work; SRT words are spread across each cue, so they land less precisely. Ask the user where the files are. Never assume a path.
  2. Look before you cut.
    • Grab a few frames from the source to learn the framing: talking head or screen, and where the speaker sits.
    • Read the transcript with cio-video words project.json --start 0 --end 300.
    • Pick windows that stand alone: one idea, a strong first line, a full-sentence ending.
  3. Write project.json next to the source. Start from templates/project.example.json (talking head) or templates/project.screen.example.json (screen recording). references/project-file.md lists every field.
  4. Plan and clean. Run cio-video plan project.json --transcript. It trims pauses and removes noise (cached), prints each cleaned transcript, and lists every explainer and hook with its timing. Add corrections until the transcript reads right, then fix every ! warning.
  5. Add explainers and hooks. See references/explainers.md.
    • Tie each visual to the phrase that introduces it.
    • For news, verify the claim with web search, capture the real article with cio-video screenshot, crop it, and credit it on screen.
    • Ask the user for anything the web won't give you, such as banners or logged-in pages.
    • The hook is a 2–5 s line from the same clip.
  6. Preview one clip with cio-video render project.json --clip 01 --out preview/, then build its QA sheet. Show the user before rendering the rest: hooks, visual choices and split versus full are taste calls.
  7. Render everything. Run cio-video render project.json --jobs 3, then captions, thumbnails and guide. Write the copy in each clip's posts, following docs/content.md.
  8. QA. Run cio-video qa project.json. Every row must read ok: loudness within 1 LU of target and at least 90% of words landing on speech. Then look at every contact sheet in <work>/qa/:
    • captions don't cover a visual
    • text is legible at phone size
    • nothing sits in the 9:16 platform UI zones
    • one blue element per visual
  9. Report back. Give the output folder, what changed, the QA numbers, and what the user must check before posting:
    • consent from everyone on camera or named
    • facts and sources
    • visuals that are illustrative rather than real

Ask the user, don't assume

  • Where the source and transcript are, and where the output should go.
  • News and third-party pages: real credited screenshots, or brand cards that quote the headline.
  • Which formats get the hook (the default is 9:16 only).
  • The sign-off headline and the series eyebrow (INSIGHTS, PRODUCT TOUR, CHANGELOG, …).
  • Anything said on camera about customers, numbers or other companies that will be published.

References

Need File
Every project-file field references/project-file.md
Explainer kinds, props, modes, timing rules references/explainers.md
Audio, captions, layout safe zones, hooks, sign-off references/editing-rules.md
Platform specs, posting guide, copy references/publishing.md
Errors and fixes references/troubleshooting.md

Commands

V=skills/edit-video/scripts/cio-video
$V check
$V words project.json --start 120 --end 240          # source transcript with times
$V plan project.json [--clip 01 02] [--transcript]    # trim, denoise, print timelines and warnings
$V render project.json [--clip 01] [--format 9x16] [--jobs 3] [--out preview/]
$V sign-off project.json [--force]                    # standalone sign-off clips (16:9 and 9:16)
$V thumbnails | captions | qa | guide project.json [--clip …]
$V screenshot <url> out.png [--crop x0,y0,x1,y1] [--no-js]

Clip ids match by prefix, so --clip 01 selects 01-why-onboarding-fails. Outputs go to the project's output folder; caches, timelines and QA sheets go to its work folder.

Version History

  • 6f392c4 Current 2026-10-19 22:38

Same Skill Collection

.claude/skills/link-prs/SKILL.md
skills/add-docs-image/SKILL.md
skills/add-landing-template/SKILL.md
skills/animation-vocabulary/SKILL.md
skills/apple-design/SKILL.md
skills/classroomio-design/SKILL.md
skills/create-issue/SKILL.md
skills/create-thumbnail/SKILL.md
skills/emil-design-eng/SKILL.md
skills/find-animation-opportunities/SKILL.md
skills/frontend-design/SKILL.md
skills/humanizer/SKILL.md
skills/i-have-adhd/SKILL.md
skills/improve-animations/SKILL.md
skills/link-prs/SKILL.md
skills/pick-ui-library/SKILL.md
skills/prototype/SKILL.md
skills/public-api-review/SKILL.md
skills/review-animations/SKILL.md
skills/ship-feature/SKILL.md
skills/stage-and-commit/SKILL.md
skills/summarize-activity/SKILL.md
skills/write-changelog/SKILL.md
skills/write-docs/SKILL.md
skills/write-prd/SKILL.md
skills/writing-code/SKILL.md
skills/brand-system/SKILL.md

Metadata

Files
0
Version
6f392c4
Hash
d0c00550
Indexed
2026-10-19 22:38

홈 - 위키
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-10-22 03:13
浙ICP备14020137号-1