mcpField
C
captions

captions

github.com/zeropointrepoProductivity1.1k733 installsUpdated 5w ago
Repository

About captions

captions is a skill for extracting closed captions from YouTube videos through TranscriptAPI.com. It returns structured caption segments or plain text, with options for timestamps and video metadata.

Key features

  1. 01Extract captions from a video URL or ID
  2. 02Return structured JSON or plain text
  3. 03Include timestamps and segment durations
  4. 04Optionally include video metadata

Use cases

  1. 01Read a video’s captions as text
  2. 02Align caption segments with video timing

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/zeropointrepo/youtube-skills --skill captions

After installing, type/captionsin Claude Code to confirm it loaded.

Bundled filesreferences/auth-setup.mdreferences/curl-examples.md

Details

From the project README

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

GET https://transcriptapi.com/api/v2/youtube/transcript?video_url=VIDEO_URL&format=json&include_timestamp=true&send_metadata=true
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0
ParamRequiredDefaultValues
video_urlyes—YouTube URL or video ID
formatnojsonjson (structured), text (plain)
include_timestampnotruetrue, false
send_metadatanofalsetrue, 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

CodeMeaningAction
401Bad API keyCheck key
402No creditstranscriptapi.com/billing
403/1010Cloudflare blockAdd or fix User-Agent header
404No captionsVideo doesn't have CC enabled
408TimeoutRetry once after 2s

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

Copy-paste examples

Every request in this file as a ready-to-run one-liner: references/curl-examples.md

Comments

Markdown supported