YouTube Transcript API

Turn YouTube into searchable text.

Fetch manual or auto-generated captions as full text and timestamped JSON.

Transcript explorerSample response
GET/transcript/dQw4w9WgXcQ

How cameras see colour

Manual captions selected

1,245 words

English47 segments08:42

Sample data for interface preview

$0.005

per transcript with an API key

20 videos

maximum channel batch per request

JSON + text

timestamped segments and full transcript

manual + auto

caption sources supported

An editorial collage of magnetic tape, waveform strips, timing marks, and translucent green paper
@csaffitzTranscript, English08:42
00:14

The first thing I look for is how the light changes the material.

00:19

That gives you a much better sense of the finish than a static spec.

Keep every word attached to time.

Index clean text for search, then use timestamped segments for citations, playback, clips, and review.

Timestamped segmentsText, start time, duration, full text
Caption provenanceLanguage, manual or auto, available tracks
Batch outcomesCompleted transcripts and item-level failures

The useful output arrives in one call.

Request a preferred language or let the endpoint select the best available caption track.

transcript.ts
const transcript = await client.raw.youtube.getTranscript(
  'dQw4w9WgXcQ',
  { language: 'auto' },
);

console.log(transcript.data.full_text);
console.log(transcript.data.transcript[0]);
Open the SDK reference

One video or a channel corpus.

Use the synchronous route in product flows or batch up to 20 videos with per-item failure details.

Single video

Full text, timestamps, language, and caption source.

GET/v1/raw/youtube/transcript/{video_id}$0.005 / transcript

Channel batch

Up to 20 videos sorted by newest, oldest, or popular.

GET/v1/raw/youtube/channel-transcripts/{handle}$0.005 / transcript

Make video content addressable.

Semantic search

Build searchable video libraries and retrieval pipelines from full text.

Monitor mentions

Find products, claims, topics, and brand references inside spoken content.

Create citations

Link extracted answers and clips back to precise points in a video.

Build archives

Store channel corpora with source, language, identity, and batch status.

Pay for successful data returned.

Each successful transcript uses half a credit. One credit equals $0.01, making the effective price $0.005.

Get API key
Single transcript
0.5 credits
Channel transcript
0.5 credits each
Free-tier minute budget
150 credits
Free-tier hour budget
1,500 credits

Before you integrate.

Exact response schemas and limits live in the API reference.

What does the YouTube transcript API return?

A successful single-video response includes the video ID, title, URL, selected language, caption source, timestamped transcript segments, full plain text, word count, available language tracks, and scrape time.

Does it support auto-generated YouTube captions?

Yes. The endpoint supports manual captions and auto-generated captions. The source field tells you which track was returned, and available_languages lists the other caption tracks found on the video.

Can I fetch transcripts for an entire YouTube channel?

Use GET /v1/raw/youtube/channel-transcripts/{handle}. It fetches up to 20 video transcripts per request, can sort by popular, newest, or oldest, and reports per-video failures without failing the complete response.

How much does a YouTube transcript cost?

API-key requests cost 0.5 credits per transcript returned. One credit is $0.01, so the effective price is $0.005 per transcript. Failed requests are not billed.

Can I use the API from Python?

Yes. Influship publishes an official TypeScript SDK, and Python applications can call the REST endpoint with requests or httpx. Send the API key in the X-API-Key header.

Do I pass a YouTube URL or video ID?

The transcript endpoint accepts the YouTube video ID in the path. If your application receives full URLs, extract and validate the 11-character video ID before making the request.

Make the first request today.

Create a developer account, generate a key, and inspect the response before scaling.