video-assemble

video-assemble is a skill for Claude Code from zenstory-ai/oh-story-dsh. It costs 109 tokens per session (2,010 once invoked), scanned A, a copy of video-assemble, MIT.

A video post-production skill for combining narration, source audio, and subtitles into a final video. It can mix voice-over with the original sound, create SRT and ASS subtitle files, optionally burn subtitles into the picture, and standardize loudness.

In plain words
What is it for?
Use it to assemble a narrated video from source footage and timing metadata, duck the original audio during narration, export subtitles, burn them into the video, and optionally adjust loudness.
Why use it?
It brings the final assembly steps into one workflow, avoiding separate manual work for timing narration, lowering background audio, creating subtitles, and exporting the finished video.

Skill for Claude Code

Written for Claude Code: user-invocable in frontmatter.

Good fit Use it to assemble a narrated video from source footage and timing metadata, duck the original audio during narration, export subtitles, burn them into the video, and optionally adjust loudness.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/zenstory-ai/oh-story-dsh/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/oh-story-dsh --skill video-assemble
Clone the repo
git clone --depth 1 https://github.com/zenstory-ai/oh-story-dsh

Made for: Claude Code.

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/oh-story-dsh/video-assemble/github.svg)](https://agentmods.dev/skills/zenstory-ai/oh-story-dsh/video-assemble)
Your own site
<a href="https://agentmods.dev/skills/zenstory-ai/oh-story-dsh/video-assemble"><img src="https://agentmods.dev/badge/skills/zenstory-ai/oh-story-dsh/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/oh-story-dsh/video-assemble"><img src="https://agentmods.dev/badge/skills/zenstory-ai/oh-story-dsh/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 2,010 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.
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.02010
Opus 5 $0.00055 $0.01005
Sonnet 5 $0.00022 $0.00402
Haiku 4.5 $0.00011 $0.00201

Measured 7d ago against content hash e0771facf681, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, 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 7d ago.

The scan reads SKILL.md. This mod also ships 26 executable files (scripts/artifacts.py, scripts/assemble_constants.py, scripts/assemble.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.

packages/knowledge/video-recap/skills/video-assemble/SKILL.md · 98 lines

How it starts

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

1. 定位

本技能负责最终合成:

  1. 把各段旁白音频放到视频时间线上。
  2. 在旁白窗口内压低原声,支持 fixed / sidechain / zone 模式。
  3. 根据旁白位置生成 subtitles.srt;默认同时生成并烧录 subtitles.ass--no-burn-subtitles 可关闭。
  4. 可选把最终响度标准化到目标 LUFS。

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:配音阶段写出的 {segments: [...]}。每段包含 audio_path、时间、pause_after_msoverlaps_speech 和用于混音/字幕的位置。

下面的 scripts/... 均相对于本技能目录。若执行器从仓库根目录启动,请给脚本路径加上本技能的绝对目录。脚本不从其他技能目录读取文件;外部输入仅限命令显式传入的视频、参数与 work_dir 产物。

4. 运行命令

python3 scripts/assemble.py <video> --work-dir <work_dir> \
  [--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>]]

5. 输出契约

  • recap_<stem>.mp4:稳定的最终输出别名;每次运行覆盖更新。
  • work_dir/output.mp4:工作目录内成片。
  • subtitles.srt:旁白字幕;烧录时另有 subtitles.ass
  • timeline.json:后端无关的多轨模型,包含视频、原声、旁白、BGM、字幕和 ducking 自动化。
  • _placed_*.wav:实际写入主混音的完整逐段旁白 PCM;时间线与剪映只引用这些文件。
  • assembly_manifest.json:输入来源、cut 来源指纹、渲染设置与最终输出路径。
  • assembly_qc.json:旁白完整性、原声句末交接、时间线素材时长与交付质量的发布门禁。
  • 剪映草稿目录:仅 --export-jianying 时生成,包含 draft_content.jsondraft_info.jsondraft_meta_info.json

6. 合成规则

  • 音频按轨道混合:原声、可选 BGM 与旁白各自独立。
  • 旁白不做任何容差裁尾;温和加速后仍放不下即 no_safe_fit。每段 _placed_*.wav 必须与序列化后的时间线区间等长或更短,否则 timeline_audio_mismatch 阻断。
  • 原声在旁白结束后保持压低到下一可靠句末的 pause_start,只在实测停顿内渐强, 于 source_restore_at 回满;无后续锚点时保持压低到时间线末端,而不是放出半句。
  • --export-jianying / EXPORT_JIANYING=1 可把 timeline.json 导出为可编辑草稿。cut 模式应传 --source-video <orig>,让草稿引用真实原片区间。
  • 剪映导出默认把视频、音频与图片复制到 Resources/local/{video,audio,image},保持草稿可搬迁;--jianying-no-bundle-media 只适合原路径始终可访问的情况。
  • 重叠覆盖物会拆到编号轨道;非空目标目录不会覆盖,而会创建编号兄弟目录。
  • 常速、倒放、变换、富文本、转场、蒙版、LUT、绿幕复合草稿及显式特效轨道通过 timeline v2 扩展表达。需要素材包的功能只接受调用方合法提供的离线资源。
  • 剪映草稿引用未烧录的源视频,因此原片硬字幕仍会保留,必要时在剪映内另行遮罩。
  • 字幕外观可用 SUBTITLE_FONT_SIZESUBTITLE_MARGIN_VSUBTITLE_MAX_CHARS 等控制。
  • SUBTITLE_Y_TOP/BOT 把 ASS 基线放到测得的原片字幕区域,坐标为半开 [top, bot);显式遮罩策略下默认 SUBTITLE_MASK_OPACITY=0.6SOURCE_SUBTITLE_MASK_TIMING=narration
  • 原声在旁白间隙回到 IDLE_ORIG_VOLUME,旁白下压到 SPEECH_DUCKING_VOLUMEDUCK_FADE_SECONDS 控制过渡。还可配置 DUCKING_MODEZONE_DUCKING_VOLUMEFINAL_LOUDNORMTARGET_LUFS
  • 可通过 BGM_PATH 指定 BGM;它会循环到成片长度,并按 BGM_VOLUME / BGM_DUCKING_VOLUME 混音。不要在没有创作依据时设置通用 BGM。
  • 烧录字幕需要带 subtitles / libass 的 ffmpeg;合成阶段会预检并在缺失时明确失败。
  • 原声留白中的对白字幕优先读取 Agent 校对的 original_subtitles.json;否则保守映射 ASR。只有遮罩覆盖留白或用户字幕明确要求替换时才烧录原声对白,并用 「」 与旁白区分。

Read the full file on GitHub · 98 lines

Files

What ships with it

39 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. 7d 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/oh-story-dsh (338 stars, last pushed yesterday), licensed MIT. It adds 109 tokens to every session and 2,010 once invoked, about $0.0005 per session on Opus 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

story-import

A tool for turning an existing novel into a structured writing project. It analyzes the book and organizes its characters, settings, plot plans, chapters, and tracking data for later writing.

zenstory-ai/oh-story-claudecode · 98 tokens

story-long-analyze

A long-form fiction analysis workflow for breaking down a novel’s opening chapters, characters, pacing, turning points, relationships, and overall structure.

zenstory-ai/oh-story-claudecode · 173 tokens

story-deslop

A writing editor for Chinese web novels that detects writing patterns often associated with AI-generated text and makes the prose feel more natural.

zenstory-ai/oh-story-claudecode · 62 tokens

story-short-analyze

A Chinese-language guide for analysing short popular web fiction, such as stories published on 番茄, 故事会, or 知乎盐选. It examines the core premise, plot structure, emotional arc, twists, writing techniques, and reader appeal.

zenstory-ai/oh-story-claudecode · 226 tokens

browser-cdp

Use this skill when you need to control a Chrome browser via CDP (Chrome DevTools Protocol) to reuse existing login sessions. Covers: launching Chrome in debug mode, opening URLs, waiting for page load, evaluating JavaScript, taking snapshots, and extracting auth tokens. Trigger phrases: browser automation, CDP…

uu201/character-arc · 94 tokens

novel-language-style

A guide to choosing and controlling the writing style of online fiction. It covers narration, word choice, figurative language, dialogue, and techniques for making scenes easier to picture.

uu201/character-arc · 102 tokens