Model or dataset
Vincentwei1021/video-talkcraft avatar
Vincentwei1021/video-talkcraft

video-talkcraft: an agent skill that renders voiceover explainer videos from a script and a voice track

Agent skill that turns Claude Code / Codex into a motion-design studio for voiceover-driven explainer videos — word-level voiceover sync, 109 motion recipe cards, an anti-slideshow camera system, Remotion rendering.

1,057 stars102 forksHTMLNOASSERTION

At a glance

What is it?
The skill aligns a voiceover to word-level timestamps, turns each semantic beat into a shot entry, and renders through Remotion. The design is opinionated, the pipeline is heavy, and the license is noncommercial.
Who is it for?
Adopt it if you already work inside Claude Code or Codex, you have a finished voice track, and you want the animation locked to individual words rather than to a timeline you scrub by hand. Skip it if your video is live action with a talking head as the main event, if you need a permissive license for commercial work, or if your machine cannot spare a 767MB model download and a Node plus Python plus ffmpeg toolchain.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly HTML, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What video-talkcraft actually produces, and who it is built for

The input is a voiceover script plus a finished voice track, any TTS output or a human recording. The output is a rendered explainer video: kinetic type cards, evidence screenshots, camera moves, plain subtitle styling and sound effects, all anchored to the narration. That anchoring is the whole point. The README describes the skill as turning Claude Code or Codex into a motion-design studio for voiceover video, and the headline claim is word-level sync rather than scene-level sync.

The audience is narrow on purpose. You need a script that already exists, a voice track that is already recorded, and a willingness to let an agent write Remotion code on your machine. If you are editing footage in a timeline editor and want an assistant to cut clips, this is not that. It is a production pipeline for narrated explainer content where the visuals are generated, not captured.

The repository is the voiceover installment of a series; the sibling project video-shotcraft is referenced as the source of 19 ported motion cards. The README states the last push was 2026-09-15 and the repository is not archived, so the project is being changed rather than frozen.

Word-level timestamp alignment is the mechanism everything else hangs off

The pipeline starts with scripts/timestamps_cpu.py, which aligns the script to the audio. The default backend is FireRedASR2-CTC int8; faster-whisper is offered as an alternative that avoids a manual model download. The README reports that on a 110-second mixed Chinese and English voiceover, compared against a GPU forced aligner, the word-level deviation had a median of 20 to 40ms and a worst case of 200ms, with zero false positives in quality checks. Those are the project's own numbers, not an independent measurement, and the configuration they were produced under is not spelled out in the README.

From there the flow is: semantic beats become a SHOTBOOK (the project's shot-planning document), each beat gets a motion card, and the whole thing renders through Remotion. A camera system sits on top. The README describes a seven-layer anti-slideshow system: one very slow push or pull camera curve per scene, a yield lifecycle, and six transition types. Since 2026-09-04 the idle micro-motion and ambient breathing layers were removed by default, which is a deliberate subtraction rather than an addition.

There is a separate workbench directory, a timeline-style post-production surface with a multi-track timeline, an asset library, a schema-driven property panel and a one-click export. The README says the skill opens it after delivering a finished video. The 108 motion cards are described as fully parameterized for copy, color, size and position, while the rhythm-critical parts stay fixed and unexposed.

Installing video-talkcraft and rendering a first shot

The README gives the most direct route first: paste the repository URL into your agent and ask it to install the skill. That is the intended path, and the agent is expected to configure the environment itself.

text
帮我安装这个 skill:https://github.com/Vincentwei1021/video-talkcraft

There is also a skills CLI route:

bash
npx skills add Vincentwei1021/video-talkcraft

Or a manual clone with a symlink into the agent's skills directory. The README shows both the Claude Code and Codex targets:

bash
git clone https://github.com/Vincentwei1021/video-talkcraft.git
cd video-talkcraft
ln -s "$(pwd)" ~/.claude/skills/video-talkcraft   # Claude Code
# or
ln -s "$(pwd)" ~/.codex/skills/video-talkcraft    # Codex

The environment list is Node 18 or newer for Remotion rendering, with npm install inside the individual video project, Python 3.10 or newer for the timestamp pipeline, and ffmpeg. The Python dependencies are named explicitly in the README:

bash
pip install zhconv pypinyin sherpa-onnx soundfile numpy

The first run of the default backend downloads a 767MB FireRedASR2-CTC model; the README points to the header comment of scripts/timestamps_cpu.py for the address, and notes that adding --backend whisper avoids the manual download. The repository's package.json lists only playwright as a dependency, so the Remotion side is installed per project rather than at the repository root.

Once installed, the request is written in natural language. The README's example asks for a 100-second explainer on a given topic, with the script and audio supplied as files. Expect the agent to produce a SHOTBOOK before it produces frames.

Where the pipeline breaks down or is the wrong choice

The heaviest constraint is the model download. A 767MB ASR model on first use is a real cost on a metered connection or a locked-down machine, and the README's suggested escape hatch is a flag rather than a lighter default. If your environment blocks large downloads, the default path is unusable until you switch backends.

The license is the second constraint. The README badge and the LICENSE file point to PolyForm Noncommercial, and the repository metadata reports the license as NOASSERTION. That combination means you should read the actual LICENSE file rather than trust the badge, and it means commercial use needs its own review. This article is not legal advice.

Third, the tool assumes a voice track already exists. There is no text-to-speech step in the described pipeline; you bring the audio. If your script is still being written, the word-level alignment has nothing to align to.

Fourth, the anti-slideshow system is a constraint, not an option. Static frames are described as structurally impossible, and the README says stray ones get caught by automatic detection. If your content genuinely needs a held still frame for several seconds, you are fighting the design. The same applies to the card library: the rhythm-critical parameters are deliberately not exposed in the workbench, so a card cannot be retimed the way a normal keyframe would be.

How it differs from editing in a timeline tool

The obvious alternative is a conventional editor plus a motion-graphics tool, or a template-driven service where you drop a script into a fixed layout and it fills in the blanks. The difference is where the timing decision lives. In a template service, the animation runs on its own clock and the voiceover is fitted to it. In video-talkcraft, the clock is derived from the audio by forced alignment, and each motion beat is anchored to a specific word. The README states the alignment is the basis for every motion beat.

A second difference is the output format. Rendering goes through Remotion, so the deliverable is code plus a rendered file, not a project file for a proprietary editor. The repository ships self-contained Remotion tsx sources under template/cards/ that the README says can be copied as a single file, plus runnable HTML previews and a gallery page. That matters if you want to fork a card rather than configure it.

A third difference is the review loop. The README describes three acceptance layers: frame health (static-segment and concurrent raster jitter detection), per-cue energy verification on the sound-effect track, and an independent review pass using anchor frames and contact sheets. It also states that after the machine gates pass, there is one independent review round, fixes for P0 and P1 issues, then delivery, with optional further rounds capped at three. That is a narrower loop than the older loop-until-clean approach it replaced. A template service typically gives you a preview and a re-render, not a defect gate on the sound-effect track.

Maintenance, upgrade cost and what the license implies

The repository is not archived and the last push was 2026-09-15. The README's changelog is dense and dated, with entries on 2026-09-11, 2026-09-09, 2026-09-07, 2026-09-05, 2026-09-04 and 2026-09-02, covering script changes, new cards, a layout spec and a render-speed rework. The most recent release listed is gallery-media from 2026-08-28. The project moves, and the changelog is where the movement is documented.

That density is also the upgrade cost. Card counts changed more than once in the changelog (79 to 89 to 108, with one ported batch trimmed from 19 to 18), and the motion system was reduced by default on 2026-09-04. A SHOTBOOK written against an earlier card set may reference cards or defaults that no longer match. The README does not document a migration path for existing SHOTBOOKs.

The license situation deserves its own paragraph. The badge says PolyForm Noncommercial, the repository metadata says NOASSERTION, and the README links a LICENSE file. PolyForm Noncommercial is a source-available license, not an OSI-approved open source license, and the noncommercial restriction is the operative term. Whether your use counts as noncommercial is a question for a lawyer, not for this article. The repository also carries a THIRD_PARTY_NOTICES.md and the README points to demos/_lib/sfx/ATTRIBUTION.md for the embedded sound library, so the audio assets have their own attribution terms layered on top.

Editorial conclusion

Adopt it if you already work inside Claude Code or Codex, you have a finished voice track, and you want the animation locked to individual words rather than to a timeline you scrub by hand. Skip it if your video is live action with a talking head as the main event, if you need a permissive license for commercial work, or if your machine cannot spare a 767MB model download and a Node plus Python plus ffmpeg toolchain. Verify the PolyForm Noncommercial terms against your use case, and check whether the timestamp backend you intend to use is the default FireRedASR2-CTC path or the --backend whisper fallback before you commit to a render.

Frequently asked questions

Do I need to record a voiceover before using video-talkcraft?

Yes. The pipeline takes a script plus a finished voice track, any TTS output or a human recording, and aligns the two. There is no text-to-speech step described in the README, so the audio has to exist before the skill can do anything.

Does video-talkcraft run in the cloud or on my own machine?

On your machine. The README describes the skill aligning word-level timestamps locally and rendering through Remotion, and it lists Node 18+, Python 3.10+ and ffmpeg as local environment requirements. The first use of the default timestamp backend downloads a 767MB model.

Can I use video-talkcraft for commercial client work?

The README badge and the LICENSE file point to PolyForm Noncommercial, while the repository metadata reports the license as NOASSERTION. That restriction is the operative term, and the repository also carries a THIRD_PARTY_NOTICES.md plus a separate attribution file for the embedded sound library. Read the LICENSE file itself before deciding.

What do I need to install before the first render?

Node 18 or newer for Remotion, Python 3.10 or newer for the timestamp pipeline, and ffmpeg. The README names the Python packages as zhconv, pypinyin, sherpa-onnx, soundfile and numpy, and the repository's package.json lists playwright as its only dependency.

Official sources

  1. Issues
  2. Project website
  3. README
  4. Releases
  5. Vincentwei1021/video-talkcraft on GitHub
Community notes

Community notes