Skip to main content
skill CX Codex

video-transcript — Claude Code skill: what it does, how to install

Extracts captions and transcripts from YouTube videos using a URL or video ID. Useful for generating video summaries, quotes, or translations quickly.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add ZeroPointRepo/youtube-skills --skill video-transcript -a claude-code
Open on GitHub

What video-transcript does

This skill queries TranscriptAPI to fetch video transcripts as plain text or structured JSON with timestamps. It handles standard YouTube videos along with YouTube Shorts. If requested, it also pulls metadata such as video titles, author names, and thumbnails.

An environment variable named TRANSCRIPT_API_KEY is required. Free accounts get 100 credits without entering a card. You must send a User-Agent header identifying your agent, or Cloudflare blocks the request with a 403 status code. The skill only extracts text and does not handle video uploads or account management.

What it helps with

  • summarize long video content into bullet points
  • pull quotes with exact timestamps from YouTube
  • translate video captions to another language
  • extract text from YouTube Shorts without a browser

Example prompts for the agent

  • Summarize the key points from video dQw4w9WgXcQ
  • Get the transcript with timestamps as JSON for video ID dQw4w9WgXcQ
  • Translate the captions of video dQw4w9WgXcQ into Spanish

How to install video-transcript

1Skills CLI (Vercel)

npx skills add ZeroPointRepo/youtube-skills --skill video-transcript -a claude-code

2Manually: put the files in place

~/.claude/skills/video-transcript/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/video-transcript/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about video-transcript

How do I install video-transcript in Claude Code?

Run npx skills add ZeroPointRepo/youtube-skills --skill video-transcript -a claude-code. Then set the TRANSCRIPT_API_KEY environment variable before sending requests.

What does video-transcript do?

It retrieves transcripts and captions for YouTube videos and Shorts, returning plain text or timestamped JSON via TranscriptAPI.

Why does the API return a 403 error?

Cloudflare blocks requests that omit a proper User-Agent header. Always provide your agent name in the request headers.

Source text

SKILL.md · MIT
---
name: video-transcript
description: "Use when video content needs to be extracted as text: pasted YouTube links or IDs, requests to transcribe, summarize, quote, translate, convert video to text, or extract information from video content. Also use when a user shares a video URL without explanation and wants to know what it says. Not for uploads or account management."
version: "1.5.1"
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","transcripts","video","captions","text-extraction","summarization"],"category":"media"}}
---

# Video Transcript

Extract transcripts from videos via [TranscriptAPI.com](https://transcriptapi.com).

## Setup

If `$TRANSCRIPT_API_KEY` is not set, read [references/auth-setup.md](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

```bash
curl -s "https://transcriptapi.com/api/v2/youtube/transcript\
?video_url=VIDEO_URL&format=text&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 11-char video ID        |
| `format`            | no       | `json`  | `json` (structured), `text` (readable) |
| `include_timestamp` | no       | `true`  | `true`, `false`                        |
| `send_metadata`     | no       | `false` | `true`, `false`                        |

Accepted URL formats:

- `https://www.youtube.com/watch?v=VIDEO_ID`
- `https://youtu.be/VIDEO_ID`
- `https://youtube.com/shorts/VIDEO_ID`
- Bare video ID: `dQw4w9WgXcQ`

**Response** (`format=text&send_metadata=true`):

```json
{
  "video_id": "dQw4w9WgXcQ",
  "language": "en",
  "transcript": "[00:00:18] We're no strangers to love\n[00:00:21] You know the rules...",
  "metadata": {
    "title": "Rick Astley - Never Gonna Give You Up",
    "author_name": "Rick Astley",
    "author_url": "https://www.youtube.com/@RickAstley",
    "thumbnail_url": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg"
  }
}
```

**Response** (`format=json`):

```json
{
  "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 }
  ]
}
```

## Tips

- Summarize long transcripts into key points first, offer full text on request.
- Use `format=json` when you need precise timestamps for quoting specific moments.
- Use `send_metadata=true` to get video title and channel for context.
- Works with YouTube Shorts too.

## Errors

| Code     | Meaning          | Action                                         |
| -------- | ---------------- | ---------------------------------------------- |
| 401      | Bad API key      | Check key or re-setup                          |
| 402      | No credits       | Top up at transcriptapi.com/billing            |
| 403/1010 | Cloudflare block | Add or fix User-Agent header                   |
| 404      | No transcript    | Video may not have captions enabled            |
| 408      | Timeout          | Retry once after 2s                            |

1 credit per successful request. Errors don't consume credits. Free tier: 100 credits, 300 req/min.

© ZeroPointRepo · MIT · ZeroPointRepo/youtube-skills

Similar skills

All skills for Notes, tasks and projects →

From the same set12

youtube-full Enables agents to search YouTube, retrieve timestamped video transcripts, and inspect channel metadata via TranscriptAPI. Built for developer assistants handling video research. CX Codex +1 2,200installs youtube-search This skill searches YouTube for videos, channels and playlists and pulls transcripts through TranscriptAPI. Useful when your agent needs video material instead of written sources. CX Codex +1 986installs transcriptapi Fetch YouTube transcripts and search for videos or channels. Use it to gather material for summaries, translations, or research based on video content. CX Codex +1 829installs transcript Fetches spoken-text transcripts from YouTube videos for summaries, translations, quotes and fact checks. It activates when a video is the source. CX Codex +1 816installs subtitles Extracts subtitles and spoken transcripts from YouTube videos by URL or video ID. Useful for translation, reading along, and language study. CX Codex +1 810installs youtube-api Fetch transcripts, video and channel details, search results, and playlist contents through TranscriptAPI. Use it to research videos or browse a creator’s uploads. CX Codex +1 772installs youtube-channels Browse YouTube channels from an @handle, URL, or channel ID. Use it to inspect recent uploads, video feeds, Shorts, and live streams. CX Codex +1 748installs captions Fetches spoken text and captions from YouTube videos with timestamps. Use it to read, translate, review, or make video content more accessible. CX Codex +1 726installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor