需要结构化的YouTube数据时使用:粘贴的视频/频道/播放列表链接、分析用的字幕/转录文本、视频元数据、频道上传历史、搜索结果等
YouTube Data.是一项面向实际任务的技能,主要用于YouTube数据访问通过TranscriptAPI.com——Google的YouTube数据API的轻量级替代. .Setup. 如果$TRANSCRIPT API KEY没有设置,阅读参考文献/auth-setup.md并跟踪.。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
通过 TranscriptAPI.com 访问 YouTube 数据 —— Google YouTube Data API 的轻量级替代方案。
若未设置 $TRANSCRIPT_API_KEY,请阅读 references/auth-setup.md 并按其中说明获取并存储该密钥。
每次请求均需包含以下两个请求头:
Bearer $TRANSCRIPT_API_KEYHermesAgent/0.11.0、ClaudeCode/1.0)。版本号为可选字段,仅提供 agent 名称亦可。请勿省略此请求头,也不得发送空值或默认的通用 User-Agent;否则 Cloudflare 将返回 403 错误(错误码 1010)并拒绝该请求。完整 OpenAPI 规范:transcriptapi.com/openapi.json — 请以此为准查阅最新支持的参数与数据结构定义。
curl -s "https://transcriptapi.com/api/v2/youtube/transcript ?video_url=VIDEO_URL&format=json&include_timestamp=true&send_metadata=true" -H "Authorization: Bearer $TRANSCRIPT_API_KEY" -H "User-Agent: YourAgent/1.0"
响应示例:
{
"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=QUERY&type=video&limit=20" -H "Authorization: Bearer $TRANSCRIPT_API_KEY" -H "User-Agent: YourAgent/1.0"
视频结果字段: videoId、title、channelId、channelTitle、channelHandle、channelVerified、lengthText、viewCountText、publishedTimeText、hasCaptions、thumbnails
频道结果字段(当 type=channel 时): channelId、title、handle、url、description、subscriberCount、verified、rssUrl、thumbnails
频道相关接口接受 channel 参数,其值可以是 @handle、频道 URL 或以 UC... 开头的频道 ID,无需预先解析。
将 handle 解析为频道 ID(免费):
curl -s "https://transcriptapi.com/api/v2/youtube/channel/resolve?input=@TED" -H "Authorization: Bearer $TRANSCRIPT_API_KEY" -H "User-Agent: YourAgent/1.0"
返回:{"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" -H "User-Agent: YourAgent/1.0"
返回内容包括:channel 信息,以及 results 数组,其中每项包含 videoId、title、published(ISO 格式时间戳)、viewCount(精确数值)、description 和 thumbnail 字段。
获取频道全部视频(分页,每页消耗 1 点积分):
curl -s "https://transcriptapi.com/api/v2/youtube/channel/videos?channel=@NASA" -H "Authorization: Bearer $TRANSCRIPT_API_KEY" -H "User-Agent: YourAgent/1.0"
每页返回 100 条视频,并附带 continuation_token 用于分页。
在指定频道内执行搜索(消耗 1 点积分):
curl -s "https://transcriptapi.com/api/v2/youtube/channel/search ?channel=@TED&q=QUERY&limit=30" -H "Authorization: Bearer $TRANSCRIPT_API_KEY" -H "User-Agent: YourAgent/1.0"
支持传入 playlist 参数,其值可以是 YouTube 播放列表 URL 或播放列表 ID。
curl -s "https://transcriptapi.com/api/v2/youtube/playlist/videos?playlist=PL_ID" -H "Authorization: Bearer $TRANSCRIPT_API_KEY" -H "User-Agent: YourAgent/1.0"
返回字段包括: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 条视频 |
| HTTP 状态码 | 含义 | 建议操作 |
|---|---|---|
| 401 | API 密钥无效 | 检查密钥是否正确 |
| 402 | 积分不足 | 访问 transcriptapi.com/billing 充值 |
| 403/1010 | Cloudflare 拦截 | 确认已设置或修正 User-Agent 请求头 |
| 404 | 资源未找到 | 请求的资源不存在 |
| 408 | 请求超时 | 建议重试一次 |
| 422 | 参数校验失败 | 检查请求参数格式是否符合要求 |
免费套餐:100 点积分,最高 300 次请求/分钟。