Communitygithub.com

视频播客制作器·微型版

最小化的个人讲解式视频制作管线(旁白配视觉,非音频播客),完全工具无关且默认全自动运行:主题 → 调研 ∥ 素材收集 → 脚本 → TTS → 视频 → 4K渲染 ∥ 发布信息 + 封面。

视频播客制作器·微型版 是什么?

这是一个高度灵活、工具无关的视频制作技能,专为需要快速制作个人讲解式视频的用户设计。它定义了一个包含七个步骤的管线:调研与素材收集、脚本编写、文本转语音(TTS)、音频检查、视频合成、预览检查、最后渲染4K视频并生成发布包。该技能的核心创新在于其三个不变原则:检查点永不跳过但审核者可由策略决定、音频作为主时钟、脚本改动后下游一切失效。它支持任何TTS后端(如Azure、Edge、fish)和任何视频工具(如Remotion、HyperFrames、CapCut),工具选择通过项目策略文件(AGENTS.md/CLAUDE.md)或自动检测决定。默认全自动运行,但可通过策略文件将检查点升级为人工审核。该技能适用于Claude Code、Cursor等AI代理平台,特别适合需要快速产出旁白视频的个人项目,但不应触发用于纯音频播客或大量多格式内容。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Agents365-ai/video-podcast-maker/tree/HEAD/skills/video-podcast-maker-nano

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

视频播客制作器·微型版 是做什么的?

七步个人使用管线:调研 ∥ 素材 → 脚本 → TTS → 音频检查点 → 视频 → 预览检查点 → 4K渲染 ∥ 发布包。无捆绑脚本、无硬编码后端、无模板。该技能拥有逻辑并默认自动运行;TTS后端和视频工具按每个视频选择(参见工具选择)。

无论工具如何选择,以下三个不变原则保证了其工作:

  1. 检查点永远不跳过——但由谁检查由策略决定。 存在三个检查点:脚本(步骤2之后)、音频(步骤3之后)、预览(渲染之前)。默认检查者是代理本身(自验证,按检查点定义);项目的AGENTS.md/CLAUDE.md可将任何检查点升级为人工关卡——参见监督策略.
  2. 音频是主时钟。 最终视频时长必须与旁白音频误差在±0.5秒内(使用ffprobe两者)。视觉内容裁剪到音频时长,绝不反向。
  3. 脚本更改使下游一切失效。 编辑脚本→重新运行脚本检查点,然后TTS→音频检查点→视觉内容→预览检查点→渲染。绝不手动修补时间。

监督策略

默认模式为自动:管线端到端运行,代理执行每个检查点的自验证。工作项目的AGENTS.md/CLAUDE.md可每检查点用一行覆盖:

  • 检查点1(脚本):人工 — 步骤2后暂停,等待用户批准脚本。值得:后期脚本更改会导致完整重新运行。
  • 检查点2(音频):人工 — 用户听取完整音频后再制作视觉内容。当TTS误读难以在后期捕捉时值得。
  • 检查点3(预览):人工 — 用户在渲染前审阅草稿。对风格敏感频道值得。

未提及的检查点保持代理验证。项目策略文件从AGENTS.template.md(位于此SKILL.md旁边)开始:将其复制到视频项目根目录作为AGENTS.md(以及为Claude Code准备的CLAUDE.md副本)并填写工具绑定。该技能绝不将任何内容上传或发布——发布包只是磁盘上的文件;发布始终是在此管线之外的人类行为。

工具选择(每视频)

在步骤3之前,按以下优先级决定TTS后端和视频工具:

  1. 项目绑定优先。 工作项目中已填写的AGENTS.md/CLAUDE.md(参见监督策略)是用户的固定规范——使用它,无需扫描,无需猜测。如果用户在会话中命名了工具,则覆盖该文件。如果策略文件缺失或仍包含模板占位符(/absolute/path/to/...),则通过规则2-3解析绑定,然后将解析后的值写回项目策略文件,以便下次运行从绑定开始。
  2. 自动检测已安装的技能。 扫描会话中的可用技能,寻找能够完成该工作的技能——视频:包装了创作工具(Remotion、HyperFrames、CapCut等)的技能;TTS:任何包装了TTS引擎的技能。排除端到端管线技能(例如其他视频播客制作器变体,如果已安装):它们像本技能一样是管线,而非后端——在此调用它们会导致工作流嵌套并翻倍检查点。找到一个→使用它;找到多个→选择最符合项目语言和输出需求的。将选择记录在research.md中;在最终摘要中显示。绝不等待工具确认。
  3. 未找到任何内容。 回退到用户已有的纯CLI工具(ffmpeg + 任何TTS CLI)并说明;绝不未经提示安装新工具。如果TTS CLI无法输出字幕时间,则通过将脚本均匀分割到音频时长并标记近似值(在检查点2处)来推导提示。如果用户指定的工具缺失或无法满足能力下限,则说明情况并降至规则2,而不是即兴应对。

能力下限(适用于规则1-3):TTS选择必须生成旁白音频加字幕时间;视频选择必须导出草稿视频文件(用于检查点3验证)和4K。实时预览是加分项,绝不能替代草稿导出。辅助作业无需选择:调研使用内置网络搜索,静态/封面使用视频工具的静态导出或任何图像工具,时长使用ffprobe检查。如果ffmpeg/ffprobe缺失,报告并停止——±0.5秒不变原则不可协商,绝不能跳过以保持运行。

工作布局

一个视频的所有工件位于videos/{name}/({name} = 小写英文、连字符分隔)。音频/时间的文件名适应所选后端;重要的是文件集:

videos/{name}/
├── research.md          # 步骤1 — 事实+来源
├── podcast.txt          # 步骤2 — 旁白脚本
├── podcast_audio.wav    # 步骤3 — 旁白音频   (名称按后端)
├── podcast_audio.srt    # 步骤3 — 字幕时间  (或等效的后端格式)
├── assets/              # 步骤1 — 图像/BGM + sources.md(每个资源的来源+许可)
├── video-project/       # 步骤5 — 视频工具产生的任何内容
├── final_4k.mp4         # 步骤7 — 3840×2160渲染
├── cover.png            # 步骤7 — 视频封面
└── publish_info.md      # 步骤7 — 标题/描述/标签/章节

工作流

入口点检查(步骤1之前)。 在项目根目录(或用户命名的目录)中查找videos/{name}/。如果它已包含早期会话的工件,则这是迭代——从受影响的最早步骤恢复(参见迭代),不要重新运行步骤1。仅当没有工件存在时才从步骤1开始。

步骤1 — 调研 ∥ 收集素材

从一个调查阶段并行产生两类输出(事实和素材来自相同来源):

调研 → research.md。调研主题(网络搜索、论文、用户的指点)。浓缩到research.md:事实、数字及其来源。脚本中将声称的每个数字必须在此追溯——没有来源的精确数字是编造的;删除它或注明出处。

素材 → assets/。将视觉内容和封面将消耗的所有内容收集到videos/{name}/assets/中:每节图像/插图/截图、品牌标志、背景音乐。两个来源,按优先级顺序:

  1. 用户提供的 — 用户交或指向的文件;复制到assets/中,绝不在原地引用它们。
  2. 自动收集的 — 首先官方素材(产品横幅、规格卡片、截图),否则免费/许可集(unDraw SVG、Pixabay/Pexels、OpenMoji / Microsoft Fluent Emoji / Google Noto Emoji、@lobehub/icons用于品牌标志)。

在收集时记录每个资源的来源URL + 许可到assets/sources.md中(需要署名的集必须在步骤7的视频描述中注明)。没有适合某节的合适素材?不要编造截图——对该节回退到纯文本布局(或通用免费许可插图),在assets/sources.md中记录决策,然后继续;在人工模式下询问用户是可选的。缺失的素材可以在步骤5之前的任何时间添加。

步骤2 — 脚本 → podcast.txt,然后检查点1

仅口语文本,无markdown。用[SECTION:xxx|display-label]标记(小写英文名,例如[SECTION:hero|intro])将脚本分割成段落——每个视频段落对应一节。此标记约定是脚本、TTS分块和视觉布局之间的可移植契约;任何TTS/视频工具都可以消费它。标记是结构元数据:永远不会朗读,永远不会显示为字幕文本——TTS和字幕只消费标记之间的文本。

风格规则(语言无关):参见脚本风格。

检查点1 — 脚本自审(强制)。 对照每个脚本风格规则验证脚本,然后对照assets/协调其节:列出没有匹配素材的节,根据上述无素材规则进行收集或回退,并注明哪些节没有素材。在人工模式下(项目策略),改为暂停并将脚本交给用户——不要在用户明确批准前运行TTS。音频、时间和视觉入口都源自脚本;后期脚本更改会导致完全重新运行。

步骤3 — TTS

运行所选TTS后端(Azure、Edge、fish、minimax……取决于会话选择)。生成:

  • 旁白音频(WAV/MP3)
  • 字幕时间(SRT或等效,提示文本 = 逐字脚本)

在合成前进行发音卫生处理,无论旁白语言如何:无法机械推导的品牌/术语读音(Qwen读作其中文品牌名,MoE逐字母拼出)放入别名/音素列表(按后端机制)——绝不放入脚本文本(否则会泄漏到字幕中)。

步骤4 — 音频检查 — 检查点2

代理自验证(自动模式):ffprobe音频时长与脚本的粗略估算(按语言语速;仅用于捕捉严重错误如静音或截断文件);验证脚本中每个品牌/术语标记都有别名/音素条目(覆盖率检查——实际发音正是人工模式检查点2的目的);检查是否存在静音或裁剪段落(silencedetect/volumedetect)提示合成失败。如果发现,修复别名列表间隙并重新合成。在人工模式下,用户听取完整音频代替;误读→修复别名列表(而不是脚本),重新合成,重新检查。

步骤5 — 制作视频

使用所选工具(Remotion、HyperFrames、CapCut……)将视觉内容剪辑到旁白音频,使用assets/作为素材池。podcast.txt中的节标记驱动布局;字幕提示驱动文本入口。将草稿文件保留在videos/{name}/中。

步骤6 — 预览检查 — 检查点3

代理自验证(自动模式):检查导出的草稿(可查找的视频文件——能力下限保证有一个):每节提取一帧(ffmpeg -ss <mid-section-time> -i draft.mp4 -frames:v 1)并查看每帧的布局溢出、缺失字幕、素材引用断裂;验证草稿时长与旁白音频误差在±0.5秒内。每次更改后修复并重新验证。在人工模式下,用户亲自审阅草稿(如果工具有实时预览则使用,否则使用导出的草稿);仅在明确确认("render")时渲染,并且每轮更改需要新的确认。

步骤7 — 渲染4K ∥ 发布包

并行运行(渲染是长时间的阻塞作业;发布包不依赖它):

  • 渲染 为3840×2160 → final_4k.mp4。声称完成前验证时长与旁白音频误差在±0.5秒内。
  • 发布包 → publish_info.md(标题/描述/标签/章节时间戳——每个章节从该节第一个提示的SRT时间开始)和cover.png(如果视频工具有静态帧则生成,否则使用任何图像工具;可复用assets/素材)。publish_info.md的素材来源部分从assets/sources.md复制。

脚本风格(语言无关)

来源: 完整技能的video-podcast-maker/references/natural-narration.md (反AI风味)+ script-polish.md(深度编辑)是规范来源; 这是语言无关的提炼。先在那些文件中编辑规则,然后在此镜像—— 不要分叉规则并使其漂移。

旁白语言是用户脚本的语言——此管线默认为中文,但以下规则适用于任何语言的口语语域。这些规则在检查点1执行;大声朗读每个句子——如果卡住,拆分句子。

  • 日常口语散文,不是书面散文。 每句一个想法,主语在前,无嵌套从句,不用 — 或 · 作为连接词。变化句子长度;轻度的第一人称是好的。
  • 连接词替换。 将书卷连接词(此外/然而/因此/总之)替换为日常等效词,或删除。删除列举式开头(首先/其次/最后)直接进入下一点。
  • 清单删除。 删除套路化填充:公司流行语、“值得指出的是”、“众所周知”、“革命性的”、“颠覆性的”、“无缝的”、“让我们拭目以待”——以及旁白语言中的等效语。
  • 结构提示。 动词-名词外壳(“执行优化”)→具体动作+结果(“将审批从三步减少到一步”)。“不是X而是Y”→陈述Y。三点并行(“又A又B又C”)→只保留最信息丰富的那个;两个比三个好。模糊强调词(“显著地”)→一个数字或可感知的后果。模糊归因(“专家说”)→具名来源+日期,否则删除句子。口号结尾(“前途是光明的”)→以一个具体事实、数字或下一步行动结束。
  • 数字是阿拉伯数字(86.1、1.5G、9B)——字幕是逐字脚本,所以写出屏幕上应显示的内容。绝不为修复误读而将TTS口语形式写入脚本;使用后端的别名/音素层。
  • 数字必须可追溯到 research.md——没有来源的精确数字是编造的;删除它或注明出处。

迭代

  • 脚本更改 → 重新运行检查点1(人工模式下由人进行),然后从步骤3(TTS)经过检查点2和3到渲染。绝不手动编辑时间。
  • 音频重新合成(相同脚本、不同声音/语速)→ 重新运行检查点2;如果时间未变化,视觉内容可保留;渲染前重新运行检查点3。
  • 仅视觉内容更改 → 编辑并重新运行检查点3。
  • 复用相同的videos/{name}/目录。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相关技能