用途:从 YouTube 视频抓取字幕文本。由于 YouTube 会拦截来自云 IP(AWS、GCP 等)的字幕请求,该工具改用 APIFY 的住宅代理执行请求,从而稳定绕过机器人检测。
主要能力:支持标准与短链接(youtu.be);默认输出纯文本,加 --json 输出含时间戳的分段 JSON;可用 --lang 指定语言偏好;支持 --output 写入文件;支持 --batch 批量处理 URL 列表;内置本地缓存,重复请求同一视频不再计费;提供 --cache-stats 查看缓存统计、--clear-cache 清空缓存、--no-cache 强制重新抓取。缓存默认位于技能目录下的 .cache/,可用 YT_TRANSCRIPT_CACHE_DIR 环境变量覆盖。脚本会处理无效 URL、无字幕、API 配额超限和网络错误等常见情况。
使用方式:先在 https://apify.com/ 注册免费账号,在 https://console.apify.com/account/integrations 获取 API token,然后设置环境变量:export APIFY_API_TOKEN="apify_api_YOUR_TOKEN_HERE"(可写入 ~/.bashrc 或 .zshrc,或放入 .env 文件且不要提交)。基本调用:python3 scripts/fetch_transcript.py "https://www.youtube.com/watch?v=VIDEO_ID"。批量示例:python3 scripts/fetch_transcript.py --batch urls.txt --json --output all_transcripts.json。
适用场景:个人在云端环境批量提取 YouTube 字幕用于整理、检索或后续处理。
限制与费用:需要 APIFY_API_TOKEN 和 python3;免费额度为每月 5 美元(约 714 个视频),无需信用卡;超出后按约 0.007 美元/视频计费,用量可在 https://console.apify.com/billing 查看。具体价格与额度以 APIFY 官方为准。