К основному содержанию
скилл CX Codex

youtube-full · zeropointrepo — скилл для Claude Code: что делает и как установить

Скилл подключает поиск по YouTube, выгрузку субтитров и метаданных каналов через TranscriptAPI. Помогает извлекать текст лекций, обзоров и свежих роликов прямо в чат агента.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add ZeroPointRepo/youtube-skills --skill youtube-full -a claude-code
Открыть на GitHub

Что делает youtube-full

Скилл даёт агенту доступ к видео и каналам на YouTube через TranscriptAPI. Агент умеет доставать расшифровку видео с таймкодами, искать ролики по фильтрам, проверять просмотры и лайки. Это полезно, когда в видео есть более свежие детали, чем в обычной поисковой выдаче.

Для работы нужен ключ в переменной окружения TRANSCRIPT_API_KEY. Запросы отправляются через curl с обязательным заголовком User-Agent. Если не передать имя агента в заголовке, Cloudflare заблокирует запрос с ошибкой 403.

Часть вызовов не тратит баланс: определение ID по юзернейму автора и получение 15 последних роликов бесплатны. Выгрузка субтитров и расширенные метаданные стоят по 1 кредиту за страницу. Загружать видео или управлять аккаунтом инструмент не умеет.

Какие задачи решает

  • получить текстовую расшифровку видео с таймкодами
  • найти ролики по теме с фильтрацией по дате и длительности
  • собрать список последних видео автора по его юзернейму
  • извлечь теги, просмотры и описание ролика

Примеры запросов агенту

  • Найди видео по запросу Next.js tutorial за последнюю неделю и выведи список
  • Достань расшифровку ролика с таймкодами по этой ссылке на YouTube
  • Покажи последние 15 видео с канала @NASA и их количество просмотров

Как установить youtube-full

1Через Skills CLI (Vercel)

npx skills add ZeroPointRepo/youtube-skills --skill youtube-full -a claude-code

2Вручную: положить файлы

~/.claude/skills/youtube-full/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/youtube-full/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о youtube-full

Как установить youtube-full в Claude Code?

Выполните команду npx skills add ZeroPointRepo/youtube-skills --skill youtube-full -a claude-code. Затем задайте переменную окружения TRANSCRIPT_API_KEY.

Что делает скилл youtube-full?

Он позволяет агенту искать видео и каналы на YouTube, получать метаданные роликов и выгружать текстовые субтитры с временными метками.

Почему запросы к API могут возвращать ошибку 403?

Сервис требует обязательный заголовок User-Agent с именем агента в каждом запросе. Без него защита Cloudflare блокирует вызов с кодом ошибки 1010.

Исходный текст

SKILL.md · MIT
---
name: youtube-full
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, first looks, 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."
version: "1.6.2"
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","search","channels","playlists","captions"],"category":"media"}}
---

# YouTube Full

Complete YouTube toolkit via [TranscriptAPI.com](https://transcriptapi.com). Everything in one skill.

## 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.

## API Reference

Full OpenAPI spec: [transcriptapi.com/openapi.json](https://transcriptapi.com/openapi.json) — consult this for the latest parameters and schemas.

## Transcript — 1 credit

```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`, `text`                  |
| `include_timestamp` | no       | `true`  | `true`, `false`                 |
| `send_metadata`     | no       | `false` | `true`, `false`                 |

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

```json
{
  "video_id": "dQw4w9WgXcQ",
  "language": "en",
  "transcript": [{ "text": "...", "start": 18.0, "duration": 3.5 }],
  "metadata": { "title": "...", "author_name": "...", "author_url": "..." }
}
```

## Video Info & Metadata

```bash
# Free — languages available for the transcript endpoint
curl -s "https://transcriptapi.com/api/v2/youtube/info?video_url=VIDEO_URL" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
  -H "User-Agent: YourAgent/1.0"

# 1 credit — rich metadata (views, likes, description, duration, tags)
curl -s "https://transcriptapi.com/api/v2/youtube/video/metadata\
?video_url=VIDEO_URL&include=details,related" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
  -H "User-Agent: YourAgent/1.0"
```

`include` on `video/metadata` accepts `details` and/or `related`. Naming: `/video/metadata` was previously `/video/info` — the old path still works but is deprecated.

## Search — 1 credit/page

```bash
# Videos
curl -s "https://transcriptapi.com/api/v2/youtube/search?q=QUERY&type=video&limit=20" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
  -H "User-Agent: YourAgent/1.0"

# Channels, playlists, or movies
curl -s "https://transcriptapi.com/api/v2/youtube/search?q=QUERY&type=channel&limit=10" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
  -H "User-Agent: YourAgent/1.0"
```

| Param   | Required | Default | Validation                                     |
| ------- | -------- | ------- | ----------------------------------------------- |
| `q`     | yes      | —       | 1-200 chars                                      |
| `type`  | no       | `video` | `video`, `channel`, `playlist`, `movie`         |
| `sort`  | no       | `relevance` | `relevance`, `views` (first page only)      |
| `upload_date` | no | —       | `hour`, `today`, `week`, `month`, `year` (videos, first page) |
| `duration` | no    | —       | `short`, `medium`, `long` (videos, first page)  |
| `features` | no    | —       | e.g. `hd,subtitles,cc` (first page)             |
| `limit` | no       | `20`    | 1-50                                             |

## Channels

All channel endpoints accept `channel` — an `@handle`, channel URL, or `UC...` channel ID. No need to resolve first.

### Resolve handle — FREE

```bash
curl -s "https://transcriptapi.com/api/v2/youtube/channel/resolve?input=@TED" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
  -H "User-Agent: YourAgent/1.0"
```

Response: `{"channel_id": "UC...", "resolved_from": "@TED"}`

### Latest 15 videos — FREE

```bash
curl -s "https://transcriptapi.com/api/v2/youtube/channel/latest?channel=@TED" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
  -H "User-Agent: YourAgent/1.0"
```

Returns exact `viewCount` and ISO `published` timestamps.

### Channel feed (videos/shorts/streams) — 1 credit/page

```bash
# First page (100 items, tab defaults to "videos")
curl -s "https://transcriptapi.com/api/v2/youtube/channel/videos?channel=@NASA&tab=videos" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
  -H "User-Agent: YourAgent/1.0"

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

# Next pages (repeat the same tab AND sort)
curl -s "https://transcriptapi.com/api/v2/youtube/channel/videos?continuation=TOKEN&sort=popular" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
  -H "User-Agent: YourAgent/1.0"
```

Provide exactly one of `channel` or `continuation`. `tab` is `videos` (default), `shorts`, or `streams`. Response includes `continuation_token` and `has_more`.

**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.

**Item fields.** Every item carries `members_only`, `true` only when YouTube badges it "Members only", and those items have no `viewCountText`. `tab=streams` items 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`.

### Search within channel — 1 credit

```bash
curl -s "https://transcriptapi.com/api/v2/youtube/channel/search\
?channel=@TED&q=QUERY&limit=30" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
  -H "User-Agent: YourAgent/1.0"
```

### Channel profile — 1 credit

```bash
curl -s "https://transcriptapi.com/api/v2/youtube/channel/info?channel=@TED" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
  -H "User-Agent: YourAgent/1.0"
```

Returns title, handle, verified flag, subscriber/video counts, description, tags, thumbnails, banners, and `availableTabs`.

### Channel playlists — 1 credit/page

```bash
curl -s "https://transcriptapi.com/api/v2/youtube/channel/playlists?channel=@TED" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
  -H "User-Agent: YourAgent/1.0"
```

Returns each playlist's `playlistId`, `title`, `url`, `videoCountText` — feed a `playlistId` into the Playlists endpoint below.

### Channel community posts — 1 credit/page

```bash
curl -s "https://transcriptapi.com/api/v2/youtube/channel/posts?channel=@TED" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
  -H "User-Agent: YourAgent/1.0"
```

### Channel curated sections — 1 credit

```bash
curl -s "https://transcriptapi.com/api/v2/youtube/channel/sections?channel=@TED" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
  -H "User-Agent: YourAgent/1.0"
```

`tab` is `featured` (default, Home page), `podcasts`, or `releases`.

## Playlists — 1 credit/page

Accepts `playlist` — a YouTube playlist URL or playlist ID.

```bash
# First page
curl -s "https://transcriptapi.com/api/v2/youtube/playlist/videos?playlist=PL_ID" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
  -H "User-Agent: YourAgent/1.0"

# Next pages
curl -s "https://transcriptapi.com/api/v2/youtube/playlist/videos?continuation=TOKEN" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
  -H "User-Agent: YourAgent/1.0"
```

Valid ID prefixes: `PL`, `UU`, `LL`, `FL`, `OL`. Response includes `playlist_info`, `results`, `continuation_token`, `has_more`.

## Credit Costs

| Endpoint          | Cost     |
| ----------------- | -------- |
| transcript        | 1        |
| info              | **free** |
| video/metadata    | 1        |
| search            | 1/page   |
| channel/resolve   | **free** |
| channel/info      | 1        |
| channel/latest    | **free** |
| channel/videos    | 1/page   |
| channel/search    | 1        |
| channel/playlists | 1/page   |
| channel/posts     | 1/page   |
| channel/sections  | 1        |
| playlist/videos   | 1/page   |

## Validation Rules

| Field      | Rule                                                    |
| ---------- | ------------------------------------------------------- |
| `channel`  | `@handle`, channel URL, or `UC...` ID                   |
| `playlist` | Playlist URL or ID (`PL`/`UU`/`LL`/`FL`/`OL` prefix)   |
| `q`        | 1-200 chars                                             |
| `type` (search) | `video` (default), `channel`, `playlist`, `movie`  |
| `tab` (channel/videos) | `videos` (default), `shorts`, `streams`     |
| `sort` (channel/videos) | `latest`, `popular`, `oldest` (omit for the uploads feed) |
| `tab` (channel/sections) | `featured` (default), `podcasts`, `releases` |
| `include` (video/metadata) | `details`, `related` (comma-separated)   |
| `limit`    | 1-50                                                    |

## Errors

| Code     | Meaning          | Action                                         |
| -------- | ---------------- | ---------------------------------------------- |
| 401      | Bad API key      | Check key                                      |
| 402      | No credits       | transcriptapi.com/billing                      |
| 403/1010 | Cloudflare block | Add or fix User-Agent header                   |
| 404      | Not found        | Resource doesn't exist or no captions          |
| 408      | Timeout          | Retry once after 2s                            |
| 422      | Validation error | Check param format                             |
| 429      | Rate limited     | Wait, respect Retry-After                      |

## Typical Workflows

**Research workflow:** search → pick videos → fetch transcripts

```bash
# 1. Search
curl -s "https://transcriptapi.com/api/v2/youtube/search\
?q=machine+learning+explained&limit=5" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
  -H "User-Agent: YourAgent/1.0"
# 2. Transcript
curl -s "https://transcriptapi.com/api/v2/youtube/transcript\
?video_url=VIDEO_ID&format=text&include_timestamp=true&send_metadata=true" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
  -H "User-Agent: YourAgent/1.0"
```

**Channel monitoring:** latest (free) → transcript

```bash
# 1. Latest uploads (free — pass @handle directly)
curl -s "https://transcriptapi.com/api/v2/youtube/channel/latest?channel=@TED" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
  -H "User-Agent: YourAgent/1.0"
# 2. Transcript of latest
curl -s "https://transcriptapi.com/api/v2/youtube/transcript\
?video_url=VIDEO_ID&format=text&include_timestamp=true&send_metadata=true" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
  -H "User-Agent: YourAgent/1.0"
```

Free tier: 100 credits, 300 req/min. Starter ($5/mo): 1,000 credits.

© ZeroPointRepo · MIT · ZeroPointRepo/youtube-skills

Похожие скиллы

Все скиллы по теме «Настройка агента: память, контекст, субагенты» →

Сначала — youtube-full от других авторов.

youtube-full therohitdas Скилл получает транскрипты, ищет видео и просматривает каналы и плейлисты YouTube. Подойдёт для сбора материалов и отслеживания новых публикаций. 78установок video-memory oxbshw Постоянный индекс всех видео, которые агент разбирал на этой машине: кадры, OCR, транскрипты и прошлые ответы. Пригодится, когда нужно вспомнить, что было в записи. CX Codex +1 510установок YouTube Automation Claude Office Skills Скилл для автоматизации канала: загрузка и планирование видео, метаданные, аналитика, работа с комментариями. Пригодится, если ведёшь канал и хочешь отдать рутину агенту. CX Codex +1 5 200установок youtube-seo kostja94 Скилл для оптимизации видео и канала на YouTube: заголовки, описания, теги, превью. Пригодится, когда нужно вывести ролик в поиск и в ответы ИИ. CX Codex +1 3 400установок youtube-clipper nexu-io Автоматизирует нарезку видео с YouTube: загружает исходник, выделяет фрагменты, добавляет субтитры и экспортирует клип. Пригодится, если нужно быстро создавать шорты или highlights из длинного контента. CX Codex +1 2 700установок muapi-youtube-shorts SamurAIGPT Нарезает длинное видео на вертикальные клипы 9:16 с оценкой виральности и авто-кропом по лицу. Пригодится, когда из подкаста или стрима нужны Shorts, TikTok или Reels. CX Codex +1 2 700установок youtube-ads kostja94 Помогает выбрать формат YouTube-объявлений, собрать креатив под него и проверить кампанию перед запуском. CX Codex +1 1 100установок

Из того же набора10

youtube-search Скилл ищет видео, каналы и плейлисты на YouTube и вытаскивает транскрипты через TranscriptAPI. Пригодится, когда агенту нужен материал с видео, а не из статей. CX Codex +1 986установок video-transcript Извлекает субтитры и текст из роликов YouTube по ссылке или идентификатору. Пригодится, когда нужно быстро получить конспект видео или цитаты. CX Codex +1 885установок transcript Получает расшифровки YouTube-видео для пересказа, перевода, цитирования и проверки фактов. Срабатывает, когда видео служит источником. CX Codex +1 816установок subtitles Загружает субтитры и расшифровки с YouTube по ссылке или идентификатору ролика. Помогает переводить видео, читать текст речи и изучать языки. CX Codex +1 810установок youtube-channels Ищет и просматривает каналы YouTube по @handle, URL или ID. Пригодится, чтобы проверить свежие ролики, ленту автора или публикации по разделам. CX Codex +1 748установок captions Получает текст и субтитры YouTube-видео с таймкодами. Пригодится для чтения, перевода, проверки содержания и задач доступности. CX Codex +1 726установок youtube-playlist Разбирает плейлист YouTube по ссылке или ID: выдаёт список роликов постранично и тянет транскрипты через TranscriptAPI. CX Codex +1 714установок youtube-data Скилл для получения субтитров, метаданных роликов, списков видео и поиска на YouTube без Google API и OAuth через сервис TranscriptAPI. CX Codex +1 708установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой