captions
Scannednpx machina-cli add skill ZeroPointRepo/youtube-skills/captions --openclawCaptions
Extract closed captions from YouTube videos via TranscriptAPI.com.
Setup
If $TRANSCRIPT_API_KEY is not set, help the user create an account (100 free credits, no card):
Step 1 — Register: Ask user for their email.
node ./scripts/tapi-auth.js register --email USER_EMAIL
→ OTP sent to email. Ask user: "Check your email for a 6-digit verification code."
Step 2 — Verify: Once user provides the OTP:
node ./scripts/tapi-auth.js verify --token TOKEN_FROM_STEP_1 --otp CODE
API key saved to your shell profile and agent config. Ready to use.
Manual option: transcriptapi.com/signup → Dashboard → API Keys.
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"
| 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 startduration: 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=jsonfor sync'd captions (accessibility tools, timing analysis). - Use
format=textwithinclude_timestamp=falsefor clean reading. - Auto-generated captions are available for most videos; manual CC is higher quality.
Errors
| Code | Meaning | Action |
|---|---|---|
| 402 | No credits | transcriptapi.com/billing |
| 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.
Source
git clone https://github.com/ZeroPointRepo/youtube-skills/blob/main/skills/captions/SKILL.mdView on GitHub Overview
Captions extracts closed captions from YouTube videos via TranscriptAPI. It supports timestamps and multiple languages, helping accessibility, review, quoting, and translation.
How This Skill Works
Use your TranscriptAPI key to request a transcript for a YouTube video via the /api/v2/youtube/transcript endpoint. You pass video_url and format, include_timestamp, and optionally send_metadata; the API returns a structured JSON with text blocks and start/duration, or a plain text version for readability.
When to Use It
- Read or quote exact spoken content from a YouTube video with precise timing
- Provide accessible captions for deaf or hard-of-hearing viewers
- Create translations by exporting multilingual captions for a video
- Review or verify content by timestamped transcripts during QA or editing
- Prepare transcripts for content summaries, citations, or translation workflows
Quick Start
- Step 1: Register for a TranscriptAPI key (email-based signup as described in the setup)
- Step 2: Call the API with curl, e.g. 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'
- Step 3: Use the JSON or text transcript, with timestamps and metadata as needed
Best Practices
- Prefer format=json for synchronized captions used by accessibility tools
- Use format=text for clean reading when timing isn't needed
- Set include_timestamp=true to capture start times and durations
- Use send_metadata=true to attach title/author if you need it for reference
- Choose auto-generated captions for speed, but opt for manual CC for quality
Example Use Cases
- Accessibility: generate synchronized captions for a lecture to assist deaf users
- Content quoting: extract exact lines with timestamps to cite in articles
- Translation: export captions in another language for a multilingual audience
- QA: verify facts by searching the transcript of a product demo
- Documentation: build a summarized transcript for video-based tutorials