用 curl 在 30 秒内提取 YouTube 转录文本

把 YouTube 视频转成纯文本,不需要账号、不需要 SDK、也不需要无头浏览器。youtube2text.org 是一个 REST API:一次调用获取密钥,一次调用获取转录文本。
第一步:获取免费演示密钥
curl -s https://youtube2text.org/api/demo-key
响应:
{"success": true, "apiKey": "yt_..."}
演示密钥是共享的,并按 IP 限流(每个 IP 每月 5 个视频)——非常适合快速试用或偶尔写点脚本。
第二步:获取转录文本
curl -s "https://youtube2text.org/api/transcribe?url=https://www.youtube.com/watch?v=VIDEO_ID&maxChars=5000" \
-H "x-api-key: yt_YOUR_KEY"
成功响应:
{"result": {"videoId": "...", "title": "...", "pubDate": "2025-01-01T00:00:00-07:00",
"content": "full transcript text ...", "contentSize": 12345, "truncated": false}}
就这么简单。几个值得了解的细节:
url接受任何形式的 YouTube 链接——watch?v=、youtu.be、embed,或直接给出 11 位视频 ID。maxChars用于截断转录文本(默认值和最大值均为 150000)。当你要把文本喂给有 token 预算限制的 LLM 时非常实用。Authorization: Bearer <key>可以作为x-api-key的替代方式。- 更喜欢 POST?向同一端点发送 JSON:
{"url": "...", "maxChars": 5000}。
处理错误
所有错误都以同样的机器可读格式返回:
{"error": {"code": "RATE_LIMIT_EXCEEDED", "message": "...", "status": 429,
"docsUrl": "https://youtube2text.org/api.md", "retryAfterSeconds": 3600}}
你实际会遇到的错误码:
TRANSCRIPT_UNAVAILABLE—— 该视频完全没有字幕。RATE_LIMIT_EXCEEDED—— 配额已用完;retryAfterSeconds会告诉你何时可以重试。UNAUTHORIZED—— 密钥缺失或无效;请从/api/demo-key获取一个。
当演示密钥不够用时
在 youtube2text.org/app/keys 用 Google 账号登录并创建自己的密钥:免费账号同样有每月 5 个视频的配额,付费套餐则从每月 50 个到无限量不等。
完整的机器可读参考文档——参数说明、所有错误码、MCP 集成——都在 youtube2text.org/api.md。如果你要把它接入 AI 智能体而不是 shell 脚本,接下来请阅读 MCP 指南。