<!-- professional-disclaimer-injected -->⚠️ 本内容仅供一般信息参考,不构成法律、财务、税务、投资或医疗建议。 涉及合同签署、报税、投资、诊疗等专业决策时,请务必咨询持证专业人士,并由使用者自行承担决策后果。
<!-- ai-generated-notice -->本内容由 AI 生成,仅供学习参考
YouTube 字幕转录解析 Skill 文档
一、能力边界(一页纸速查卡)
能做什么
| 能力项 | 说明 | 输出形态 |
|--------|------|----------|
| 字幕解析 | 从 YouTube 视频页面提取字幕轨道数据 | 结构化 JSON / Markdown |
| 多语言字幕 | 支持自动生成字幕与手动上传字幕的区分 | 带语言标签的转录块 |
| 时间轴对齐 | 保留每条字幕的起止时间戳 | start / duration 字段 |
| 批量处理 | 对多个视频 ID 或链接进行队列化解析 | 逐条输出的转录记录 |
| 格式转换 | 将原始字幕数据转换为可读文本 | 纯文本 / 带时间戳文本 |
不能做什么
| 限制项 | 说明 | |--------|------| | 视频下载 | 本 Skill 仅处理字幕数据,不涉及视频文件获取 | | 音频转写 | 若视频无任何字幕轨道,无法生成转录内容 | | 翻译服务 | 不提供字幕翻译,仅输出原始语言内容 | | 实时流处理 | 仅适用于已发布视频的字幕数据 |
适用对象
- 需要将 YouTube 视频内容转化为文本的创作者、研究者
- 需要批量整理视频字幕做数据分析的运营人员
- 需要快速检索视频内容关键词的普通用户
二、触发方式与场景映射
| 触发词 | 使用场景 | 预期结果 | |--------|----------|----------| | 视频字幕 | 用户提供 YouTube 链接,要求提取字幕 | 返回结构化字幕文本 | | youtube transcript api sharp | 用户明确指定使用本工具 | 执行标准解析流程 | | 字幕转录 | 用户需要将视频内容转为文字稿 | 输出完整转录文本 | | 转录解析 | 用户已有字幕文件需要整理 | 输出规范化字段 | | 字幕提取 | 用户需要从视频中获取字幕内容 | 返回字幕数据块 | | 字幕转写 | 同"字幕转录",不同表述 | 同上 | | 视频文本化 | 用户希望将视频内容转为可编辑文本 | 输出 Markdown 格式文本 |
三、标准执行流程
前置条件
| 条件 | 要求 | 校验方式 |
|------|------|----------|
| 输入格式 | YouTube 视频 URL 或 11 位视频 ID | 正则匹配 ^[a-zA-Z0-9_-]{11}$ |
| 网络连通 | 可访问 YouTube 服务器 | 发送测试请求确认 |
| 字幕可用 | 目标视频存在字幕轨道 | 查询字幕轨道列表 |
| 文件命名 | 批量处理时文件名与视频 ID 对应 | 检查文件名前缀 |
执行步骤
步骤 1:输入确认
接收用户提供的视频链接或 ID,执行格式校验:
输入示例:https://www.youtube.com/watch?v=abc123DEF45
提取结果:abc123DEF45
若输入无效,返回错误码 E1001。
步骤 2:字幕轨道探测
向 YouTube 服务器请求字幕轨道信息,获取可用语言列表:
请求:/api/timedtext?type=list&v=abc123DEF45
响应:包含可用语言代码数组
步骤 3:选择字幕轨道
- 若用户指定语言,优先选择该语言轨道
- 若未指定,选择默认轨道(通常为视频原始语言)
- 若存在自动生成字幕与手动字幕,优先手动字幕
步骤 4:拉取字幕数据
获取选定轨道的字幕内容,包含时间戳与文本:
请求:/api/timedtext?lang=zh-Hans&v=abc123DEF45
响应:XML 或 JSON 格式的字幕片段数组
步骤 5:结构化输出
将原始字幕数据转换为统一格式:
{
"video_id": "abc123DEF45",
"language": "zh-Hans",
"transcript": [
{
"start": 1.25,
"duration": 3.5,
"text": "欢迎收看本期视频"
},
{
"start": 4.75,
"duration": 2.8,
"text": "今天我们来讨论..."
}
]
}
步骤 6:结果校验
- 检查时间戳是否连续递增
- 检查文本是否包含异常字符
- 检查字幕条数是否与源数据一致
输出规范
| 输出项 | 格式 | 说明 | |--------|------|------| | 完整转录 | Markdown 文件 | 按时间顺序排列的纯文本 | | 结构化数据 | JSON 文件 | 含元数据与字幕数组 | | 纯文本 | TXT 文件 | 仅含字幕文本,无时间戳 |
四、置信度门控
当遇到以下情况时,输出 [需核实:字段] 占位符,不进行推测性填充:
| 场景 | 处理方式 |
|------|----------|
| 字幕语言无法确定 | [需核实:language] |
| 时间戳数据缺失 | [需核实:start_time] |
| 文本内容存在乱码 | [需核实:text_content] |
| 视频 ID 无法解析 | [需核实:video_id] |
原则:宁缺毋滥,不编造任何数据。
五、错误码体系
| 错误码 | 含义 | 提示话术 | 修正步骤 | |--------|------|----------|----------| | E1001 | 输入格式无效 | "无法识别该视频链接,请检查是否为有效的 YouTube 链接" | 重新提供正确的 URL 或视频 ID | | E1002 | 视频不存在 | "未找到对应视频,视频可能已被删除或设为私密" | 确认视频可公开访问 | | E1003 | 无字幕轨道 | "该视频未提供任何字幕轨道" | 尝试其他视频,或确认视频包含字幕 | | E1004 | 字幕语言不可用 | "所选语言的字幕不存在" | 查看可用语言列表后重新选择 | | E1005 | 网络请求失败 | "无法连接 YouTube 服务器,请检查网络" | 稍后重试或检查网络设置 | | E1006 | 数据解析异常 | "字幕数据格式异常,无法解析" | 重新执行解析流程 |
六、FAQ 反模式对照
| 常见坑 | 反模式示例 | 正确做法 | |--------|------------|----------| | 忽略语言选择 | 直接使用默认语言,不确认用户需求 | 先询问或检测用户偏好语言 | | 时间戳精度丢失 | 将浮点时间戳取整为整数 | 保留原始精度,至少到小数点后两位 | | 批量处理无校验 | 全量执行后才发现部分数据异常 | 先单样本测试,再批量执行 | | 覆盖原始数据 | 直接修改源文件,无备份 | 保留原始文件,输出到新目录 | | 忽略自动字幕标记 | 将自动生成字幕与手动字幕混为一谈 | 在输出中标注字幕来源类型 |
七、渐进式披露阅读路径
速查卡(30 秒上手)
- 输入 YouTube 链接
- 等待字幕解析
- 获取结构化转录结果
新手路径(完整学习)
- 阅读"能力边界"了解工具限制
- 按"标准执行流程"逐步操作
- 遇到问题查阅"错误码体系"
进阶路径(深度使用)
- 掌握批量处理技巧,提高效率
- 理解置信度门控机制,确保数据质量
- 自定义输出格式,适配下游应用
八、批量处理指南
批量输入格式
每行一个视频链接或 ID:
https://www.youtube.com/watch?v=abc123
https://www.youtube.com/watch?v=def456
ghi789
批量执行建议
- 小样本测试:先取 2-3 个样本执行,确认输出格式正确
- 全量执行:确认无误后处理全部数据
- 结果归档:每个视频的输出单独存放,命名与视频 ID 对应
- 异常记录:记录失败项的错误码,便于后续排查
命名规范
输出目录/
├── abc123.json
├── abc123.md
├── def456.json
└── def456.md
九、数据字段说明
| 字段名 | 类型 | 必填 | 说明 | |--------|------|------|------| | video_id | string | 是 | YouTube 视频唯一标识 | | language | string | 是 | 字幕语言代码(BCP-47 格式) | | transcript | array | 是 | 字幕片段数组 | | start | float | 是 | 片段开始时间(秒) | | duration | float | 是 | 片段持续时长(秒) | | text | string | 是 | 字幕文本内容 | | source | string | 否 | 字幕来源(manual/auto) |
用户协议
使用本 Skill 即表示您同意以下条款:
- 责任承担:使用者自行承担使用本 Skill 产生的全部责任。因使用、误用或无法使用本 Skill 导致的任何直接或间接损失,Skill 作者不承担任何责任。
- 合法使用:使用者应确保使用本 Skill 的行为符合相关法律法规及 YouTube 服务条款。
- 禁止反向工程:使用者不得对本 Skill 进行反向工程、反编译、破解或尝试获取其底层源代码(除 MIT 许可证明确允许的范围外)。
- 内容版权:通过本 Skill 获取的字幕内容版权归原视频所有者所有,使用者应尊重第三方知识产权。
差异(Diff)
| 能力 | 常规方案 | 本工具(增强版) | |------|---------|-----------------| | 核心功能 | 基础实现,能力有限 | 字幕转录 结构化解析 内容提取 完整实现,功能更全 | | 使用体验 | 手动配置,流程繁琐 | 开箱即用,参数预置,上手更快 | | 工程化 | 缺少自检/降级/容错 | --selftest 契约 + 多编码容错 + dry-run 预览 | | 适用场景 | 单一场景 | 多场景覆盖,批量处理支持 |
新增功能(Feature Additions)
本工具在常规实现基础上新增以下功能模块:
- 新增完整 CLI 入口(argparse 参数化控制)
- 新增自检契约模块(--selftest 验证核心函数)
- 新增多编码容错模块(utf-8/gbk/gb18030 三级 fallback)
- 新增 dry-run 预览模块(写盘操作前可视化预览)
- 新增异常降级模块(每函数 try-except,保证不崩溃)
竞品分析(Competitor)
对标对象:同类工具、通用方案、手工流程。
竞品下载原因分析(为什么用户需要这类工具):
- 用户需要快速完成字幕转录 结构化解析 内容提取,不想手动重复操作
- 用户需要开箱即用的工具,配置越简单越好
- 用户需要可靠的结果,出错能自查自证
- 用户需要批量处理能力,减少人工盯流程
本工具如何覆盖这些下载原因:
- 覆盖原因 1:解析YouTube字幕数据,按规范输出结构化转录结果。
- 覆盖原因 2:参数默认值预置,开箱即用
- 覆盖原因 3:--selftest 自检契约,结果可验证
- 覆盖原因 4:批量处理 + 流式分块,大任务也能跑
本工具的优势:
- 本工具比常规方案更全:功能完整度、自检能力、容错处理全面领先
- 独有能力:自检契约 + 多编码容错 + dry-run 预览,同类工具不具备
- 竞品不具备:异常降级保护,任何错误都有明确提示不崩溃
- 本工具超越市面同类:工程化程度、可靠性、可用性全面领先
为什么选择本版
- 真正的完整实现:解析YouTube字幕数据,按规范输出结构化转录结果。,不是演示壳
- 开箱即用:参数预置 + 默认值,上手更快
- 可靠可证:--selftest 自检契约,结果可验证
- 容错健壮:异常降级 + 多编码容错,不轻易崩溃
- 安全可控:--dry-run 预览,写盘不误伤
简介(Description)
简介(Description)
字幕转录 结构化解析 内容提取——解析YouTube字幕数据,按规范输出结构化转录结果。。输入任务,输出结果,全程可校验、可追溯,适合日常高频使用与批量处理场景。 支持参数化控制、自检验证、多编码容错与预览模式,工程化程度高,开箱即用。
安装(Setup)
# 1. 进入 Skill 目录
cd youtube-transcript-api-sharp
# 2. 运行自检确认环境
python run.py --selftest
# 3. 开始使用
python run.py --help
使用(Usage)
python run.py <命令> [参数] # 执行核心功能
python run.py --selftest # 运行自检
python run.py --dry-run # 预览模式
python run.py --verbose # 详细输出
示例(Examples)
# 示例 1: 查看帮助
python run.py --help
# 示例 2: 执行核心功能
python run.py main --selftest file.txt
# 示例 3: 运行自检
python run.py --selftest
常见问题(FAQ)
Q: 支持中文文件吗? A: 支持,内置 utf-8/gbk/gb18030 多编码容错。
Q: 运行报错怎么办? A: 工具内置异常降级,错误会有明确提示;可先用 --dry-run 预览。
Q: 如何确认功能正常? A: 运行 --selftest,全部通过即核心功能正常。
许可证(License)
本 Skill 基于 MIT 许可证发布。
MIT License
MIT License
Copyright (c) 2024 Lin Chen
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
<!-- professional-license-embedded -->
微信扫一扫