YouTube Skills
Twelve skills teach an agent to read YouTube through the TranscriptOut service: transcripts, search and channels in one HTTPS call
- 343 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- Video links and queries go to the external TranscriptOut service under your API key
- The API key is stored in a shell file or the agent config, and the agent creates an account with your email
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add skills/youtube-skillsDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- Video links and queries go to the external TranscriptOut service under your API key
- The API key is stored in a shell file or the agent config, and the agent creates an account with your email
This is third-party code. Review the repository files before installing.
What it does
The skills teach an agent to read YouTube without yt-dlp, a headless browser or a Google Cloud project. Each skill names its endpoint, shows the exact request, lists every parameter with defaults and limits and maps every error code to a recovery. An answer costs one HTTPS call to the TranscriptOut service. The agent gets a transcript, quotes and subtitles as SRT or VTT. It searches YouTube and inside a channel, checks new uploads and the whole catalogue, reads playlists and exports videos in bulk. The youtube-full skill covers everything, while transcript, youtube-search, youtube-channels and youtube-playlist install one at a time so the agent does not carry extra documentation. The other seven skills answer the same tasks under different wording: captions, subtitles, video-transcript and so on. For bulk work the agent collects IDs with the ids_only parameter, then submits the whole list in one bulk-job request and reads results page by page while it runs. The segment parameter cuts text into pieces of 20 to 5,000 characters, with cut points taken from per-word timestamps, so the chunks fit a RAG index.
Who it is for. For developers, content managers and researchers who want an agent to digest YouTube talks, lectures and channels without watching them in full.
Good fit when
- You need to learn what an hour-long talk claims and pull out its three strongest quotes
- You need an SRT or VTT subtitle file with timestamps for a finished video
- A lecture course in a playlist has to become study notes: the agent takes every video in the playlist
- You need transcripts for a whole channel for a search index in one job
- You want to see what is new on a channel this week and find every video that mentions Postgres
Not a fit when
- You need to upload your own captions to YouTube or manage an account: the skills only read
- You cannot send video links to third-party services: requests go to the TranscriptOut API
- You need free unlimited access: a free account gives 100 credits once
- The video has no captions: the service confirms that, and the credit is still spent
Example request
What does this talk actually claim? https://www.youtube.com/watch?v=dQw4w9WgXcQLimitations
The skills run through the paid TranscriptOut service and need an API key that starts with sk_. A free account gives 100 credits once, no card. The Starter plan costs $4.49 a month for 1,000 credits, and Scale rises to 100,000 credits a month. One credit is one answered request: a transcript costs 1, a search page 1, a bulk job 1 per video, while reading job progress and results is free. The rate limit is 200 requests per minute per key.
A request that fails before reaching YouTube because of a bad parameter, a rate limit or a busy service refunds itself. A confirmed "this video has no captions" costs the credit. Signup happens right in the chat with a six-digit code from an email.
How to disable. Delete the folder of the skill you installed from ~/.claude/skills or the project's .claude/skills. The key sits in the TRANSCRIPTOUT_API_KEY variable in a shell file or the agent config, with ~/.transcriptout as the fallback. Remove it there and revoke the key in your TranscriptOut dashboard.
FAQ
How do I get a YouTube transcript in Claude Code?
Run npx skills add artemchuikin/youtube-skills --skill youtube-full and ask the agent to read a video by link. On the first run it offers to create a key: it asks for your email, sends a six-digit code there and saves the key itself once you confirm.
Which skill do I install if I only need transcripts?
The transcript skill: --skill transcript. youtube-full contains everything, but the agent carries channel and playlist documentation in context. Narrow skills such as youtube-search and youtube-channels install together: each extra --skill flag adds one more.
How many videos can I export at once?
One job takes up to 4,000 videos in a single POST /v1/transcripts request. Collect IDs with ids_only=true, up to 500 per page. Duplicates are dropped before billing, an Idempotency-Key makes retries free and any video the service fails to deliver is refunded.
How do I chunk transcripts for search and RAG?
Pass segment with a value from 20 to 5,000 characters. 500–1,500 suits an index. Cut points come from per-word timestamps in raw srv3 data, so each chunk's start is when the words are spoken. The json format with segment=1000 goes straight into embeddings.
Does it work in Hermes Agent and OpenClaw?
Yes. For Hermes: hermes skills install skills-sh/artemchuikin/youtube-skills/skills/youtube-full, with the key kept in the Hermes secret store. For OpenClaw copy a folder from clawhub into the skills directory: it carries the same twelve skills with bash examples. Codex has a .codex-plugin manifest.
Discussion
No questions or reviews yet.
Related
SkillsYouTube Skills
YouTube Skills for AI Agents
A set of skills that gives an agent YouTube transcripts, video and channel search, and playlist extraction over one API
A Claude Code skill that downloads a YouTube video, splits it into semantic chapters, cuts chosen clips, translates subtitles and burns bilingual ones in
MCP server that gives an agent a YouTube video's transcript from its link, with language choice, timestamps and ads filtered out
yt-fts downloads subtitles of YouTube channels and playlists into SQLite and finds phrases with links to the exact second, plus semantic search and chat
The /watch skill turns a link or file into frames and captions, or with a Gemini key hands the whole video to Google for the agent to answer from
yutu runs a YouTube channel from the terminal: videos, playlists, comments. Has an MCP server, a built-in agent and a skill for Claude Code and Codex
Comparison with similar tools
Entries that share the main search query, and how they differ.
| Entry | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| YouTube Skills (this entry) | no | 343 | ||
| YouTube Transcript MCP Server | no | not required | 494 | an MCP server that returns the transcript of one video by URL, with no channels, playlists or bulk export |
| YouTube Clipper Skill | no | 2,267 | downloads a video and cuts it into semantic chapters, without channel transcripts or search |
README in short
The project comes from the authors of the TranscriptOut service, with links to their API docs and MCP server. The main table maps phrases like "what is this video about" to the right skill, and the FAQ section covers transcript export.
README badge
Original SKILL.md
---
name: captions
description: "Reach for this when caption text from a YouTube video is wanted: reading a video instead of watching it, quoting or translating speech, accessibility (deaf/HoH) needs, content review, language practice, or exporting CC as SRT/VTT files. Timestamped captions from any public video. Skip it for uploading captions or account chores."
version: "1.1.0"
user-invocable: true
compatibility: Requires internet access to reach api.transcriptout.com. No additional runtimes or dependencies needed.
required_environment_variables:
- name: TRANSCRIPTOUT_API_KEY
prompt: Your TranscriptOut API key (starts with sk_)
help: Free account at https://transcriptout.com/?utm_source=youtube-skills&utm_medium=clawhub&utm_content=captions (100 credits on signup, no card). Create the key in the dashboard.
required_for: all API requests
metadata: {"openclaw":{"emoji":"💬","requires":{"env":["TRANSCRIPTOUT_API_KEY"]},"primaryEnv":"TRANSCRIPTOUT_API_KEY","homepage":"https://transcriptout.com"},"hermes":{"tags":["youtube","captions","cc","subtitles","accessibility","video"],"category":"media"}}
---
# Captions
Extract closed captions from YouTube videos via [TranscriptOut.com](https://transcriptout.com/?utm_source=youtube-skills&utm_medium=clawhub&utm_content=captions).
## Setup
If `$TRANSCRIPTOUT_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 Header
Every request carries these headers:
- **Authorization:** `Bearer $TRANSCRIPTOUT_API_KEY`
- **X-Client:** `youtube-skills-clawhub/captions`, so TranscriptOut knows the call came from this skill
Every response is one JSON envelope. Success: `{"ok": true, "request_id": "...", "data": {...}}`. Error: `{"ok": false, "code": "...", "detail": "...", "request_id": "..."}`. Branch on the machine-readable `code`, not on the human text. The remaining credit balance rides in the `X-Credits-Remaining` response header.
## GET /v1/transcript · 1 credit
Fetch the closed captions of any YouTube video: timed JSON segments, plain text, or ready-made `SRT`/`VTT` files.
```bash
# SRT body inside the JSON envelope
curl -s "https://api.transcriptout.com/v1/transcript?video=VIDEO_URL_OR_ID&format=srt" \
-H "Authorization: Bearer $TRANSCRIPTOUT_API_KEY" \
-H "X-Client: youtube-skills-clawhub/captions"