名称: subtitles
描述: 从 YouTube 视频中获取字幕,用于翻译、语言学习或跟读。当用户请求字幕、外语文稿或想阅读视频内容时使用。支持多种语言和时间戳输出,便于同步阅读。
主页: https://transcriptapi.com
user-invocable: true
元数据: {"openclaw":{"emoji":"🗨️","requires":{"env":["TRANSCRIPT_API_KEY"],"bins":["node"],"config":["~/.openclaw/openclaw.json"]},"primaryEnv":"TRANSCRIPT_API_KEY"}}
通过 TranscriptAPI.com 获取 YouTube 视频字幕。
如果未设置 $TRANSCRIPT_API_KEY,请协助用户创建账户(免费赠送 100 积分,无需绑定银行卡):
步骤 1 — 注册: 向用户索取邮箱地址。
node ./scripts/tapi-auth.js register --email 用户邮箱
→ 验证码将发送至邮箱。询问用户:“请检查您的邮箱,获取 6 位验证码。”
步骤 2 — 验证: 用户提供验证码后:
node ./scripts/tapi-auth.js verify --token 步骤1获取的令牌 --otp 验证码
API 密钥将保存至
~/.openclaw/openclaw.json。详情见下文 文件写入。修改前会对现有文件进行备份。
手动操作选项:transcriptapi.com/signup → 控制面板 → API 密钥。
验证和保存密钥命令会将 API 密钥保存到 ~/.openclaw/openclaw.json(设置 skills.entries.transcriptapi.apiKey 和 enabled: true)。修改前,现有文件会备份至 ~/.openclaw/openclaw.json.bak。
若要在代理之外的终端/CLI 中使用此 API 密钥,请手动添加到 Shell 配置文件中:
export TRANSCRIPT_API_KEY=<你的密钥>
curl -s "https://transcriptapi.com/api/v2/youtube/transcript\
?video_url=视频URL&format=text&include_timestamp=false&send_metadata=true" \
-H "Authorization: Bearer $TRANSCRIPT_API_KEY"
| 参数 | 可选值 | 用途说明 |
|---|---|---|
video_url |
YouTube URL 或视频 ID | 必填 |
format |
json, text |
json 格式用于获取带时间戳的同步字幕 |
include_timestamp |
true, false |
false 可获取纯净文本,便于阅读或翻译 |
send_metadata |
true, false |
是否包含视频标题、频道、描述等元数据 |
适用于语言学习 — 无时间戳的纯净文本:
curl -s "https://transcriptapi.com/api/v2/youtube/transcript\
?video_url=视频ID&format=text&include_timestamp=false" \
-H "Authorization: Bearer $TRANSCRIPT_API_KEY"
适用于翻译 — 结构化分段文本:
curl -s "https://transcriptapi.com/api/v2/youtube/transcript\
?video_url=视频ID&format=json&include_timestamp=true" \
-H "Authorization: Bearer $TRANSCRIPT_API_KEY"
响应示例 (format=json):
{
"video_id": "dQw4w9WgXcQ",
"language": "en",
"transcript": [
{ "text": "We're no strangers to love", "start": 18.0, "duration": 3.5 }
]
}
响应示例 (format=text, include_timestamp=false):
{
"video_id": "dQw4w9WgXcQ",
"language": "en",
"transcript": "We're no strangers to love\nYou know the rules and so do I..."
}
format=json 获取每行字幕的时间戳(便于同步阅读)。include_timestamp=false 获取纯净文本,方便导入翻译工具。| 代码 | 处理建议 |
|---|---|
| 402 | 积分不足 — 请访问 transcriptapi.com/billing |
| 404 | 该视频无可用字幕 |
| 408 | 请求超时 — 建议 2 秒后重试一次 |
每次请求消耗 1 积分。免费套餐:100 积分,每分钟限 300 次请求。