video-chapters
GitHub为中长视频自动生成带时间戳的章节目录,适配B站和YouTube平台。通过ASR获取转录文本,由LLM按话题转折划分章节并命名,输出结构化数据以提升观众跳转体验和完播率。
Trigger Scenarios
Install
npx skills add ZJU-REAL/Easel --skill video-chapters -g -y
SKILL.md
Frontmatter
{
"name": "video-chapters",
"layer": "produce",
"description": "视频章节 \/ 时间戳目录:给中长视频自动生成章节划分和时间戳目录,用于 B站分P\/YouTube 章节\/视频描述区,方便观众跳转、提升完播。当用户说 视频章节、章节目录、时间戳、分章节、视频目录、chapters、B站章节、YouTube 章节、给视频加时间点、看点目录、视频大纲时间戳 时使用。编排复用 asr.py(带时间轴转录),章节划分与命名由 LLM 完成。与 video-to-article 区别:那个把视频改写成成篇图文,本 SKILL 只出章节时间戳目录。"
}
视频章节 / 时间戳目录
给中长视频生成章节时间戳目录(B站/YouTube 描述区可用)。带时间轴转录走
asr.py, 章节切分与命名由你(LLM)完成。
出成篇图文见 video-to-article;出字幕见 auto-subtitle;切成短视频见 video-highlights。
输入
| 字段 | 必填 | 说明 |
|---|---|---|
| 视频文件 | 是 | 中长视频(教程/评测/讲座/直播回放;没给就问) |
| 目标平台 | 否 | B站 / YouTube / 通用(影响格式与措辞) |
| 章节数 | 否 | 期望章节数(默认按内容自然划分,通常 5-12 段) |
输出(outputs/主题名/)
chapters.txt— 时间戳目录(每行mm:ss 章节名,可直接贴描述区)chapters.json— 结构化(start 秒 + 标题),供程序化使用transcript.txt— 转录原文(备查)
执行步骤
脚本路径(相对项目根):skills/shared/scripts/asr.py。
1. 带时间轴转录
python skills/shared/scripts/asr.py transcribe -i <视频> --format json \
-o outputs/主题名/transcript.json
(首次跑 ASR 需外网代理下模型,见 auto-subtitle 前置说明。)
2. 划分章节(你来做)
读 transcript.json(每段带 start/end),按话题转折划分章节:
- 找主题切换点作为章节边界(不是均匀切时间,而是按内容)。
- 第一章从 00:00 开始(平台要求,否则章节功能不生效)。
- 每章名 6-16 字,动词开头或点明看点(如"实测续航翻车了""3 分钟教你上手"),不写"第一部分"。
- 章节数适中(太碎观众烦,太粗没用),一般 5-12 段;短视频(<3 分钟)通常不需要章节。
- 章节最短 ≥10 秒(平台 YouTube 要求相邻章节间隔 ≥10s)。
3. 输出目录
写 chapters.txt(每行 mm:ss 章节名,首行必须 00:00):
00:00 开场|今天聊什么
01:24 第一个坑:xxx
03:50 实测环节
...
同时写 chapters.json:[{"start": 0, "title": "开场|今天聊什么"}, ...]。
平台格式差异
- YouTube:贴在视频描述区,首个必须
0:00,≥3 章、每章 ≥10s 自动生效。 - B站:作为"看点/进度条章节"或分P说明,格式
mm:ss 标题。 - 通用:
chapters.txt通用可读。
规则
- 章节边界按话题转折定,不是均匀切时间。
- 首章必须 00:00;相邻章节间隔 ≥10s。
- 章节名点明看点、简洁有吸引力,不用"第一部分"这类空名。
- 不编造视频没讲的内容;依据转录如实划分。
- 产物统一进
outputs/主题名/。
参考来源
章节时间戳是 YouTube/B站 提升完播与检索的标准做法(首章 0:00、≥10s 间隔为平台硬规则)。 转录用 faster-whisper(asr.py)出时间轴,话题切分交给 LLM——确定性 IO 与语义划分分层。
Version History
- 69c5928 Current 2026-09-08 17:40


