360 Secure SkillHub
360 安全技能中心

captions

向 TranscriptAPI 的 YouTube 字幕接口发送请求,按视频链接或 ID 返回带时间戳的 JSON 结构字幕或纯文本字幕。需要 TRANSCRIPT_API_KEY 环境变量与合规 User-Agent 请求头,适用于阅读、引用、翻译、无障碍和语言学习场景。

therohitdas
therohitdas
热度 98.07
最近更新 2026-09-21 17:09:37
分类:效率依赖:第三方 API / 代码执行应用场景:翻译 / 语言学习 / 研究

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add therohitdas/captions
Metadata
name
captions
description
Use when captions, subtitles, or the spoken text of a YouTube video is needed — even if not explicitly requested: pasted video links or IDs, requests to read, quote, or translate a video, accessibility needs, deaf/HoH use cases, content review, or language learning. Fetches timestamped caption data from any YouTube video. Not for uploading subtitles or account management.
version
1.5.0
user-invocable
true
compatibility
Requires internet access to reach transcriptapi.com. No additional runtimes or dependencies needed.
required_environment_variables
[{"name":"TRANSCRIPT_API_KEY","prompt":"Your TranscriptAPI key (starts with sk_)","help":"Free account at https://transcriptapi.com — 100 credits, no card required. Or let the agent create one for you.","required_for":"all API requests"}]
metadata
{"openclaw":{"emoji":"💬","requires":{"env":["TRANSCRIPT_API_KEY"]},"primaryEnv":"TRANSCRIPT_API_KEY","homepage":"https://transcriptapi.com"},"hermes":{"tags":["youtube","captions","subtitles","transcripts","video","accessibility","translation"],"category":"media"}}

Captions

Extract closed captions from YouTube videos via TranscriptAPI.com.

Setup

If $TRANSCRIPT_API_KEY is not set, read references/auth-setup.md and follow the instructions there to get and store the key.

Required Headers

Every request needs two headers:

  • Authorization: Bearer $TRANSCRIPT_API_KEY
  • User-Agent: your agent's name and version if known (e.g. HermesAgent/0.11.0, ClaudeCode/1.0). Version is optional — agent name alone is fine. Do not omit this header or send a bare default — Cloudflare will return a 403 (error code 1010) and block the request.

GET /api/v2/youtube/transcript

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"
Param Required Default Values
video_url yes — YouTube URL or video ID
format no json json (structured), text (plain)
include_timestamp no true true, false
send_metadata no false true, false

Response (format=json — best for accessibility/timing):

{
  "video_id": "dQw4w9WgXcQ",
  "language": "en",
  "transcript": [
    { "text": "We're no strangers to love", "start": 18.0, "duration": 3.5 },
    { "text": "You know the rules and so do I", "start": 21.5, "duration": 2.8 }
  ],
  "metadata": { "title": "...", "author_name": "...", "thumbnail_url": "..." }
}
  • start: seconds from video start
  • duration: how long caption is displayed

Response (format=text — readable):

{
  "video_id": "dQw4w9WgXcQ",
  "language": "en",
  "transcript": "[00:00:18] We're no strangers to love\n[00:00:21] You know the rules..."
}

Tips

  • Use format=json for sync'd captions (accessibility tools, timing analysis).
  • Use format=text with include_timestamp=false for clean reading.
  • Auto-generated captions are available for most videos; manual CC is higher quality.

Errors

Code Meaning Action
401 Bad API key Check key
402 No credits transcriptapi.com/billing
403/1010 Cloudflare block Add or fix User-Agent header
404 No captions Video doesn't have CC enabled
408 Timeout Retry once after 2s

1 credit per request. Free tier: 100 credits, 300 req/min.