video-assemble

video-assemble is a skill for Claude Code from zenstory-ai/video-recap-skills. It costs 109 tokens per session (3,680 once invoked), scanned A, a copy of video-assemble, MIT.

A video finishing tool that combines a source video with recorded narration, adjusted original sound, and subtitles. It can create subtitle files, burn them into the video, and optionally standardise loudness.

In plain words
What is it for?
Use it to make narrated recap videos, lower source audio under narration, create SRT or ASS subtitles, burn subtitles into a video, and prepare alternate editing exports.
Why use it?
It handles the final timing and audio mix so narration, original dialogue, background sound, and subtitles fit together in the finished video.

Skill for Claude Code

Written for Claude Code: user-invocable in frontmatter.

Part of the video-recap-skills plugin — 7 skills shipped together

Good fit Use it to make narrated recap videos, lower source audio under narration, create SRT or ASS subtitles, burn subtitles into a video, and prepare alternate editing exports.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/zenstory-ai/video-recap-skills/video-assemble
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add zenstory-ai/video-recap-skills --skill video-assemble
Clone the repo
git clone --depth 1 https://github.com/zenstory-ai/video-recap-skills

Made for: Claude Code.

Or install video-recap-skills, the plugin that ships this one along with the rest of its 7 skills.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for video-assemble

README.md
[![agentmods](https://agentmods.dev/badge/skills/zenstory-ai/video-recap-skills/video-assemble/github.svg)](https://agentmods.dev/skills/zenstory-ai/video-recap-skills/video-assemble)
Your own site
<a href="https://agentmods.dev/skills/zenstory-ai/video-recap-skills/video-assemble"><img src="https://agentmods.dev/badge/skills/zenstory-ai/video-recap-skills/video-assemble/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for video-assemble

Your own site · 80×15
<a href="https://agentmods.dev/skills/zenstory-ai/video-recap-skills/video-assemble"><img src="https://agentmods.dev/badge/skills/zenstory-ai/video-recap-skills/video-assemble.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 109 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,680 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin 100% copy Near-identical to another mod in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00109 $0.03680
Opus 5.5 $0.00044 $0.01472
Sonnet 5.5 $0.00022 $0.00736
Haiku 4.5 $0.00011 $0.00368

Measured 12d ago against content hash 88ab7ae6de32, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

video-assemble scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.

The scan reads SKILL.md. This mod also ships 41 executable files (scripts/adoption/__init__.py, scripts/adoption/audio_mix_binding.py, scripts/adoption/av_clock.py, …), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

Origin

This is a copy

100% identical to video-assemble — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.

skills/video-assemble/SKILL.md · 112 lines

How it starts

The opening of the file, as written. The whole thing — 112 lines — stays where its author put it; the contents beside it link to each section on GitHub.

1. 定位

本技能负责最终合成:

  1. 把各段旁白音频放到视频时间线上。
  2. 在旁白窗口内用固定包络压低原声(盖住原声对白时与落在安静段时各用一档音量),间隙恢复原声。
  3. 根据旁白位置生成 subtitles.srt;默认同时生成并烧录 subtitles.ass,--no-burn-subtitles 可关闭。不烧录时(关闭或降级),subtitles.srt 复制到成片旁,名为 recap_<stem>.srt;烧录时删掉旧的同名外挂字幕。
  4. 可选把最终响度标准化到目标 LUFS:两遍 loudnorm,只用一个恒定增益,不做动态压缩;混音的真峰值放不下这么大的增益时,先过 4 倍过采样的真峰值限幅器(最多削 LOUDNESS_LIMITER_MAX_DB,默认 6 dB),超出部分才下调目标响度。真峰值目标针对交付的 AAC 文件:AAC 编码会让真峰值比 PCM 混音高 0.3–1.4 dB,所以首次渲染瞄准 TP 下 0.5 dB,渲染后解码成片实测;仍超过 -1 dBTP 时按超出量再降 0.1 dB 只重编码音频(画面流复制),最多两次,仍超出则以 delivered_true_peak_over_target 阻断。ffmpeg 实际用的模式、限幅量与成片实测值记在 assembly_qc.json 的 loudness_mode 与 loudnorm_final_pass(delivered)。
  5. 成片不带原片的容器元数据(title、comment 等标签与章节)。

2. 声音收尾契约

合成阶段只实现创作决定,不凭空制造决定。Agent 在写旁白位置前,已在 visual_audio_board.json 为每个 beat 指定 audio_owner:

  • original_dialogue
  • action_sound
  • ambience / music
  • silence
  • narration

旁白间隙按已选声音分工保留。只在确有任务时加入 BGM,并保住必须听见的台词与有意义的沉默。

当前渲染器不解析 visual_audio_board.json;Agent 通过旁白时间、overlaps_speech、原声留白与现有混音参数落实这些决定。

3. 输入契约

  • <video>:源视频;cut 模式下为 edited_source.mp4。
  • work_dir/tts_meta.json:默认 narration 模式必需;配音阶段写出的 {segments: [...]}。每段包含 audio_path、时间、pause_after_ms、overlaps_speech 和用于混音/字幕的位置。显式 source-mix / adopted-packet-copy 模式不读取它。
  • 已采用的配音使用显式 --tts-meta 和 --narration-adoption:后者由调用方独立确认文字、请求的引擎/声线和速度策略,不能从待消费元数据自动“批准”出来。完整格式与记录边界见 references/narration-adoption.md。
  • 已采用的完整声音底轨与逐段配音可再传 --audio-mix-adoption;严格格式、48 kHz 声道矩阵和双 binding 事务见 references/explicit-audio-mix.md。

下面的 scripts/... 均相对于本技能目录。若执行器从仓库根目录启动,请给脚本路径加上本技能的绝对目录。

4. 运行命令

python3 scripts/assemble.py <video> --work-dir <work_dir> \
  [--audio-mode narration|source-mix|adopted-packet-copy] [--audio-stream-index <N>] \
  [--tts-meta <tts_meta.json> --narration-adoption <narration_adoption.json>] \
  [--audio-mix-adoption <audio_mix_adoption.json>] \
  [--recap-stem <name>] [--output-dir <dir>] [--no-burn-subtitles] \
  [--subtitle-y-top <inclusive-y> --subtitle-y-bot <exclusive-y>] \
  [--source-video <orig.mp4>] [--export-jianying [--jianying-out <dir>]]

Read the full file on GitHub · 112 lines

Files

What ships with it

57 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 12d ago Changed 88ab7ae6de32
  2. 13d ago Changed · -3 lines 72d265ba7c94
  3. 24d ago Changed · +6 lines db9ba594e52b
  4. 25d ago Changed · -4 lines 1a87275cfb86
  5. 1mo ago Changed · -22 lines 0d2225578266
  6. 1mo ago Changed · +37 lines 169c01bd7590
  7. 1mo ago First seen · 98 lines · 109 tokens per session scan A e0771facf681

Subscribe to this mod's changes

video-assemble is a skill published in the GitHub repository zenstory-ai/video-recap-skills (592 stars, last pushed 7d ago), licensed MIT. It adds 109 tokens to every session and 3,680 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. It is 100% identical to video-assemble, differing in 0 lines, and is treated as a copy.

Related

Other skills, from other repositories

narrator-ai-cli

A command-line client for creating AI-narrated movie and short-drama videos. It can guide a workflow from selecting source material, templates, music, and voices to writing narration and combining the video.

NarratorAI-Studio/narrator-ai-cli-skill · 132 tokens

narrator-ai-cli

Create AI-narrated film/drama commentary videos via CLI. Two workflow paths (Original & Adapted narration), 93 movies, 146 BGM tracks, 63 dubbing voices in 11 languages, 90+ narration templates. Use when creating narration videos, film commentary, short drama dubbing, or video production.

NarratorAI-Studio/narrator-ai-cli · 73 tokens

recut-editor

A timeline-editing skill for creating new videos or changing parts of an existing timeline in a CapCut-style editor. It can work with media assets and export the result while keeping edits undoable.

6174/recut · 78 tokens

recut-worlds

A toolset for modeling worlds and their canvases through properties, relationships, types, and visible elements. It also supports proposing media generation in the context of a world before asking for confirmation.

6174/recut · 49 tokens

generation-prompt

A reference guide for writing production-ready prompts for image and video generation models. It covers fixed visual style, typed reference anchors, multi-shot sequences, and agreements between sound and picture.

6174/recut · 82 tokens

shot

A filmmaking reference for deciding how to shoot a shot or scene, including framing, camera angle, lens choice, movement, staging, and continuity between shots.

6174/recut · 54 tokens