Agent skill

YouTube TranscriptAPI

by ZeroPointRepo in ZeroPointRepo/youtube-skills

Pulls YouTube transcripts, searches videos and channels and browses playlists through the TranscriptAPI service with a single API key.

MITAuto-check passedKnowledge Management

Install YouTube TranscriptAPI

skills CLI
$ npx skills add ZeroPointRepo/youtube-skills --skill transcriptapi -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ZeroPointRepo/youtube-skills transcriptapi --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ZeroPointRepo/youtube-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/transcriptapi .claude/skills/transcriptapi && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
transcriptapi
GitHub stars
1k
Used in
1 other repo
Token cost
~3k tokens
SKILL.md length
595 words
Files
3 (incl. references)
Skills in repo
12
Repo updated
First seen
Licence
MIT

At a glance

Pulls YouTube transcripts, searches videos and channels and browses playlists through the TranscriptAPI service with a single API key.

  • Summarizing or quoting a YouTube video from its transcript
  • SKILL.md covers Setup, Required Headers, API Reference and Auth, plus 5 more sections
  • Reaches transcriptapi.com and youtube.com; needs TRANSCRIPT_API_KEY
  • Searching YouTube for talks, tutorials or reviews on a topic

What it does

The skill talks to transcriptapi.com with a key held in TRANSCRIPT_API_KEY, and if the variable is missing the agent follows references/auth-setup.md to obtain and store one. Every request carries a bearer Authorization header and a User-Agent naming the agent, because a bare default is blocked by Cloudflare with a 403. Calls cost credits, and the transcript and search endpoints cost one each.

The transcript endpoint takes a video URL, a short link, a Shorts URL or a bare 11-character ID and returns JSON or plain text with optional timestamps and metadata. Search finds videos or channels, channel endpoints accept an @handle, channel URL or UC ID without resolving it first, and playlist endpoints take a URL or ID. The OpenAPI spec is the reference for current parameters, and references/curl-examples.md has sample calls. It fits any request where YouTube content may help, but not uploads, account management or research limited to written sources.

When your agent uses it

  • Summarizing or quoting a YouTube video from its transcript
  • Searching YouTube for talks, tutorials or reviews on a topic
  • Listing a channel's videos or searching within one channel
  • Translating or researching from video content that is newer than written sources

Example prompts

  • “Summarize this YouTube talk: https://youtu.be/dQw4w9WgXcQ.”
  • “Find recent videos about Rust async runtimes and pull the transcript of the top result.”
  • “Search the @veritasium channel for videos about eigenvalues.”
  • “List the videos in this playlist and give me a one-line summary of each.”

Requirements

  • A TranscriptAPI key in TRANSCRIPT_API_KEY
  • Internet access to reach transcriptapi.com
  • Compatibility (from SKILL.md): Requires internet access to reach transcriptapi.com. No additional runtimes or dependencies needed.

What it can do on your machine

Read from SKILL.md and the folder at commit 4f7994b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are http and json).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • transcriptapi.com
    • youtube.com
    • youtu.be

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • TRANSCRIPT_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Requires internet access to reach transcriptapi.com. No additional runtimes or dependencies needed.

    From compatibility in the SKILL.md frontmatter.

Context cost

YouTube TranscriptAPI loads about 3k tokens when it runs, and up to ~5.5k if it reads all its reference files. Until then it costs about 139 tokens; SKILL.md has 595 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~139
When it runs · the whole SKILL.md, loaded when a task matches
~3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from ZeroPointRepo/youtube-skills at commit 4f7994b, republished under its MIT licence (© ZeroPointRepo). 595 words, ~2,974 tokens.

Download SKILL.mdSave it as .claude/skills/transcriptapi/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
transcriptapi
description
Use 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.
compatibility
Requires internet access to reach transcriptapi.com. No additional runtimes or dependencies needed.
version
1.5.4
user-invocable
true

TranscriptAPI

Full YouTube data toolkit via TranscriptAPI.com. Transcripts, search, channels, playlists — one API key.

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.

API Reference

Full OpenAPI spec: transcriptapi.com/openapi.json — consult this for the latest parameters and schemas.

Auth

All requests: -H "Authorization: Bearer $TRANSCRIPT_API_KEY"

Endpoints

Channel endpoints accept channel — an @handle, channel URL, or UC... ID. No need to resolve first. Playlist endpoints accept playlist — a playlist URL or ID.

GET /api/v2/youtube/transcript — 1 credit
http
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
ParamRequiredDefaultValidation
video_urlyes—YouTube URL or 11-char video ID
formatnojsonjson or text
include_timestampnotruetrue or false
send_metadatanofalsetrue or false

Accepts: https://youtube.com/watch?v=ID, https://youtu.be/ID, youtube.com/shorts/ID, or bare ID.

Response (format=json):

json
{
  "video_id": "dQw4w9WgXcQ",
  "language": "en",
  "transcript": [
    { "text": "We're no strangers...", "start": 18.0, "duration": 3.5 }
  ],
  "metadata": { "title": "...", "author_name": "...", "author_url": "..." }
}
GET /api/v2/youtube/search — 1 credit
http
GET https://transcriptapi.com/api/v2/youtube/search?q=QUERY&type=video&limit=20
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0
ParamRequiredDefaultValidation
qyes—1-200 chars (trimmed)
typenovideovideo or channel
limitno201-50

Response (type=video):

json
{
  "results": [
    {
      "type": "video",
      "videoId": "dQw4w9WgXcQ",
      "title": "Rick Astley - Never Gonna Give You Up",
      "channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
      "channelTitle": "Rick Astley",
      "channelHandle": "@RickAstley",
      "channelVerified": true,
      "lengthText": "3:33",
      "viewCountText": "1.5B views",
      "publishedTimeText": "14 years ago",
      "hasCaptions": true,
      "thumbnails": [{ "url": "...", "width": 120, "height": 90 }]
    }
  ],
  "result_count": 20
}

Response (type=channel):

json
{
  "results": [
    {
      "type": "channel",
      "channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
      "title": "Rick Astley",
      "handle": "@RickAstley",
      "subscriberCount": "4.2M subscribers",
      "verified": true,
      "rssUrl": "https://www.youtube.com/feeds/videos.xml?channel_id=UC..."
    }
  ],
  "result_count": 5
}
GET /api/v2/youtube/channel/resolve — FREE (0 credits)
http
GET https://transcriptapi.com/api/v2/youtube/channel/resolve?input=@TED
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0
ParamRequiredValidation
inputyes1-200 chars — @handle, URL, or UC... ID

Response:

json
{ "channel_id": "UCsT0YIqwnpJCM-mx7-gSA4Q", "resolved_from": "@TED" }

If input is already a valid UC[a-zA-Z0-9_-]{22} ID, returns immediately without lookup.

GET /api/v2/youtube/channel/videos — 1 credit/page
http
# First page (100 videos)
GET https://transcriptapi.com/api/v2/youtube/channel/videos?channel=@NASA
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0

# Most-viewed first (channel Videos tab, ~30 videos)
GET https://transcriptapi.com/api/v2/youtube/channel/videos?channel=@NASA&sort=popular
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0

# Next pages (repeat the same sort)
GET https://transcriptapi.com/api/v2/youtube/channel/videos?continuation=TOKEN&sort=popular
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0
ParamRequiredValidation
channelconditional@handle, channel URL, or UC... ID
tabnovideos (default), shorts, or streams
sortnolatest, popular, or oldest (omit for the uploads feed)
continuationconditionalnon-empty string (next pages)

Provide exactly one of channel or continuation.

Sorting. Add sort=latest, popular, or oldest to channel/videos to get a channel's videos in the order you want, for example its most-popular uploads first. A sorted page returns about 30 videos (an unsorted page returns about 100), and every page costs the same 1 credit.

When paging, send the same sort on each request.

Every item carries members_only, true only when YouTube badges it "Members only", and those items have no viewCountText. Items from tab=streams carry lengthText and publishedTimeText (for example Streamed 2 years ago); tab=shorts returns null for both, because YouTube's Shorts grid publishes neither. On the channel-tab feeds (tab=videos with sort, tab=shorts, tab=streams) channelId, channelTitle, channelHandle and index are null.

Response:

json
{
  "results": [{
    "videoId": "abc123xyz00",
    "title": "Latest Video",
    "channelId": "UCsT0YIqwnpJCM-mx7-gSA4Q",
    "channelTitle": "TED",
    "channelHandle": "@TED",
    "lengthText": "15:22",
    "viewCountText": "3.2M views",
    "publishedTimeText": "2 years ago",
    "thumbnails": [...],
    "index": "0",
    "members_only": false
  }],
  "playlist_info": {"title": "Uploads from TED", "numVideos": "5000"},
  "continuation_token": "4qmFsgKlARIYVVV1...",
  "has_more": true
}
Show full SKILL.md (205 more words)Show less
GET /api/v2/youtube/channel/latest — FREE (0 credits)
http
GET https://transcriptapi.com/api/v2/youtube/channel/latest?channel=@TED
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0
ParamRequiredValidation
channelyes@handle, channel URL, or UC... ID

Returns last 15 videos via RSS with exact view counts and ISO timestamps.

Response:

json
{
  "channel": {
    "channelId": "...",
    "title": "TED",
    "author": "TED",
    "url": "..."
  },
  "results": [
    {
      "videoId": "abc123xyz00",
      "title": "Latest Video",
      "published": "2026-01-30T16:00:00Z",
      "viewCount": "2287630",
      "description": "Full description...",
      "thumbnail": { "url": "...", "width": "480", "height": "360" }
    }
  ],
  "result_count": 15
}
GET /api/v2/youtube/channel/search — 1 credit
http
GET https://transcriptapi.com/api/v2/youtube/channel/search?channel=@TED&q=climate+change&limit=30
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0
ParamRequiredValidation
channelyes@handle, channel URL, or UC... ID
qyes1-200 chars
limitno1-50 (default 30)
GET /api/v2/youtube/playlist/videos — 1 credit/page
http
# First page
GET https://transcriptapi.com/api/v2/youtube/playlist/videos?playlist=PL_PLAYLIST_ID
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0

# Next pages
GET https://transcriptapi.com/api/v2/youtube/playlist/videos?continuation=TOKEN
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0
ParamRequiredValidation
playlistconditionalPlaylist URL or ID (PL/UU/LL/FL/OL prefix)
continuationconditionalnon-empty string

Credit Costs

EndpointCost
transcript1
search1
channel/resolvefree
channel/search1
channel/videos1/page
channel/latestfree
playlist/videos1/page

Errors

CodeMeaningAction
401Bad API keyCheck key, re-run setup
402No creditsTop up at transcriptapi.com/billing
403/1010Cloudflare blockAdd or fix User-Agent header
404Not foundVideo/channel/playlist doesn't exist or no captions
408Timeout/retryableRetry once after 2s
422Validation errorCheck param format
429Rate limitedWait, respect Retry-After

Tips

  • When user shares YouTube URL with no instruction, fetch transcript and summarize key points.
  • Use channel/latest (free) to check for new uploads before fetching transcripts — pass @handle directly.
  • For research: search → pick videos → fetch transcripts.
  • Free tier: 100 credits, 300 req/min. Starter ($5/mo): 1,000 credits, 300 req/min.

Copy-paste examples

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

© ZeroPointRepo, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in skills/transcriptapi of ZeroPointRepo/youtube-skills.

  • SKILL.md
  • references/auth-setup.md
  • references/curl-examples.md

Open the folder on GitHubat commit 4f7994b

Used in 1 other repository

We found 2 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in ZeroPointRepo/youtube-skills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

YouTube TranscriptAPI next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

YouTube TranscriptAPI compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
YouTube TranscriptAPI this skillZeroPointRepo/youtube-skills1k1 repos~3kAutomated safety check: PassMIT
Youtube Transcriptbadlogic/pi-skills2.6k1 repos~179Automated safety check: PassMIT
Video Lenskar2phi/video-lens112—~8.2kAutomated safety check: NotesMIT
Youtube Transcript Extractor API Skillbrowser-act/skills6.1k1 repos~1.2kAutomated safety check: PassMIT
YouTube Transcript ReformatterPrismer-AI/PrismerCloud1.6k2 repos~905Automated safety check: PassMIT
Video SummaryLeoYeAI/openclaw-master-skills2.2k—~4.2kAutomated safety check: PassMIT

Similar skills

  • Youtube Transcript

    badlogic/pi-skills

    Fetch transcripts from YouTube videos for summarization and analysis.

    2.6k GitHub starsUsed in 1 repo~179 tokens
    Knowledge ManagementAuto-check passed
  • Video Lens

    kar2phi/video-lens

    Fetch a YouTube transcript and generate an executive summary, key points, and timestamped topic list as a polished HTML report.

    112 GitHub stars~8.2k tokensUpdated 1 mo ago
    Knowledge ManagementAuto-check: notes
  • This skill helps users automatically extract YouTube video transcripts and metadata via the BrowserAct API.

    6.1k GitHub starsUsed in 1 repo~1.2k tokens
    Knowledge ManagementAuto-check passed
  • YouTube Transcript Reformatter

    Prismer-AI/PrismerCloud

    Fetches a YouTube transcript with a helper script and reshapes it into chapters, summaries, X threads, blog posts or timestamped quotes.

    1.6k GitHub starsUsed in 2 repos~905 tokens
    Knowledge ManagementAuto-check passed
  • Video Summary

    LeoYeAI/openclaw-master-skills

    Video summarization for Bilibili, Xiaohongshu, Douyin, and YouTube.

    2.2k GitHub stars~4.2k tokensUpdated 2 mo ago
    Media & CreativeAuto-check passed
  • Multi-Source to NotebookLM Processor

    joeseesun/qiaomu-anything-to-notebooklm

    Collects content from WeChat articles, web pages, YouTube, podcasts, documents and more, uploads it to NotebookLM and generates podcasts, slides or mind maps.

    6.2k GitHub stars~3.6k tokensUpdated 2 days ago
    Knowledge ManagementAuto-check passed

More from ZeroPointRepo/youtube-skills

All 12 skills in this repo
  • YouTube Captions Fetcher

    ZeroPointRepo/youtube-skills

    Fetches timestamped captions or plain-text transcripts for any YouTube video through the TranscriptAPI service, for reading, quoting, translating or accessibility.

    1k GitHub starsUsed in 1 repo~1.1k tokens
    Auto-check passed
  • YouTube Subtitle Fetcher

    ZeroPointRepo/youtube-skills

    Fetches timestamped subtitles for any YouTube video through TranscriptAPI, as clean text for reading and translation or timed JSON.

    1k GitHub starsUsed in 1 repo~1.1k tokens
    Auto-check passed
  • YouTube Transcript Fetcher

    ZeroPointRepo/youtube-skills

    Fetches the transcript of a YouTube video through TranscriptAPI.com so the agent can summarize, quote, translate or fact-check what was said.

    1k GitHub starsUsed in 1 repo~1.1k tokens
    Auto-check passed
  • YouTube Video Transcript

    ZeroPointRepo/youtube-skills

    Fetches YouTube transcripts through TranscriptAPI.com so an agent can summarize, quote or translate a video from a link or ID.

    1k GitHub starsUsed in 1 repo~1.1k tokens
    Auto-check passed
  • YouTube Data via TranscriptAPI

    ZeroPointRepo/youtube-skills

    Fetches YouTube transcripts, video metadata, channel info, search results and playlists through the TranscriptAPI.com service, with no Google API quota or OAuth setup.

    1k GitHub starsUsed in 1 repo~2.3k tokens
    Auto-check passed
  • YouTube Channel Tools

    ZeroPointRepo/youtube-skills

    Browses YouTube channels through TranscriptAPI: resolves handles to channel IDs, lists recent uploads and pages through a channel's videos.

    1k GitHub starsUsed in 1 repo~3.3k tokens
    Auto-check passed

Works with

Questions about YouTube TranscriptAPI

What does YouTube TranscriptAPI do?

Pulls YouTube transcripts, searches videos and channels and browses playlists through the TranscriptAPI service with a single API key. md to obtain and store one. Every request carries a bearer Authorization header and a User-Agent naming the agent, because a bare default is blocked by Cloudflare with a 403.

When should I use YouTube TranscriptAPI?

YouTube TranscriptAPI fits situations like: summarizing or quoting a YouTube video from its transcript; searching YouTube for talks, tutorials or reviews on a topic; listing a channel's videos or searching within one channel; translating or researching from video content that is newer than written sources.

How do I install YouTube TranscriptAPI in Claude Code?

Run `npx skills add ZeroPointRepo/youtube-skills --skill transcriptapi -a claude-code`. Or copy the skill folder (skills/transcriptapi in ZeroPointRepo/youtube-skills) into .claude/skills/transcriptapi in your project. Claude Code loads it when a task matches its description.

How do I install YouTube TranscriptAPI in Codex?

Run `npx skills add ZeroPointRepo/youtube-skills --skill transcriptapi -a codex`. Or copy the skill folder (skills/transcriptapi in ZeroPointRepo/youtube-skills) into .agents/skills/transcriptapi in your project. Codex loads it when a task matches its description.

Can I use YouTube TranscriptAPI in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ZeroPointRepo/youtube-skills --skill transcriptapi -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/transcriptapi, .gemini/skills/transcriptapi, .github/skills/transcriptapi and .opencode/skills/transcriptapi in your project.

What does YouTube TranscriptAPI need to run?

Going by SKILL.md and its folder, YouTube TranscriptAPI needs credentials named TRANSCRIPT_API_KEY. Our summary lists: A TranscriptAPI key in TRANSCRIPT_API_KEY; Internet access to reach transcriptapi.com. Compatibility (from SKILL.md): Requires internet access to reach transcriptapi.com. No additional runtimes or dependencies needed..

Does YouTube TranscriptAPI access the network?

SKILL.md names 3 domains. In commands or code: transcriptapi.com, youtube.com and youtu.be; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is YouTube TranscriptAPI safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does YouTube TranscriptAPI use?

YouTube TranscriptAPI is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does YouTube TranscriptAPI use?

About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.6k tokens, read only when the agent opens those files.

What are the alternatives to YouTube TranscriptAPI?

Skills that share tags, products or a category with YouTube TranscriptAPI: Youtube Transcript (badlogic/pi-skills, 2.6k stars), Video Lens (kar2phi/video-lens, 112 stars), Youtube Transcript Extractor API Skill (browser-act/skills, 6.1k stars) and YouTube Transcript Reformatter (Prismer-AI/PrismerCloud, 1.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains YouTube TranscriptAPI?

ZeroPointRepo (a GitHub organization) maintains it in ZeroPointRepo/youtube-skills, which has 1,025 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 6, 2026.

Source: ZeroPointRepo/youtube-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.