| name | youtube-watcher-zh |
| description | 通过 yt-dlp 提取 YouTube 视频字幕,支持视频摘要、问答和内容提取,仅适用于有字幕的视频 |
| tags | ["youtube","subtitle","transcription","video"] |
| permissions | ["network","shell"] |
| metadata | {"clawdbot":{"requires":{"bins":["yt-dlp","ffmpeg"],"env":[]},"files":[]},"capabilities":{"allow":[{"execute":["yt-dlp","ffmpeg"]},{"network":["*.youtube.com","youtube.com"]},{"read":["workspace/**"]},{"write":["workspace/**"]}],"deny":[{"execute":["!*"]},{"network":["!*.youtube.com","!youtube.com"]}]}} |
YouTube 字幕提取器
通过 yt-dlp 提取 YouTube 视频字幕并进行内容分析
🎯 功能特性
- 📝 字幕提取 - 从 YouTube 视频中提取带时间戳的字幕
- 🎬 内容分析 - 基于字幕进行视频内容摘要
- ❓ 问答支持 - 根据字幕内容回答问题
- 🔍 内容搜索 - 在字幕内容中搜索特定信息
- 📊 统计分析 - 分析字幕的词汇、主题等统计信息
🚀 快速开始
1. 安装依赖
确保安装了 yt-dlp:
sudo apt install yt-dlp
brew install yt-dlp
pip install yt-dlp
2. 基本使用
提取视频字幕:
yt-dlp --write-subs --sub-format "srt" "https://www.youtube.com/watch?v=VIDEO_ID"
📝 使用方法
提取字幕
yt-dlp --write-subs --sub-format "srt" --sub-lang "en,zh" "YOUTUBE_URL"
yt-dlp --write-subs --sub-format "srt" --sub-lang "en,zh,en-auto" "YOUTUBE_URL"
字幕格式支持
- SRT - 标准字幕格式
- VTT - WebVTT 字幕格式
- ASS/SSA - 高级字幕格式
- JSON - 原始 JSON 数据
🔍 内容分析
视频摘要
基于字幕内容生成视频摘要:
内容问答
根据字幕内容回答问题:
"这个视频主要讲了什么?"
"视频中提到了哪些关键概念?"
"视频的主要内容分为哪几个部分?"
内容搜索
在字幕中搜索特定内容:
grep "关键词" video.srt
find "搜索词" in video.srt
⚙️ 配置选项
yt-dlp 参数
| 参数 | 描述 |
|---|
--write-subs | 写入字幕文件 |
--sub-format "srt" | 字幕格式 |
--sub-lang "en,zh" | 字幕语言 |
--sub-lang "en-auto" | 自动生成的英文字幕 |
--no-playlist | 不提取播放列表 |
--no-mtime | 不修改文件时间戳 |
输出格式
视频标题.语言.srt
视频标题.语言.vtt
视频标题.语言.json
📊 字幕处理
字幕清理
内容分析
- 词汇统计 - 计算词频、关键词
- 主题提取 - 识别主要讨论话题
- 情感分析 - 分析内容的情感倾向
- 结构分析 - 识别内容结构和逻辑
🎬 实际应用
1. 视频研究
2. 内容创作
3. 学习辅助
📁 文件管理
存储结构
workspace/
├── videos/
│ ├── [视频ID]/
│ │ ├── video.srt # 字幕文件
│ │ ├── video.vtt # WebVTT 格式
│ │ ├── video.json # 原始数据
│ │ └── summary.txt # 内容摘要
└── processed/
├── transcripts/ # 处理后的字幕
├── summaries/ # 视频摘要
└── analysis/ # 内容分析
文件命名约定
- 使用视频 ID 作为主目录名
- 保留原始文件扩展名
- 添加处理时间戳避免覆盖
🔧 高级功能
批量处理
for video_id in "ID1" "ID2" "ID3"; do
yt-dlp --write-subs --sub-format "srt" "https://www.youtube.com/watch?v=$video_id"
done
自动化工作流
结合其他工具实现自动化:
extract_and_analyze() {
local url="$1"
yt-dlp --write-subs --sub-format "srt" "$url"
}
⚠️ 注意事项
限制条件
- 字幕可用性 - 仅适用于有字幕的视频
- 语言支持 - 取决于视频的字幕语言
- 版权限制 - 请遵守版权法和 YouTube 服务条款
性能考虑
- 大文件处理需要较多内存
- 网络连接质量影响下载速度
- 视频长度影响处理时间
🚨 使用限制
法律合规
- 仅用于个人学习和研究
- 不得用于商业目的
- 尊重内容创作者的版权
- 遵守 YouTube 的服务条款
技术限制
- 需要稳定的网络连接
- 需要足够的存储空间
- 处理大量视频时需要考虑性能
📞 故障排除
常见问题
-
字幕提取失败
- 检查视频是否有字幕
- 尝试不同的字幕格式
- 确认网络连接正常
-
格式不支持
- 更新 yt-dlp 到最新版本
- 尝试使用备用提取器
- 检查视频地区的字幕可用性
-
处理错误
- 检查文件权限
- 确保有足够的磁盘空间
- 重试失败的提取
提示: 此技能仅适用于有字幕的 YouTube 视频。无字幕的视频将无法提取内容。