← Back to Skills Marketplace
therohitdas

Captions

by Rohit Das · GitHub ↗ · v1.4.1
cross-platform ✓ Security Clean
3470
Downloads
1
Stars
3
Active Installs
12
Versions
Install in OpenClaw
/install captions
Description
Extract closed captions and subtitles from YouTube videos. Use when the user asks for captions, closed captions, CC, accessibility text, or wants to read what was said in a video. Supports timestamps and multiple languages. Great for deaf/HoH accessibility, content review, quoting, and translation.
README (SKILL.md)

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\
[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.

Usage Guidance
This skill appears internally consistent with its purpose. Before installing: (1) confirm you trust transcriptapi.com (network requests go to that domain); (2) be aware the skill may prompt you for an email and a 6-digit OTP to create an account and will save the returned API key into ~/.openclaw/openclaw.json (it backs up the file first). If you prefer not to have the agent handle your API key, create an API key manually at transcriptapi.com/signup and set TRANSCRIPT_API_KEY yourself in your environment or shell profile. Review the backup (~/.openclaw/openclaw.json.bak) if you have concerns about changes to your agent config.
Capability Analysis
Type: OpenClaw Skill Name: captions Version: 1.4.1 The skill's purpose is to extract captions from YouTube videos using TranscriptAPI.com. Its core functionality involves an authentication flow that saves an API key to `~/.openclaw/openclaw.json`. This file write is explicitly documented in `SKILL.md` and implemented in `scripts/tapi-auth.js` to specifically update the `skills.entries.transcriptapi.apiKey` field. The script also backs up the existing config file. There is no evidence of data exfiltration, malicious execution, persistence mechanisms, or prompt injection attempts against the agent. The actions are transparent, scoped to the skill's operation, and align with its stated purpose.
Capability Assessment
Purpose & Capability
Name/description (extract captions from YouTube) align with required items: node runtime, TRANSCRIPT_API_KEY, and calls to transcriptapi.com. The primary credential and declared config path are coherent with a skill that stores an API key for runtime use.
Instruction Scope
SKILL.md instructs the agent to help register a user (collect email and OTP) via scripts/tapi-auth.js and to call transcriptapi.com for transcripts. These actions are necessary for the described functionality, but they do involve collecting an email and a one-time OTP and then writing an API key into the OpenClaw config — users should be aware the agent will handle these secrets.
Install Mechanism
No install spec (instruction-only) and only a small included CLI script. Requiring the node binary is proportionate. Nothing is downloaded from untrusted URLs and the script talks to the declared domain (transcriptapi.com).
Credentials
Only TRANSCRIPT_API_KEY is required (declared as primaryEnv), which is appropriate. The skill writes that key into ~/.openclaw/openclaw.json for agent use — storing credentials in agent config is expected for runtime but is a sensitive action the user should consent to or perform manually if preferred.
Persistence & Privilege
always:false (normal). The script modifies the agent-specific config file (~/.openclaw/openclaw.json) and creates a .bak backup before writing. This is limited in scope (does not alter other skills or system-wide settings), but it does give the skill persistent access to the saved API key.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install captions
  3. After installation, invoke the skill by name or use /captions
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.4.1
ClawHub variant: minimal tapi-auth.js v3.0.0, only writes to ~/.openclaw/openclaw.json
v1.4.0
- Adds detailed documentation of all file locations where the API key is saved for persistent and background use. - Explains automatic file backup (`<file>.bak`) before modifying shell/config files that store the API key. - Describes OpenClaw config integration for seamless key access across agents and sessions. - Updates metadata to declare all config/environment files written by the skill.
v1.3.4
- Metadata YAML formatting was compacted for consistency. - No functional or user-facing changes; only SKILL.md formatting was updated.
v1.3.3
**Streamlined authentication flow and metadata updates.** - Simplified the registration and verification process—no more manual password management; OTP-based authentication only. - Environment variable setup automatically saves API key to your shell profile for easy access. - Updated requirements and metadata to include Node.js binary detection. - Added `user-invocable: true` for easier skill activation by users. - Revised setup instructions for clarity and platform compatibility.
v1.3.2
Fix: markdown formatting + blank line between password warning and Step 2
v1.3.1
Fix: register response now echoes password + pre-filled next_command to prevent agents losing the password between register and verify steps
v1.3.0
Bundled auth script for agent-driven signup flow
v1.2.2
Fixed code block widths for proper rendering
v1.2.1
Removed separators
v1.2.0
Cleaned docs — removed internal implementation details
v1.1.0
Full v2 API support: search, channels, playlists. Accurate schemas, validation, cache TTLs.
v1.0.0
Initial release — YouTube transcripts via TranscriptAPI.com
Metadata
Slug captions
Version 1.4.1
License
All-time Installs 3
Active Installs 3
Total Versions 12
Frequently Asked Questions

What is Captions?

Extract closed captions and subtitles from YouTube videos. Use when the user asks for captions, closed captions, CC, accessibility text, or wants to read what was said in a video. Supports timestamps and multiple languages. Great for deaf/HoH accessibility, content review, quoting, and translation. It is an AI Agent Skill for Claude Code / OpenClaw, with 3470 downloads so far.

How do I install Captions?

Run "/install captions" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Captions free?

Yes, Captions is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Captions support?

Captions is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Captions?

It is built and maintained by Rohit Das (@therohitdas); the current version is v1.4.1.

💬 Comments