名称: youtube-search
描述: 搜索 YouTube 视频与频道,在指定频道内搜索,并获取字幕。当用户询问“查找关于 X 的视频”、“搜索 YouTube”、“查找频道”、“谁制作关于...的视频”、“在 YouTube 上找”或希望发现某主题的 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 用户邮箱
→ 验证码(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 — 请查阅此文档获取最新参数与结构。
全局搜索 YouTube 视频或频道。
curl -s "https://transcriptapi.com/api/v2/youtube/search?q=查询词&type=video&limit=20" \
-H "Authorization: Bearer $TRANSCRIPT_API_KEY"
| 参数 | 必填 | 默认值 | 验证规则 |
|---|---|---|---|
q |
是 | — | 1-200 字符(自动修剪) |
type |
否 | video |
video 或 channel |
limit |
否 | 20 |
1-50 |
视频搜索结果示例:
{
"results": [
{
"type": "video",
"videoId": "dQw4w9WgXcQ",
"title": "Rick Astley - Never Gonna Give You Up",
"channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
"channelTitle": "Rick Astley",
"channelHandle": "@RickAstley",
"channelVerified": true,
"lengthText": "3:33",
"viewCountText": "15亿次观看",
"publishedTimeText": "14年前",
"hasCaptions": true,
"thumbnails": [{ "url": "...", "width": 120, "height": 90 }]
}
],
"result_count": 20
}
频道搜索结果示例 (type=channel):
{
"results": [{
"type": "channel",
"channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
"title": "Rick Astley",
"handle": "@RickAstley",
"url": "https://www.youtube.com/@RickAstley",
"description": "官方频道...",
"subscriberCount": "420万订阅者",
"verified": true,
"rssUrl": "https://www.youtube.com/feeds/videos.xml?channel_id=UC...",
"thumbnails": [...]
}],
"result_count": 5
}
在指定频道内搜索视频。接受 channel 参数,可为 @句柄、频道 URL 或 UC... 格式的 ID。
curl -s "https://transcriptapi.com/api/v2/youtube/channel/search\
?channel=@TED&q=气候变化&limit=30" \
-H "Authorization: Bearer $TRANSCRIPT_API_KEY"
| 参数 | 必填 | 验证规则 |
|---|---|---|
channel |
是 | @句柄、频道 URL 或 UC... ID |
q |
是 | 1-200 字符 |
limit |
否 | 1-50(默认 30) |
最多返回约 30 条结果(YouTube 限制)。响应格式与全局视频搜索相同。
将 @句柄 转换为频道 ID:
curl -s "https://transcriptapi.com/api/v2/youtube/channel/resolve?input=@TED" \
-H "Authorization: Bearer $TRANSCRIPT_API_KEY"
# 1. 搜索视频
curl -s "https://transcriptapi.com/api/v2/youtube/search\
?q=python+网页抓取&type=video&limit=5" \
-H "Authorization: Bearer $TRANSCRIPT_API_KEY"
# 2. 获取结果视频的字幕
curl -s "https://transcriptapi.com/api/v2/youtube/transcript\
?video_url=视频ID&format=text&include_timestamp=true&send_metadata=true" \
-H "Authorization: Bearer $TRANSCRIPT_API_KEY"
| 代码 | 处理建议 |
|---|---|
| 402 | 额度不足 — 前往 transcriptapi.com/billing |
| 404 | 未找到 |
| 408 | 超时 — 建议重试一次 |
| 422 | 频道标识符无效 |
免费版:100 额度,每分钟 300 次请求。