视频转写工作流
决策流程
1. 尝试获取字幕 → bilibili-youtube-watcher
↓
有字幕? ──是──→ 检查语言 ──需翻译?──是──→ LLM翻译
↓否 ↓否
2. 下载音频 → yt-dlp 直接使用
↓
3. 判断语言 → 中文?用--language Chinese : 用--language en
↓
4. 转写 → whisper.cpp tiny模型
工具
bilibili-youtube-watcher(有字幕时)
# B站视频字幕
python3 ~/.openclaw/extensions/bilibili-youtube-watcher/scripts/get_transcript.py "URL" --lang zh-CN
# YouTube字幕(尝试en/zh-CN)
python3 ~/.openclaw/extensions/bilibili-youtube-watcher/scripts/get_transcript.py "URL" --lang en
yt-dlp + whisper.cpp(无字幕时)
# 1. 获取视频时长
yt-dlp --dump-json --no-check-certificate "URL" | jq -r '.duration, .title'
# 2. 下载音频
yt-dlp -f bestaudio --no-check-certificate "URL" -o audio.m4a
# 3. 转码
ffmpeg -i audio.m4a -ar 16000 -ac 1 audio.wav
# 4. 转写
# 中文视频
whisper-cpp -m ggml-tiny.bin -f audio.wav -osrt --language Chinese
# 英文视频
whisper-cpp -m ggml-tiny.bin -f audio.wav -osrt --language English
注意事项
- exec默认timeout=1800秒(30分钟),足够处理40分钟视频
- 翻译:用LLM直接处理字幕内容
- 字幕库:my.feishu.cn/docx/I9P3dGDZioSJZlxfHwwclXcAnDe