在没有 Google API 配额或 OAuth 的情况下需要 YouTube 数据时使用:字幕、视频元数据、频道信息、搜索结果、播放列表。触发条件:p...
YouTube API.是一项面向实际任务的技能,主要用于YouTube通过TranscriptAPI.com的数据访问-不需要Google API配额.Setup. 如果 $TRANSCRIPT API KEY没有设置,请阅读参考文献/auth-setup.md并遵循那里的指示g.。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
通过 TranscriptAPI.com 访问 YouTube 数据 — 无需消耗 Google API 配额。
若未设置 $TRANSCRIPT_API_KEY,请阅读 references/auth-setup.md 并按其中说明获取并保存该密钥。
每个请求必须包含以下两个请求头:
Bearer $TRANSCRIPT_API_KEYHermesAgent/0.11.0、ClaudeCode/1.0)。版本号为可选字段,仅提供 agent 名称亦可。请勿省略此请求头,也不得使用空值或默认的裸值(bare default),否则 Cloudflare 将返回 403 错误(错误码 1010)并拒绝请求。完整 OpenAPI 规范:transcriptapi.com/openapi.json — 请以此为准查阅最新参数与数据结构定义。
所有端点均以如下路径为前缀:https://transcriptapi.com/api/v2/youtube/...
频道相关端点接受 channel 参数,其值可以是 @handle、频道 URL 或 UC... 格式 ID;播放列表相关端点接受 playlist 参数,其值可以是播放列表 URL 或 ID。
| 端点 | HTTP 方法 | 调用成本 |
|---|---|---|
/transcript?video_url=ID |
GET | 1 |
/search?q=QUERY&type=video |
GET | 1 |
/channel/resolve?input=@handle |
GET | 免费 |
/channel/latest?channel=@handle |
GET | 免费 |
/channel/videos?channel=@handle |
GET | 1/页 |
/channel/search?channel=@handle&q=Q |
GET | 1 |
/playlist/videos?playlist=PL_ID |
GET | 1/页 |
搜索视频:
curl -s "https://transcriptapi.com/api/v2/youtube/search ?q=python+tutorial&type=video&limit=10" -H "Authorization: Bearer $TRANSCRIPT_API_KEY" -H "User-Agent: YourAgent/1.0"
获取字幕文本:
curl -s "https://transcriptapi.com/api/v2/youtube/transcript ?video_url=dQw4w9WgXcQ&format=text&include_timestamp=true&send_metadata=true" -H "Authorization: Bearer $TRANSCRIPT_API_KEY" -H "User-Agent: YourAgent/1.0"
解析频道 handle(免费):
curl -s "https://transcriptapi.com/api/v2/youtube/channel/resolve?input=@TED" -H "Authorization: Bearer $TRANSCRIPT_API_KEY" -H "User-Agent: YourAgent/1.0"
获取最新视频(免费):
curl -s "https://transcriptapi.com/api/v2/youtube/channel/latest?channel=@TED" -H "Authorization: Bearer $TRANSCRIPT_API_KEY" -H "User-Agent: YourAgent/1.0"
浏览频道上传内容(分页):
curl -s "https://transcriptapi.com/api/v2/youtube/channel/videos?channel=@NASA" -H "Authorization: Bearer $TRANSCRIPT_API_KEY" -H "User-Agent: YourAgent/1.0" # 使用响应中的 continuation token 获取下一页结果
浏览播放列表(分页):
curl -s "https://transcriptapi.com/api/v2/youtube/playlist/videos?playlist=PL_PLAYLIST_ID" -H "Authorization: Bearer $TRANSCRIPT_API_KEY" -H "User-Agent: YourAgent/1.0"
| 字段 | 规则 |
|---|---|
channel |
@handle、频道 URL 或 UC... 格式 ID |
playlist |
播放列表 URL 或 ID(支持 PL/UU/LL/FL/OL 前缀) |
q(搜索) |
长度为 1–200 字符 |
limit |
取值范围为 1–50 |
continuation |
非空字符串 |
| Google YouTube Data API | TranscriptAPI | |
|---|---|---|
| 配额限制 | 每日 10,000 单位(约支持 100 次搜索) | 基于信用额度计费,无每日上限 |
| 初始化配置 | 需 OAuth + API 密钥 + Google Cloud 项目 | 仅需一个 API 密钥 |
| 字幕支持 | 不提供字幕数据 | 核心功能 |
| 定价 | 超额部分 $0.0015/单位 | $5 / 1000 信用点 |
| 状态码 | 含义 | 建议操作 |
|---|---|---|
| 401 | API 密钥无效 | 检查密钥是否正确 |
| 402 | 信用点不足 | 访问 transcriptapi.com/billing 充值 |
| 403/1010 | Cloudflare 拦截 | 检查并修正 User-Agent 请求头 |
| 404 | 资源未找到 | 请求的目标资源不存在 |
| 408 | 请求超时(可重试) | 等待 2 秒后重试一次 |
| 422 | 参数校验失败 | 检查参数格式是否符合要求 |
| 429 | 请求频率超限 | 暂停请求,遵守响应头中 Retry-After 指定的等待时间 |
免费套餐:100 信用点,最高 300 次请求/分钟;入门版($5/月):1,000 信用点。