Youtube Skills by artemchuikin

by artemchuikin• 343•• Scanned•Claim this listing•Request removal
Social Mediaagent skillsai agentscaptionsclaude codeclaude skills

YouTube transcript skills for Claude Code, Cursor and Codex. Agent Skills to get transcripts, search YouTube, read channels and playlists, and bulk export.

Youtube Skills is an open-source agent skill by artemchuikin, with 343 GitHub stars and the MIT license. Its code was last updated Oct 15, 2026.

YouTube Skills for AI Agents 🎬

Drop-in skills that let a coding or chat agent pull YouTube transcripts, run searches, walk channels and export whole playlists.

An Agent Skill is a folder of instructions an agent loads when the task matches. The 12 skills in this repo cover YouTube end to end. Each one names its endpoint, shows the exact request, lists every parameter with defaults and limits, and maps every error code to a recovery, so the agent makes the right call on the first try instead of guessing. No yt-dlp, no headless browser, no Google Cloud project. One HTTPS request per answer.

Works with Claude Code, Cursor, Antigravity, Cline, Codex, OpenClaw, Hermes Agent, and anything else that reads the Agent Skills format.

Made by TranscriptOut · API docs · MCP server


⚡ Quick start

npx skills add artemchuikin/youtube-skills --skill youtube-full

Then ask the agent something it previously had to refuse.

What does this talk actually claim? https://www.youtube.com/watch?v=dQw4w9WgXcQ

The first run also takes care of the API key, without leaving the chat. The agent asks for your email, a 6-digit code arrives in your inbox, you read it back, and a fresh sk_ key lands in your shell or agent config. The account behind it is free, starts with 100 credits and never asks for a card.

<details> <summary><strong>Other install paths</strong></summary>

Hermes Agent

hermes skills install skills-sh/artemchuikin/youtube-skills/skills/youtube-full

All 12 skills at once

npx skills add artemchuikin/youtube-skills

Manual (git clone)

git clone https://github.com/artemchuikin/youtube-skills.git
cp -r youtube-skills/skills/youtube-full ~/.claude/skills/

OpenClaw (ClawdBot/Moltbot). Copy a folder from clawhub/ into your skills directory. The clawhub/ tree carries the same 12 skills with bash-style examples.

No terminal at all. Paste this into the agent and let it do the work.

Install the youtube skills from this GitHub repo: https://github.com/artemchuikin/youtube-skills
I want to get YouTube transcripts, search YouTube, and browse channel videos from my agent.
Set everything up for me.

Installing skills and creating the API key are both things these skills teach the agent to do.

</details>

💬 What you can ask

Every row is something you can say to the agent word for word. The skill turns it into the right API call.

Ask forFor example
A transcript"What does this video actually say? [URL]"
A summary or quote"Pull the three strongest quotes from this talk"
Subtitles as files"Export this video's subtitles as SRT"
A YouTube search"Find recent talks about Rust async and pick the best three"
A channel's news"Anything new on @kurzgesagt this week?"
A channel's catalogue"List everything @3blue1brown has ever uploaded"
Search inside a channel"Find every Fireship video that mentions Postgres"
A whole playlist"Turn this lecture course into study notes"
A bulk export"Queue transcripts for all 800 videos on this channel"
RAG-ready chunks"Fetch this playlist's transcripts in ~1000-character segments for my index"

🧰 Which skill to install

youtube-full is the right answer for most people. One skill, the whole surface. The narrower ones exist because a skill is context the agent has to carry, and a workflow that only ever needs transcripts should not pay for playlist documentation.

SkillWhat it doesInstall
youtube-fullEverything. Transcripts, search, channels, playlists, bulk jobs--skill youtube-full
transcriptVideo transcripts with timestamps--skill transcript
youtube-searchSearch YouTube for videos and channels--skill youtube-search
youtube-channelsUploads, latest videos, search within a channel--skill youtube-channels
youtube-playlistEvery video of a playlist--skill youtube-playlist
# one skill
npx skills add artemchuikin/youtube-skills --skill transcript

# several at once
npx skills add artemchuikin/youtube-skills --skill transcript --skill youtube-search
<details> <summary><strong>All 12 skills</strong></summary>

Beyond the core five, the rest are vocabulary variants of the same capabilities. People say "captions", "subtitles", "video to text" or "youtube api" for overlapping things, and an agent picks a skill by matching your words against skill descriptions, so each phrasing has a skill that answers to it.

SkillDescription
youtube-fullComplete toolkit. Transcripts + search + channels + playlists + bulk jobs
transcriptExtract the transcript of any YouTube video, with timestamps
captionsClosed captions / CC, including SRT and VTT files
subtitlesSubtitles from YouTube videos, including SRT and VTT files
youtube-searchSearch YouTube for videos and channels
youtube-channelsChannel uploads, latest videos, in-channel search
youtube-playlistAll videos of a YouTube playlist
youtube-dataVideo and channel data without Google's API quotas
youtube-apiYouTube API access for agents, no Google Cloud project
transcriptoutThe full API surface in one skill
video-transcriptConvert YouTube videos to text
ytQuick lookups. Transcript, search, channel latest
</details>

💳 What calls cost

The unit is a credit, and one credit is one answered request.

RequestCost
transcript of one video (any of 5 formats)1
video metadata + available caption languages1
YouTube search1 per page
channel latest (~15 newest videos)1
channel videos1 per page (100 videos, or 500 IDs)
search within a channel1 per page
playlist videos1 per page (100 videos, or 500 IDs)
search within a playlist1
bulk job submit1 per video
bulk job progress, results, cancelfree

A call that dies before reaching YouTube (bad parameter, rate limit, service busy) refunds itself automatically. A confirmed "this video has no captions" costs the credit, because the lookup really happened. The rate limit is 200 requests per minute per key on every plan.

PlanPriceCredits
Free$0100 on signup, one-time
Starter$4.49/month1,000/month
Starter Annual$45.29/year (~$3.77/mo)1,000/month
Scaleslider up to $198.99/moup to 100,000/month

Subscription volume is a slider from 1,000 to 100,000 credits per month in steps of 1,000, and the per-1,000 rate falls as the volume grows. Full pricing →


📦 Built for bulk work

Bulk export is one job, not a loop. The agent collects video IDs cheaply (ids_only=true returns up to 500 per page), submits them all in a single POST /v1/transcripts (up to 4,000 videos), and reads results page by page while the job is still running. Duplicates are dropped before billing, an Idempotency-Key makes retries free, the job paces itself inside the rate limit instead of tripping 429s, and any video the service fails to deliver is refunded on its own. A full channel archive that used to be an evening of scripting is three prompts.

🧠 Chunks sized for retrieval

Transcripts arrive pre-chunked if you ask. The segment parameter (20 to 5,000 characters) controls how the text is cut, and 500 to 1,500 gives retrieval-sized pieces with real context. Cut points come from per-word timestamps in YouTube's raw srv3 data, so each chunk's start is the moment the words are actually spoken rather than an interpolation. segment=1000&format=json goes straight into an embedding pipeline with no re-chunking step.


🔑 Setting up the key by hand

The in-chat flow above is optional. The manual way takes two minutes.

  1. Sign in at transcriptout.com with Google or a magic link. The first sign-in is the signup and grants the free credits.
  2. Create an API key in the dashboard. It starts with sk_ and is shown once.
  3. Store it where the agent can read it, without pasting it into the chat. If your runtime asks for TRANSCRIPTOUT_API_KEY itself (Hermes, OpenClaw), enter it there. Otherwise run this in your own terminal: it reads the key without echoing it into a file only you can read.
mkdir -p ~/.config/transcriptout && chmod 700 ~/.config/transcriptout && (umask 077; printf 'TranscriptOut key: '; stty -echo; IFS= read -r k; stty echo; echo; printf '%s' "$k" > ~/.config/transcriptout/key)
  1. Load it in every shell. Add this line to your shell profile. It holds a path, not the key:
export TRANSCRIPTOUT_API_KEY="$(cat ~/.config/transcriptout/key 2>/dev/null)"
<details> <summary><strong>Where does the key get saved?</strong></summary>
LocationFile
OpenClaw/Moltbotthe runtime's own config, via its prompt for TRANSCRIPTOUT_API_KEY
Hermes AgentHermes secret store (TRANSCRIPTOUT_API_KEY declared via required_environment_variables in skill frontmatter)
Everything else~/.config/transcriptout/key (folder mode 700, file mode 600), loaded by one line in the shell profile

The key itself never goes into a shell profile, a project directory or the chat, and the skills never print it. If you pasted it into a chat anyway, create a fresh key in the dashboard and delete the old one.

</details> </details>

❓ FAQ

Can I bulk download YouTube transcripts?

Yes, and there is a purpose-built endpoint for it. Install youtube-full and ask for transcripts of a playlist or channel. The agent gathers the IDs and submits one batch job for up to 4,000 videos, then reads results as they land. Same price per video as single calls.

Do I need a Google YouTube Data API key?

No. These skills replace the Data API for transcripts, search, and channel and playlist listings, without a Google Cloud project, quota units or OAuth screens. Google's API also does not return transcripts, which tends to be the whole point.

Do I need an API key at all?

Yes, but getting one is part of the first run. The agent registers your email, you read a 6-digit code off your inbox, and the key is stored for you. 100 free credits, no card.

Which skill should I install?

youtube-full, unless you know you want less. The narrow ones are listed under Which skill to install.

What API is underneath?

TranscriptOut, a hosted YouTube data API. The full reference lives at transcriptout.com/docs, and the same backend is available as a remote MCP server if your client speaks MCP natively. For code outside an agent there are client libraries, pip install transcriptout and npm i transcriptout, drop-in replacements for youtube-transcript-api and youtube-transcript.

Live streams?

Transcripts appear after a stream ends and captions are processed, not while it runs.


🧯 Troubleshooting

Every error response carries a machine-readable code and a request_id, and agents tend to relay them word for word, so this table is keyed by what you will actually see.

SymptomLikely causeFix
401 UnauthorizedKey missing, mistyped, or not loaded into the environmentConfirm TRANSCRIPTOUT_API_KEY is set in the shell the agent runs in and starts with sk_
402 Payment RequiredThe account is out of creditsCheck the balance at transcriptout.com/billing
404 Not FoundNo captions on the requested language or track, or a wrong IDA definitive answer, retrying won't change it. Try another lang, or kind=auto
410 GoneThe video was removedNothing to fetch
451Age-restricted or members-only videoNothing to fetch without an account, which the API deliberately does not use
422 / 400A malformed parameterChannels accept @handle, a name, a URL or a UC ID. Playlists take a PL... ID or URL. The credit refunds itself
429 Too Many RequestsRate limit reached (200 req/min per key)Wait out the Retry-After header. The credit refunds itself
503Temporary capacity pressure on cold fetchesRetry after Retry-After. The credit refunds itself

And three situations that are not errors at all.

  • The key is saved but the agent cannot see it. Shell profiles only load into new shells, and the session that wrote the key does not reread its own profile. Restart the agent, or check that the file written matches the shell the agent actually runs (see the table above).
  • The transcript came back in an unexpected language. Many videos only carry captions in their original language. Ask for lang=<code> explicitly, or let the agent translate. The metadata endpoint lists which languages a video actually has.
  • A fresh upload has no transcript yet. Captions take YouTube some time to process after publishing. Come back in a while.

🗂️ Repository layout

skills/     the 12 skills with HTTP-style examples (Claude Code, Cursor, Codex, Hermes, ...)
clawhub/    the same 12 with bash examples, for OpenClaw
scripts/    generate.py, the single source every skill file is emitted from
assets/     icons

The skill files are generated. Edit scripts/generate.py and re-run it rather than touching skills/ or clawhub/ by hand. The endpoints and error tables stay consistent across all 12 because they come from one section library.

🤝 Contributing

PRs welcome. See CONTRIBUTING.md.

📄 License

MIT. These skills call the TranscriptOut API, an independent product that is not affiliated with or endorsed by YouTube or Google.

Youtube Skills alternatives

View more →

Similar agent skills in Social Media, ranked by GitHub stars. Compare licence, recent activity and scan status before you choose.

NameStarsLicenceLast updatedScan
Youtube Skills (this page)
artemchuikin
343MITOct 15, 2026Scanned, no flagged issues
Social Auto Upload
dreammis
16kMITOct 22, 2026Scanned, no flagged issues
OpenCreator
krillinai
14kApache-2.0Oct 30, 2026Scanned, no flagged issues
Claude Ads
AgriciDaniel
11kMITOct 17, 2026Scanned, no flagged issues
HTML Anything
nexu-io
9.4kApache-2.0Oct 13, 2026Scanned, no flagged issues
Linkedin Skills
sergebulaev
5.4kMITOct 27, 2026Scanned, no flagged issues