back
loading skill details...
视频文字稿提取方法。核心能力:将任何在线视频的语音内容提取为结构化文字稿(带时间戳+元信息+要点总结)。覆盖从视频URL解析、音频提取、CC字幕检测、Whisper语音识别、元信息获取、语义分段到结构化文字稿输出的全流程。通用方法,不绑定任何特定视频平台。触发词:视频文字稿、视频转文字、字幕提取、语音转录、vid...
--- name: video-transcript-method author: 王教成 Wang Jiaocheng (波动几何) description: 视频文字稿提取方法。核心能力:将任何在线视频的语音内容提取为结构化文字稿(带时间戳+元信息+要点总结)。覆盖从视频URL解析、音频提取、CC字幕检测、Whisper语音识别、元信息获取、语义分段到结构化文字稿输出的全流程。通用方法,不绑定任何特定视频平台。触发词:视频文字稿、视频转文字、字幕提取、语音转录、video transcript、subtitle extraction、speech to text。 --- # 视频文字稿提取方法 ## 核心理念 视频的核心信息通常在语音中。文字稿提取的本质是**从视频载体中剥离语音信息并结构化**——先判断语音是否承载核心信息,再选择最高效的提取路径(CC字幕优先,Whisper兜底),最后按语义逻辑分段整理为可阅读的结构化文档。 CC字幕是UP主精心校对的,准确率接近100%;Whisper语音识别准确率约85-95%。有CC字幕时绝对优先用字幕,无字幕时才走Whisper。 **适用范围广泛。** 任何有语音的在线视频(B站、YouTube、抖音、播客、会议录像)都可以用本方法提取文字稿。 --- ## 提取三步法 ### 第一步:视频源定位与字幕检测 1. **解析视频URL**:识别平台(B站/YouTube/抖音/其他)、提取视频ID 2. **获取元信息**:标题、作者、播放量、发布时间、时长 3. **检测CC字幕**:查询是否有可用字幕(`yt-dlp --list-subs`) - 有中文字幕(zh-Hans/zh)→ 直接下载字幕,跳过Whisper - 无字幕(danmaku是弹幕,不算字幕)→ 进入第二步 ### 第二步:音频提取与语音识别 1. **下载音频轨**:`yt-dlp -f "bestaudio" --extract-audio --audio-format mp3` - 音频轨一般不受画质/会员限制 - SSL证书问题:设置 `ssl._create_default_https_context = ssl._create_unverified_context` 2. **Whisper语音识别**(仅在无CC字幕时执行): | 模型 | 大小 | 中文效果 | 适用场景 | |------|------|----------|----------| | tiny | 39M | 差 | 快速预览 | | base | 74M | 一般 | 短视频(<5min) | | small | 244M | 较好 | 一般视频 | | medium | 1.5G | 好 | 推荐(默认)| | large | 3G | 最佳 | 长视频/专业需求 | 默认使用medium模型;FP16不支持时自动降级FP32。 ### 第三步:语义分段与要点提炼 1. **去噪**:去除重复内容、语气词、无意义段落 2. **语义分段**:按内容逻辑分段(非固定时长),每段有独立主题 3. **章节标注**:为每段生成章节标题和时间范围 4. **要点提炼**:提取核心观点,整理为要点表格 5. **金句提取**:提取原文中的关键金句 6. **格式化输出**:生成.txt(微信兼容)或.md文件 --- ## 验证清单 提取完成后逐项验证,五项全部通过才算完成: | # | 验证项 | 说明 | |---|--------|------| | 1 | ⬜ 内容完整性 | 覆盖视频的全部语音内容,无遗漏段落 | | 2 | ⬜ 时间戳准确 | 时间戳与视频实际进度对应(误差≤3秒) | | 3 | ⬜ 语义分段合理 | 按内容逻辑分段,非机械按时间切割 | | 4 | ⬜ 要点提炼准确 | 要点总结忠实反映视频核心观点,无曲解 | | 5 | ⬜ 格式规范 | 输出格式符合目标平台要求 | --- ## 领域要求清单 ### T0-01 视频源定位 - **必选组件**: 视频URL、平台识别(B站/YouTube/抖音/其他)、BV号/视频ID - **可选组件**: 视频标题、UP主/作者、播放量、发布时间、时长 - **组装顺序**: URL解析→平台识别→视频ID提取→元信息获取→信息确认 - **约束**: URL格式必须合法;平台必须被yt-dlp支持 - **格式**: 结构化信息块(Markdown) ### T0-02 CC字幕检测与提取 - **必选组件**: 字幕可用性判定(是/否)、字幕语言、字幕格式 - **可选组件**: 字幕文件内容 - **组装顺序**: 字幕列表查询→可用语言判定→中文字幕优先→字幕下载→格式转换 - **约束**: `danmaku`弹幕不算字幕;未登录时可能无法获取CC字幕 - **格式**: SRT/JSON字幕文件或直接文本 ### T0-03 音频提取 - **必选组件**: 音频文件(mp3格式)、音频时长、文件大小 - **可选组件**: 音频质量、采样率 - **组装顺序**: 音频轨选择→下载→格式转换→文件验证 - **约束**: 音频轨不受画质限制;SSL问题需绕过;下载失败时重试1次 - **格式**: mp3文件 ### T0-04 语音识别转录 - **必选组件**: 转录文本(带时间戳)、识别语言、模型选择 - **可选组件**: 识别置信度 - **组装顺序**: 模型选择→音频输入→转录执行→时间戳对齐→结果输出 - **约束**: 默认使用medium模型;长视频分段处理 - **格式**: 带时间戳的文本 ### T0-05 语义分段与整理 - **必选组件**: 分段后文字稿(按内容逻辑分段)、章节标题、每段时间范围 - **可选组件**: 关键词标注 - **组装顺序**: 原始转录→去噪→语义分段→章节标题标注→时间范围对齐 - **约束**: 分段基于语义而非固定时长;每段应有独立主题;时间范围必须连续覆盖 - **格式**: 结构化Markdown ### T0-06 要点提炼与输出 - **必选组件**: 要点总结表格(方法/要点+核心思路+具体操作)、金句提取、输出文件 - **可选组件**: 延伸阅读建议 - **组装顺序**: 全文通读→核心观点提取→要点表格生成→金句提取→格式化输出→文件保存 - **约束**: 要点必须忠实原文,不可曲解;金句必须是原文原话 - **格式**: .txt(微信兼容)或 .md --- ## 领域范本 ### TF-01 文字稿提取范本 **对应任务**: T0-01 ~ T0-06 **适用场景**: 任何在线视频需要提取为结构化文字稿 **提取范本**: ``` ## 文字稿提取记录 ### Step 1:视频源定位(T0-01) **视频URL**:________ **平台**:________(B站/YouTube/抖音/________) **视频ID**:________ | 字段 | 值 | |------|-----| | 标题 | ________ | | 作者 | ________ | | 播放量 | ________ | | 发布时间 | ________ | | 时长 | ________ | ### Step 2:字幕检测(T0-02) **CC字幕可用**:⬜是 / ⬜否 **字幕语言**:________ **提取路径**:⬜CC字幕直接提取 / ⬜Whisper语音识别 ### Step 3:音频提取与识别(T0-03/T0-04) **音频文件**:________ **识别模型**:________(tiny/base/small/medium/large) ### Step 4:语义分段(T0-05) | 章节 | 时间范围 | 主题 | 核心内容 | |------|---------|------|---------| | ________ | [00:00-03:15] | ________ | ________ | | ________ | [03:15-08:42] | ________ | ________ | | ... | ... | ... | ... | ### Step 5:要点提炼(T0-06) | 方法/要点 | 核心思路 | 具体操作 | |-----------|---------|---------| | ________ | ________ | ________ | | ________ | ________ | ________ | **金句**: "________" **输出文件**:________(.txt/.md) ``` **范本要点**: - 有CC字幕绝对优先,无字幕才走Whisper - 语义分段按内容逻辑而非固定时长 - 要点必须忠实原文,金句必须是原话 - 验证五项必须全部通过 - `________` 为待用户提供的内容,不可AI编造 --- ## 工具链 ### 音频下载(yt-dlp) ```bash yt-dlp -f "bestaudio" --extract-audio --audio-format mp3 -o "<output_dir>/audio.%(ext)s" "<视频URL>" ``` ### CC字幕检测 ```bash yt-dlp --list-subs "<视频URL>" ``` ### 元信息获取 通过WebFetch获取视频标题、作者、播放量等元信息。 ### 语音识别(Whisper) 使用`scripts/transcribe.py`执行Whisper语音识别。 --- ## 使用规则 1. **判断是否值得提取**:检查视频语音是否承载核心信息 2. **按三步执行**:视频源定位→音频提取与识别→语义分段与提炼 3. **产出交付**:按领域要求清单逐项填充,或按TF-01范本结构替换实际内容 4. **用户主权**:AI产出的文字稿是起点,用户对分段、要点、金句有调整权 --- ## 事实纪律 1. 视频平台支持范围必须基于yt-dlp实际能力,不得夸大 2. Whisper识别准确率标注为"参考范围",实际效果取决于音频质量 3. 涉及版权的内容提取必须提醒用户注意版权合规 4. 要点提炼必须基于实际转录内容,不可凭空编造
don't have the plugin yet? install it then click "run inline in claude" again.