API субтитрів YouTube і MCP-сервер
Отримуйте субтитри, транскрипти, переклади та готові статті зі свого коду або з AI-агента. Два способи: звичайний REST API або MCP-сервер, який підключається до Claude Code, Claude.ai і Cursor.
Швидкий старт
Створіть API-ключ і викличте API з ним. Керування ключами →
curl -X POST https://api.unwatched.click/api/v1/subtitles \
-H "Authorization: Bearer unw_sk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","lang":"en"}'Аутентифікація
Кожен запит потребує API-ключ. Працюють обидва варіанти заголовка — MCP-клієнти вміють лише Authorization, а x-api-key зручніший для curl. Ключі зберігаються як хеш: якщо втратили — відкличте і створіть новий.
Authorization: Bearer unw_sk_YOUR_KEY
# or, equivalently:
x-api-key: unw_sk_YOUR_KEYMCP-сервер
Ендпоінт MCP — POST https://api.unwatched.click/mcp. Нічого встановлювати не треба: додайте URL і ключ у будь-який MCP-клієнт. У Claude Code:
claude mcp add --transport http unwatched https://api.unwatched.click/mcp \
--header "Authorization: Bearer unw_sk_YOUR_KEY"У Claude.ai: Settings → Connectors → додати custom connector з тим самим URL і заголовком. У Cursor додайте це у mcp.json:
{
"mcpServers": {
"unwatched": {
"url": "https://api.unwatched.click/mcp",
"headers": {
"Authorization": "Bearer unw_sk_YOUR_KEY"
}
}
}
}Доступні інструменти
get_video_subtitles— повний транскрипт із таймкодамиlist_subtitle_tracks— які мови субтитрів має відеоget_video_info— назва, тривалість, превʼю, дата публікаціїget_video_frame— кадр за таймінгом, повертається зображеннямtranslate_transcript— переклад отриманого транскрипту зі збереженням таймкодівsummarize_video— генерація структурованої статті за відеоsearch_articles— пошук серед уже згенерованих статей
REST-ендпоінти
POST /api/v1/subtitles { url | videoId, lang? }
GET /api/v1/videos/:videoId
GET /api/v1/videos/:videoId/tracks
POST /api/v1/frames { url | videoId, t | timestamps[], width?, includeBase64? }
GET /api/v1/videos/:videoId/frame?t=&width=
POST /api/v1/transcripts/translate { videoId, sourceLang, targetLang }
POST /api/v1/summaries { url | videoId, lang, length?, sourceLang? }
GET /api/v1/articles?query=&category=&lang=&page=&limit=
GET /api/v1/creditsТранскрипт повертається як segments із { start, end, text } у секундах — за часом закінчення можна цитувати точні фрагменти.
Кредити
Виклики API та MCP витрачають ті самі кредити, що й сайт, і кожен акаунт має безкоштовну денну норму. Кешовані результати безкоштовні: повторний запит того самого відео й мови не коштує нічого.
| Операція | Ціна |
|---|---|
| Отримання субтитрів (без кешу) | 2 кредитів |
| Звичайна сумаризація | 1 кредитів / год |
| Переклад транскрипту | 1 кредитів / год |
| Скриншот відео | 1 кредитів |
| Метадані, список дорожок, пошук статей | Включено |
Помилки
Помилки завжди повертають { "error": { "code", "message" } } — розбирати потрібно лише одну форму.
| Статус | Код | Значення |
|---|---|---|
| 400 | INVALID_REQUEST | Параметри відсутні або некоректні. |
| 401 | INVALID_API_KEY | Ключ відсутній, недійсний, відкликаний або прострочений. |
| 402 | INSUFFICIENT_CREDITS | Недостатньо кредитів для операції. |
| 404 | TRANSCRIPT_NOT_FOUND | Транскрипт не збережено — спершу отримайте субтитри. |
| 422 | NO_SUBTITLES | У відео немає придатних субтитрів. |
| 429 | RATE_LIMITED | Занадто багато запитів. Типово 60 на хвилину на ключ. |
| 502 | EXTRACTION_FAILED | Не вдалося витягти субтитри для цього відео. |
| 503 | SERVICE_BUSY | Потужності витягування перевантажені. Повторіть згодом. |

