Communitygithub.com

YouTube 字幕与搜索技能

为 FrontierAgent 提供 YouTube 视频字幕获取、视频搜索和频道查询功能,基于 TranscriptAPI 的 REST API 实现。

YouTube 字幕与搜索技能 是什么?

该技能为 AI 代理(如 FrontierAgent)提供读取 YouTube 视频内容的能力,通过将视频、频道或搜索查询转化为带时间戳的文本,使传统上无法直接处理视频资料的研究代理能够引用视频内容。所有操作均通过一个 REST API 完成,无需安装 `yt-dlp`、无头浏览器或其他二进制文件,部署成本极低。支持的平台包括 FrontierAgent,要求配置环境变量 `TRANSCRIPT_API_KEY`,用户需在 [TranscriptAPI](https://transcriptapi.com) 注册获取密钥(免费版提供 100 积分且无需信用卡)。技能提供三个核心 API 端点:获取视频字幕(支持 text 和 JSON 格式,JSON 包含时间戳)、搜索视频或频道(支持 1–50 条结果)、解析频道句柄(免费,无积分消耗)。同时内置故障排查表,帮助代理处理认证失败、Cloudflare 封禁、视频无字幕等常见错误。对于较长字幕,建议将文本写入文件后分段读取,避免输出预算溢出。该技能还强调直接引用字幕而非转述,并提醒自动生成字幕可能存在识别错误,需结合视频标题或描述进行验证。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add ZeroPointRepo/transcriptapi-frontieragent-skill

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

YouTube 字幕与搜索

视频是大多数研究代理无法读取的主要来源。本技能可将任意 YouTube 视频、频道或搜索查询转换为带时间戳的可引用文本。

所有操作均通过一个 REST API 完成。无需 yt-dlp、无头浏览器或任何二进制文件。

设置

API 需要在环境变量中配置密钥。向 FrontierAgent 的 .env 文件添加一行:

echo 'TRANSCRIPT_API_KEY=sk_your_key_here' >> .env

在 https://transcriptapi.com 获取密钥。免费版提供 100 积分,无需信用卡。 FrontierAgent 启动时会加载 .env 文件,shell 命令会继承其中的环境变量,因此 $TRANSCRIPT_API_KEY 可在下方所有命令中使用。

如果该变量为空,请停止操作并告知用户添加密钥。不要猜测密钥,也不要将密钥值打印给用户。

每个请求都需要两个请求头

Authorization: Bearer $TRANSCRIPT_API_KEY 和一个真实的 User-Agent。缺少或使用默认的 User-Agent 会收到 Cloudflare 的 403 响应,错误代码 1010。

获取字幕

消耗 1 积分。video_url 接受完整的 YouTube URL 或 11 位视频 ID。

curl -sS -G "https://transcriptapi.com/api/v2/youtube/transcript" \
  --data-urlencode "video_url=$VIDEO" \
  --data-urlencode "format=text" \
  --data-urlencode "send_metadata=true" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
  -H "User-Agent: FrontierAgent/1.0"

当需要逐段的 start 和 duration 值(例如引用时间戳)时,请使用 format=json。JSON 格式为: {"video_id": "...", "language": "en", "transcript": [{"text": "...", "start": 18.0, "duration": 3.5}]}。

搜索视频或频道

消耗 1 积分。type 取 video 或 channel,limit 取值范围为 1 到 50。

curl -sS -G "https://transcriptapi.com/api/v2/youtube/search" \
  --data-urlencode "q=$QUERY" \
  --data-urlencode "type=video" \
  --data-urlencode "limit=20" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
  -H "User-Agent: FrontierAgent/1.0"

解析频道句柄

免费,不消耗积分。接受 @handle、频道 URL 或 UC... 格式的 ID。

curl -sS -G "https://transcriptapi.com/api/v2/youtube/channel/resolve" \
  --data-urlencode "input=@TED" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
  -H "User-Agent: FrontierAgent/1.0"

其他频道端点可直接接受相同的 channel 值,因此通常无需先进行解析。

辅助脚本

scripts/transcript.sh 封装了字幕调用,当密钥缺失时会显式报错。

bash plugins/skills/youtube-transcripts/scripts/transcript.sh "https://www.youtube.com/watch?v=nm1TxQj9IsQ"

调用失败的处理

状态码含义处理方式
401密钥错误或缺失请用户检查 .env 中的 TRANSCRIPT_API_KEY
403Cloudflare 拦截了请求未添加 User-Agent 头。添加后重试
404视频没有字幕明确告知用户。不要伪造字幕
422视频 ID 或 URL 格式错误从用户提供的链接中重新读取 ID
429积分不足或触发限流报告情况。不要循环重试

长字幕可能超出工具输出预算。请请求 format=text,将正文写入文件 > outputs/transcript.txt,然后读取所需部分。

处理返回结果

当精确措辞承载了主张时,请直接引用字幕而非转述。自动字幕可能存在识别错误,因此遇到异常的技术术语时应保持怀疑,并在基于其构建论点之前对照视频标题或描述进行验证。

相关技能