核心用法
yt_transcript 是一个专门用于提取YouTube视频字幕/转录文本的命令行工具。它通过封装 yt-dlp 实现核心功能,支持直接解析视频URL或11位视频ID。运行时优先获取创作者上传的手动字幕,若不存在则自动降级至YouTube自动生成的字幕。
输出格式灵活:默认返回带时间戳的JSON分段结构(start、duration、text),也可通过 --text 切换为纯文本模式,--no-ts 可移除时间戳。语言筛选通过 --lang 参数实现。所有结果默认缓存至本地SQLite数据库,避免重复请求。
显著优点
- 权威数据源:直接对接YouTube官方字幕流,不依赖第三方转录服务商,数据可信度与隐私可控性更强
- 双重降级机制:手动字幕 → 自动生成字幕 → YouTube网页版转录面板(youtubei
get_transcript),提升覆盖率 - 隐私优先设计:明确不调用外部API,视频ID/URL仅与YouTube官方交互
- 本地缓存加速:SQLite持久化存储,重复查询毫秒级响应
- 安全路径约束:cookies与缓存路径被严格限制在批准目录(
~/.config/yt-transcript/及{baseDir}/cache/),降低凭证泄露风险
潜在缺点与局限性
- 依赖外部工具:必须预先安装
python3与yt-dlp,对非技术用户门槛较高 - 网络访问受限:VPS或数据中心IP频繁触发YouTube反爬机制,需额外配置cookies文件
- 字幕覆盖盲区:若视频创作者关闭字幕且自动识别不可用(如音乐视频、低质量音频),则完全无法提取
- 无实时转录能力:仅处理已有字幕,不支持音频直接转文本(需依赖YouTube的语音识别结果)
- Cookie管理负担:虽然设计为"可选",但实际生产环境(服务器部署)几乎必需,且需手动维护Netscape格式cookies.txt
适合人群
- 研究人员、内容分析师:批量提取视频文本用于NLP分析、关键词索引
- 开发者构建AI摘要工作流:将YouTube内容转为LLM可处理的文本输入
- 隐私敏感用户:拒绝第三方转录服务,坚持本地/官方直连方案
- 多语言学习者:通过
--lang提取特定语言字幕辅助学习
常规风险
| 风险类型 | 说明 |
|---------|------|
| **账号封禁** | 高频请求+数据中心IP易触发YouTube风控,cookies对应的Google账号可能被限制 |
| **凭证泄露** | cookies.txt含敏感登录态,若误提交至版本控制或共享目录将导致账号接管 |
| **版权合规** | 提取的转录文本仍受原视频版权约束,大规模分发需评估合理使用边界 |
| **依赖失效** | `yt-dlp` 需随YouTube前端更新频繁迭代,长期未更新可能导致功能断裂 |
| **缓存膨胀** | SQLite数据库无自动清理机制,高频使用需手动维护存储空间 |