YouTube Toolkit

The YouTube Toolkit extracts transcripts, video metadata, channel analytics, playlist data, and search results from YouTube — without requiring a Google API key or OAuth setup.

These pages are workflow guides. For the exact live request and response contract, use the API reference at https://youtube.toolkitapi.io/documentation and the OpenAPI spec at https://youtube.toolkitapi.io/openapi.json.

Base URL

https://youtube.toolkitapi.io/v1/youtube/

Browse by topic

Quick Start

Get a video transcript in one call:

curl "https://youtube.toolkitapi.io/v1/youtube/transcript?url=https://www.youtube.com/watch?v=dQw4w9WgXcQ" \
  -H "X-API-Key: YOUR_KEY"
import requests

r = requests.get(
    "https://youtube.toolkitapi.io/v1/youtube/transcript",
    headers={"X-API-Key": "YOUR_KEY"},
    params={"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"},
)
transcript = r.json()
print(transcript.get("transcript", "")[:200])
const params = new URLSearchParams({ url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ" });
const r = await fetch(`https://youtube.toolkitapi.io/v1/youtube/transcript?${params}`, {
  headers: { "X-API-Key": "YOUR_KEY" },
});
const data = await r.json();
console.log(data.transcript.substring(0, 200));

Browse all YouTube endpoints →

Core endpoint groups

Transcripts

Endpoint Description
GET /v1/youtube/transcript Get captions and subtitles for a YouTube video
POST /v1/youtube/transcript/batch Submit up to 20 URLs for async batch transcript extraction
GET /v1/youtube/transcript/batch/{job_id} Poll the status and results of a batch job

Example — fetch a transcript:

curl "https://youtube.toolkitapi.io/v1/youtube/transcript?url=https://www.youtube.com/watch?v=dQw4w9WgXcQ" \
  -H "X-API-Key: YOUR_KEY"

Video & Channel

Endpoint Description
GET /v1/youtube/video Title, description, duration, stats, and thumbnail for a video
GET /v1/youtube/channel Subscriber count, video count, description, and metadata for a channel
GET /v1/youtube/channel/videos Paginated list of video IDs published by a channel
Endpoint Description
GET /v1/youtube/playlist Title, description, and video count for a playlist
GET /v1/youtube/playlist/videos Ordered list of video IDs in a playlist
GET /v1/youtube/search Search YouTube for videos, channels, and playlists

Common patterns

  • All endpoints accept a YouTube URL or ID — you do not need to pre-extract the video ID or channel handle.
  • The transcript endpoint auto-detects available languages and falls back gracefully when a preferred lang is not found.
  • The batch transcript flow is async: submit with POST, then poll GET .../batch/{job_id} until status is completed.
  • channel accepts a channel ID (UCxxxxxx), a @handle, or a full channel URL interchangeably.

Common errors

Scenario Status Detail
Missing or invalid API key 401 Unauthorized
Invalid or unparseable URL/ID 400 invalid-request error code
Transcript not available 404 transcript-not-found error code
Missing required parameter 422 Validation Error

Keeping this section in sync

  • the live OpenAPI spec is the source of truth for paths, methods, and schemas
  • the detailed docs explain workflows and use cases rather than duplicating every field
  • if you notice a mismatch, trust the API reference first and update this page second