---
name: video-chapters
description: "视频章节 / 时间戳目录：给中长视频自动生成章节划分和时间戳目录，用于 B站分P/YouTube 章节/视频描述区，方便观众跳转、提升完播。当用户说 视频章节、章节目录、时间戳、分章节、视频目录、chapters、B站章节、YouTube 章节、给视频加时间点、看点目录、视频大纲时间戳 时使用。编排复用 asr.py（带时间轴转录），章节划分与命名由 LLM 完成。与 video-to-article 区别：那个把视频改写成成篇图文，本 SKILL 只出章节时间戳目录。"
layer: produce
---

# 视频章节 / 时间戳目录

> 给中长视频生成章节时间戳目录（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. 带时间轴转录
```bash
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` 通用可读。

## 规则

1. 章节边界按**话题转折**定，不是均匀切时间。
2. 首章必须 00:00；相邻章节间隔 ≥10s。
3. 章节名点明看点、简洁有吸引力，不用"第一部分"这类空名。
4. 不编造视频没讲的内容；依据转录如实划分。
5. 产物统一进 `outputs/主题名/`。

## 参考来源

章节时间戳是 YouTube/B站 提升完播与检索的标准做法（首章 0:00、≥10s 间隔为平台硬规则）。
转录用 faster-whisper（asr.py）出时间轴，话题切分交给 LLM——确定性 IO 与语义划分分层。
