名称: youtube-data
描述: 访问 YouTube 视频数据 — 包括字幕、元数据、频道信息、搜索和播放列表。这是 Google YouTube Data API 的轻量级替代方案,没有配额限制。当用户需要从 YouTube 视频、频道或播放列表中获取结构化数据,但又不想处理 Google API 设置、OAuth 或每日配额时使用。
主页: 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 数据 — 是 Google YouTube Data API 的轻量级替代方案。
如果未设置 $TRANSCRIPT_API_KEY 环境变量,请帮助用户创建一个账户(提供 100 个免费积分,无需信用卡):
步骤 1 — 注册: 向用户索取其邮箱地址。
node ./scripts/tapi-auth.js register --email 用户邮箱
→ 验证码(OTP)将发送至邮箱。询问用户:"请检查您的邮箱,获取 6 位验证码。"
步骤 2 — 验证: 用户提供 OTP 后:
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=<你的密钥>
完整的 OpenAPI 规范:transcriptapi.com/openapi.json — 请查阅此文件以获取最新的参数和模式定义。
curl -s "https://transcriptapi.com/api/v2/youtube/transcript\
?video_url=视频URL&format=json&include_timestamp=true&send_metadata=true" \
-H "Authorization: Bearer $TRANSCRIPT_API_KEY"
响应示例:
{
"video_id": "dQw4w9WgXcQ",
"language": "en",
"transcript": [
{ "text": "We're no strangers to love", "start": 18.0, "duration": 3.5 }
],
"metadata": {
"title": "Rick Astley - Never Gonna Give You Up",
"author_name": "Rick Astley",
"author_url": "https://www.youtube.com/@RickAstley",
"thumbnail_url": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg"
}
}
curl -s "https://transcriptapi.com/api/v2/youtube/search?q=查询词&type=video&limit=20" \
-H "Authorization: Bearer $TRANSCRIPT_API_KEY"
视频结果字段: videoId, title, channelId, channelTitle, channelHandle, channelVerified, lengthText, viewCountText, publishedTimeText, hasCaptions, thumbnails
频道结果字段 (type=channel):channelId, title, handle, url, description, subscriberCount, verified, rssUrl, thumbnails
频道端点接受 channel 参数 — 可以是 @句柄、频道 URL 或 UC... 格式的 ID。无需预先解析。
将句柄解析为 ID(免费):
curl -s "https://transcriptapi.com/api/v2/youtube/channel/resolve?input=@TED" \
-H "Authorization: Bearer $TRANSCRIPT_API_KEY"
返回:{"channel_id": "UCsT0YIqwnpJCM-mx7-gSA4Q", "resolved_from": "@TED"}
获取最新的 15 个视频及其精确统计数据(免费):
curl -s "https://transcriptapi.com/api/v2/youtube/channel/latest?channel=@TED" \
-H "Authorization: Bearer $TRANSCRIPT_API_KEY"
返回:channel 信息,以及包含 videoId, title, published (ISO 格式), viewCount (精确数字), description, thumbnail 的 results 数组。
获取频道所有视频(分页,1 积分/页):
curl -s "https://transcriptapi.com/api/v2/youtube/channel/videos?channel=@NASA" \
-H "Authorization: Bearer $TRANSCRIPT_API_KEY"
每页返回 100 个视频,并提供 continuation_token 用于分页。
在频道内搜索(1 积分):
curl -s "https://transcriptapi.com/api/v2/youtube/channel/search\
?channel=@TED&q=查询词&limit=30" \
-H "Authorization: Bearer $TRANSCRIPT_API_KEY"
接受 playlist 参数 — 可以是 YouTube 播放列表 URL 或播放列表 ID。
curl -s "https://transcriptapi.com/api/v2/youtube/playlist/videos?playlist=播放列表ID" \
-H "Authorization: Bearer $TRANSCRIPT_API_KEY"
返回:results (视频列表), playlist_info (title, numVideos, ownerName, viewCount), continuation_token, has_more
| 端点 | 消耗积分 | 返回数据 |
|---|---|---|
| transcript | 1 | 完整字幕 + 元数据 |
| search | 1 | 视频/频道详情 |
| channel/resolve | 免费 | 频道 ID 映射 |
| channel/latest | 免费 | 15 个视频 + 精确统计数据 |
| channel/videos | 1/页 | 每页 100 个视频 |
| channel/search | 1 | 匹配查询的视频 |
| playlist/videos | 1/页 | 每页 100 个视频 |
| 代码 | 处理建议 |
|---|---|
| 402 | 积分不足 — 访问 transcriptapi.com/billing |
| 404 | 未找到资源 |
| 408 | 请求超时 — 请重试一次 |
| 422 | 参数格式无效 |
免费套餐:100 积分,每分钟 300 次请求。