用途:从 YouTube 视频抓取字幕文本。由于 YouTube 会拦截来自云 IP(AWS、GCP 等)的字幕请求,该工具改为通过 APIFY 的住宅代理发起请求,从而绕过机器人检测,适合在云服务器上运行。
主要能力:支持普通链接与短链接;默认输出纯文本,加 --json 可输出含时间戳的分段 JSON;可用 --lang 指定语言偏好;支持 --output 写入文件;支持 --batch 批量处理 URL 列表;内置本地缓存,重复请求同一视频不再产生费用,可用 --no-cache 强制刷新,用 --cache-stats 查看缓存统计,用 --clear-cache 清空缓存。缓存默认位于技能目录下的 .cache/,可用 YT_TRANSCRIPT_CACHE_DIR 环境变量覆盖。脚本会处理无效 URL、视频无字幕、API 配额超限和网络错误等常见情况。
使用方式:先注册 APIFY 账号并获取 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。
费用与限制:免费额度为每月 5 美元,约 714 个视频,无需信用卡;超出后约每视频 0.007 美元,用量可在 APIFY 控制台查看。需要 APIFY_API_TOKEN 环境变量和 python3。字幕可用性取决于视频本身是否提供字幕;具体支持的语言范围、缓存过期策略等资料未提供。