New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

The spoken content of a YouTube video is needed

Transcript

by ZeroPointRepo · MIT license · ★ 945 on GitHub · v1.5.1 · updated Sep 22

Transcript cover

Use when the spoken content of a YouTube video is needed — even if not explicitly requested: pasted video links or IDs, requests to summarize, quote, transcribe, translate, fact-check, or extract anything from a video. Also use for…

---
name: transcript
description: "Use when the spoken content of a YouTube video is needed — even if not explicitly requested: pasted video links or IDs, requests to summarize, quote, transcribe, translate, fact-check, or extract anything from a video. Also use for research or learning when a video is the source. 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","summarization","research","translation"],"category":"media"}}
---

# Transcript

Fetch video transcripts via [TranscriptAPI.com](https://transcriptapi.com).

Overview

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

Manual install (npx, ZIP)
Claude Codenpx skills add ZeroPointRepo/youtube-skills --skill transcript -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/ZeroPointRepo/youtube-skills/tar.gz/4f7994b94e7d \ | tar -xz -C ~/.claude/skills --strip-components=2 youtube-skills-4f7994b94e7d/skills/transcript
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/bb7f1bce3b240d62a512/transcript.zip" -OutFile "$env:TEMP\transcript.zip"; Expand-Archive "$env:TEMP\transcript.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md4.5 KB
  • references/2 files · 7.6 KB
Read the files here
ZeroPointRepo/4f7994b3 files
SKILL.md
Show the full text101 lines

Transcript

Fetch video transcripts 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=text&include_timestamp=true&send_metadata=true
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0
Param Required Default Values
video_url yes — YouTube URL or 11-char video ID
format no json json, text
include_timestamp no true true, false
send_metadata no false true, false

Accepts: full URLs (youtube.com/watch?v=ID), short URLs (youtu.be/ID), shorts (youtube.com/shorts/ID), or bare video IDs.

Default: Always use format=text&include_timestamp=true&send_metadata=true unless user specifies otherwise.

Response (format=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 }
  ],
  "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=text):

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

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
429 Rate limited Wait and retry

Tips

  • For long videos, summarize key points first, offer full transcript on request.
  • Use format=json when you need precise timestamps for quoting specific moments.
  • Use include_timestamp=false for clean text suitable for translation or analysis.
  • 1 credit per successful request. Errors don't cost credits.
  • 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

1---
2name: transcript
3description: "Use when the spoken content of a YouTube video is needed — even if not explicitly requested: pasted video links or IDs, requests to summarize, quote, transcribe, translate, fact-check, or extract anything from a video. Also use for research or learning when a video is the source. Not for uploads or account management."
4version: "1.5.1"
5user-invocable: true
6compatibility: Requires internet access to reach transcriptapi.com. No additional runtimes or dependencies needed.
7required_environment_variables:
8 - name: TRANSCRIPT_API_KEY
9 prompt: Your TranscriptAPI key (starts with sk_)
10 help: Free account at https://transcriptapi.com — 100 credits, no card required. Or let the agent create one for you.
11 required_for: all API requests
12metadata: {"openclaw":{"emoji":"▶️","requires":{"env":["TRANSCRIPT_API_KEY"]},"primaryEnv":"TRANSCRIPT_API_KEY","homepage":"https://transcriptapi.com"},"hermes":{"tags":["youtube","transcripts","video","captions","summarization","research","translation"],"category":"media"}}
13---
14 
15# Transcript
16 
17Fetch video transcripts via [TranscriptAPI.com](https://transcriptapi.com).
18 
19## Setup
20 
21If `$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.
22 
23## Required Headers
24 
25Every request needs two headers:
26 
27- **Authorization:** `Bearer $TRANSCRIPT_API_KEY`
28- **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.
29 
30## GET /api/v2/youtube/transcript
31 
32```http
33GET https://transcriptapi.com/api/v2/youtube/transcript?video_url=VIDEO_URL&format=text&include_timestamp=true&send_metadata=true
34Authorization: Bearer $TRANSCRIPT_API_KEY
35User-Agent: YourAgent/1.0
36```
37 
38| Param | Required | Default | Values |
39| ------------------- | -------- | ------- | ------------------------------- |
40| `video_url` | yes | — | YouTube URL or 11-char video ID |
41| `format` | no | `json` | `json`, `text` |
42| `include_timestamp` | no | `true` | `true`, `false` |
43| `send_metadata` | no | `false` | `true`, `false` |
44 
45Accepts: full URLs (`youtube.com/watch?v=ID`), short URLs (`youtu.be/ID`), shorts (`youtube.com/shorts/ID`), or bare video IDs.
46 
47**Default:** Always use `format=text&include_timestamp=true&send_metadata=true` unless user specifies otherwise.
48 
49**Response** (`format=json`):
50 
51```json
52{
53 "video_id": "dQw4w9WgXcQ",
54 "language": "en",
55 "transcript": [
56 { "text": "We're no strangers to love", "start": 18.0, "duration": 3.5 },
57 { "text": "You know the rules and so do I", "start": 21.5, "duration": 2.8 }
58 ],
59 "metadata": {
60 "title": "Rick Astley - Never Gonna Give You Up",
61 "author_name": "Rick Astley",
62 "author_url": "https://www.youtube.com/@RickAstley",
63 "thumbnail_url": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg"
64 }
65}
66```
67 
68**Response** (`format=text`):
69 
70```json
71{
72 "video_id": "dQw4w9WgXcQ",
73 "language": "en",
74 "transcript": "[00:00:18] We're no strangers to love\n[00:00:21] You know the rules...",
75 "metadata": {...}
76}
77```
78 
79## Errors
80 
81| Code | Meaning | Action |
82| -------- | ---------------- | ---------------------------------------------- |
83| 401 | Bad API key | Check key or re-setup |
84| 402 | No credits | Top up at transcriptapi.com/billing |
85| 403/1010 | Cloudflare block | Add or fix User-Agent header |
86| 404 | No transcript | Video may not have captions enabled |
87| 408 | Timeout | Retry once after 2s |
88| 429 | Rate limited | Wait and retry |
89 
90## Tips
91 
92- For long videos, summarize key points first, offer full transcript on request.
93- Use `format=json` when you need precise timestamps for quoting specific moments.
94- Use `include_timestamp=false` for clean text suitable for translation or analysis.
95- 1 credit per successful request. Errors don't cost credits.
96- Free tier: 100 credits, 300 req/min.
97 
98## Copy-paste examples
99 
100Every request in this file as a ready-to-run one-liner: [references/curl-examples.md](references/curl-examples.md)
101 
View all files on GitHub →

Details

Version
1.5.1
Updated
Sep 22, 2026
License
MIT
Stars on the repo
★ 945
Checked
Source
ZeroPointRepo/youtube-skills ↗
Creator
ZeroPointRepo · 12 listings
View creator

Similar skills

See all →
SkillReverse engineer native, managed, Electron/JavaScriptREAmorluto/rea · by morlutoReverse engineer native, managed, Electron/JavaScript, packaged, firmware, and browser targets with REA. Use shipped-artifact or requested runtime evidence to explain features, compare versions, decompile code, or guide a reconstruction. Skip REA for ordinary source-repository architecture analysis.★ 316k GitHub starsSkillBrainstorms ideas into designs before any creative workBrainstorming Ideas Into Designsobra/superpowers · by obraYou MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.★ 290k GitHub starsSkillRequires technical rigor and verificationCode Review Receptionobra/superpowers · by obraUse when receiving code review feedback, before implementing suggestions, especially if feedback seems unclear or technically questionable - requires technical rigor and verification, not performative agreement or blind implementation★ 290k GitHub starsSkillDiagnosis loop for hard bugs and performance regressionsDiagnosing bugsmattpocock/skills · by mattpocockDiagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.★ 267k GitHub starsSkillImplement the result of /to-spec and /to-tickets in codeImplement specmattpocock/skills · by mattpocockImplement the result of /to-spec and /to-tickets in code.★ 267k GitHub starsSkillWriting a PR bodymattpocock/skills · by mattpocockUse when writing a PR body.★ 267k GitHub stars

More from ZeroPointRepo

SkillCaptions, subtitles, or the spoken text of a YouTube videoZeroPointRepo/youtube-skills · by ZeroPointRepoUse 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.★ 945 GitHub starsSkillSubtitles or the spoken text of a YouTube video is neededZeroPointRepo/youtube-skills · by ZeroPointRepoUse when subtitles or the spoken text of a YouTube video is needed: pasted video links or IDs, requests to translate a video, read along, follow foreign-language content, or extract what was said. Also use for language learning or accessibility. Fetches timestamped subtitles from any YouTube video. Not for uploading subtitles or account management.★ 945 GitHub starsSkillYouTube is or could be relevantTranscriptapiZeroPointRepo/youtube-skills · by ZeroPointRepoUse when YouTube is or could be relevant — even if not mentioned: pasted video/channel/playlist links, video IDs, @handles, creator lookups, video summaries, quotes, translations, topic research, tutorials, talks, lectures, expert discussions, product reviews, how-to guides, new product announcements, or anything where video content is fresher or richer than text search. Covers transcripts, video/channel search, channel browsing, playlists, and within-channel search. Not for uploads, account management, or written-source-only research.★ 945 GitHub starsSkillVideo content needs to be extracted as text: pasted YouTubeVideo transcriptZeroPointRepo/youtube-skills · by ZeroPointRepoUse 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.★ 945 GitHub starsSkillYouTube data is needed without Google API quotas or OAuthYoutube APIZeroPointRepo/youtube-skills · by ZeroPointRepoUse when YouTube data is needed without Google API quotas or OAuth setup: transcripts, video metadata, channel info, search results, playlists. Triggers on pasted YouTube links, creator names, @handles, topic research, video summaries, channel browsing, or any request where YouTube content would help — even if not mentioned explicitly. Not for uploads, account management, or written-source-only research.★ 945 GitHub starsSkillA YouTube channel is the focus: pasted @handles or channelYoutube channelsZeroPointRepo/youtube-skills · by ZeroPointRepoUse when a YouTube channel is the focus: pasted @handles or channel URLs, requests to browse a creator's uploads, see what a channel has posted recently, search within a channel, or resolve a handle to a channel ID. Also use when the user names a creator and wants to explore their content or monitor their uploads. Not for creating channels or account management.★ 945 GitHub stars