用途
YouTube 提文案(youtube-digest)用于提取 YouTube 视频的文字稿(口播文案)。输入 YouTube 视频链接或视频 ID,即可拿到完整文案,终端展示 + Markdown 存档 + 可导出 Excel。
支持的链接格式(视频链接必须包含视频 ID):
- 完整 URL:https://www.youtube.com/watch?v=dQw4w9WgXcQ
- 短 URL:https://youtu.be/dQw4w9WgXcQ
- 视频 ID:dQw4w9WgXcQ
主要能力
- 默认输出不带时间戳的纯文案;需要带时间戳版本时加 --timestamp。
- 字幕按 zh,en,asr 优先级选轨:视频有中文字幕轨时直接输出中文;没有中文轨时回退英文,脚本自动将非中文字幕翻译为中文(基于 Google Translate,批量翻译提升效率);加 --no-translate 可禁用自动翻译、保留原文。
- 默认自动获取视频元数据(标题/频道),无需额外参数。
- 文字稿来源为视频字幕轨(手动字幕 + 自动生成字幕 asr),按语言优先级选轨、中文轨优先。
- 表格化交付:以标题/时长/文案内容三字段表格呈现结果。
- 支持导出 Excel(.xlsx,四列:标题/时长/视频链接/文案内容)。
- 稳健重试:网络异常/状态码错误/数据为空自动递增延迟重试(0.5s→1.0s),限频(3108)自动等待 5 秒重试。
使用方式
需先配置 API Key,通过环境变量 REDFOX_API_KEY 或 --api-key 参数传入。
API Key 配置方式:
| 方式 | 命令 |
|---|---|
| 环境变量(推荐) | export REDFOX_API_KEY=ak_你的密钥 |
| 命令行参数 | --api-key ak_你的密钥 |
| 配置文件 | echo '{"api_key":"ak_你的密钥"}' > ~/.qoder/apis/redfox.json |
注册地址:redfox.hk
常用命令示例:
# 基础提取(默认:不带时间戳 + 自动获取标题等元数据)
python3 "$SKILL_PATH/scripts/extract.py" "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
# 支持短链和纯视频 ID
python3 "$SKILL_PATH/scripts/extract.py" "https://youtu.be/dQw4w9WgXcQ"
python3 "$SKILL_PATH/scripts/extract.py" "dQw4w9WgXcQ"
# 带时间戳版本(方便定位原片进度)
python3 "$SKILL_PATH/scripts/extract.py" "URL" --timestamp
# 同时导出 Excel(标题/时长/视频链接/文案内容 四列)
python3 "$SKILL_PATH/scripts/extract.py" "URL" --excel
# 带时间戳文案 + 导出 Excel(Excel 内容与当前模式一致)
python3 "$SKILL_PATH/scripts/extract.py" "URL" --timestamp --excel
# 指定语言优先级(如只要英文字幕)
python3 "$SKILL_PATH/scripts/extract.py" "URL" --language "en"
# 输出原始 JSON / 不保存文件 / 不获取元数据
python3 "$SKILL_PATH/scripts/extract.py" "URL" --json
python3 "$SKILL_PATH/scripts/extract.py" "URL" --no-save
python3 "$SKILL_PATH/scripts/extract.py" "URL" --no-metadata
终端输出为视频概要(标题/语言/片段数/总时长)+ 纯文案全文。Markdown 存档默认保存在 ~/Downloads/QoderYoutubeDigest/,文件名 {视频ID}_{时间戳}.md,含视频信息头表 + 全文;Excel(.xlsx)同目录。
参数说明:
| 参数 | 说明 | 默认值 |
|---|---|---|
| video_url | YouTube 视频链接(完整URL/短URL/视频ID,必须含视频 ID,必填位置参数) | — |
| --language | 字幕语言优先级,逗号分隔(中文轨优先,asr 为自动生成字幕兜底;仅选轨不翻译) | zh,en,asr |
| --timestamp | 输出带 [MM:SS] 时间戳的文案 | 默认不带时间戳 |
| --excel | 同时导出 Excel(.xlsx,四列:标题/时长/视频链接/文案内容) | 不导出 |
| --no-metadata | 不获取视频元数据 | 默认获取(标题/频道) |
| --json | 终端输出原始 JSON 响应 | — |
| --no-save | 不保存 Markdown 文件 | 自动保存 |
| --output-dir | 输出目录 | ~/Downloads/QoderYoutubeDigest |
| --no-translate | 禁用自动翻译,保留字幕原文输出 | 默认自动翻译非中文字幕为中文 |
| --api-key | 指定 RedFox API Key | — |
依赖安装:
pip3 install requests openpyxl deep-translator
(openpyxl 仅 Excel 导出需要;deep-translator 仅自动翻译需要;未安装时对应功能自动降级,其余功能不受影响)
适用场景
| 场景 | 示例 |
|---|---|
| 视频转文字稿 | 丢一个 YouTube 链接,拿到完整口播文案 |
| 学习笔记整理 | 提取教程/演讲文案后让 AI 总结成章节笔记 |
| 内容二次创作 | 提取英文视频文案 → AI 翻译改写 → 公众号文章 |
| 播客/访谈存档 | 提取访谈全文,导出 Excel 归档 |
| 竞品内容分析 | 批量提取同行视频文案,分析话术与结构 |
| 视频选题调研 | 先提文案再快速判断视频是否值得深看 |
限制与常见问题
- 默认文案不带时间戳;加 --timestamp 才输出 [MM:SS] 时间戳版本。
- 脚本检测到非中文字幕时会自动翻译为中文(基于 Google Translate)。视频有中文轨时直接输出中文,没有中文轨时回退英文后自动翻译。如需保留原文,加 --no-translate。
- Excel 为四列:标题、时长、视频链接、文案内容。文案内容与当前模式一致:加 --timestamp 时 Excel 内含时间戳,否则为纯文案。
- 文字稿来自视频字幕轨。完全无字幕(含自动生成字幕)的视频无法提取;部分受限/私享视频也不支持。
- 链接无效返回 Invalid YouTube URL or video ID(积分不扣除);Key 无效(3106/3107)需检查 API Key 配置;限频(3108)会自动等待重试。
- 额度用完需前往 redfox.hk 注册获取 Token。