YouTube Transcript API

YouTube Transcript API for video and channel captions.

Fetch manual or auto-generated captions as timestamped JSON and full text with one API call.

transcript.ts
import Influship from 'influship';

const client = new Influship({
  apiKey: process.env.INFLUSHIP_API_KEY,
});

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

console.log(response.data.full_text);
console.log(response.data.transcript[0]);
// { text, start, duration }
Influship SDK — always check the latest reference at docs.influship.com

$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

Two transcript endpoints cover single videos and channels.

Use the single-video route for synchronous product requests. Use the channel route when you need a bounded corpus with partial-success handling.

MethodEndpointUse it forAPI-key price
GET/v1/raw/youtube/transcript/{video_id}Fetch one video transcript, full text, timestamped segments, and available languages.$0.005 / transcript
GET/v1/raw/youtube/channel-transcripts/{handle}Fetch up to 20 channel transcripts sorted by popular, newest, or oldest.$0.005 / transcript

Use the typed SDK or make the same call over REST.

Both paths use the same public contract. The TypeScript SDK provides generated types; REST works from Python, Go, Ruby, automation tools, and serverless functions.

channel-transcripts.ts
const corpus = await client.raw.youtube.getChannelTranscripts(
  '@mkbhd',
  {
    video_limit: 20,
    sort_by: 'popular',
    language: 'en',
    include_segments: false,
  },
);

for (const item of corpus.data.items) {
  if (item.full_text) {
    console.log(item.video_id, item.full_text);
  }
}
Influship SDK — always check the latest reference at docs.influship.com
transcript.sh
curl   'https://api.influship.com/v1/raw/youtube/transcript/dQw4w9WgXcQ?language=auto'   -H "X-API-Key: $INFLUSHIP_API_KEY"
Influship SDK — always check the latest reference at docs.influship.com

A response shaped for search, RAG, and analysis.

Store full_text for retrieval and language processing. Keep transcript when users need clickable timestamps or segment-level citations.

Transcript content

Choose full text for indexing or timestamped segments for playback and citations.

full_text transcript[] word_count

Caption provenance

Inspect the selected language, source type, and all caption tracks found.

language source available_languages[]

Video identity

Join transcript records back to the exact video and preserve scrape time.

video_id url title scraped_at

Channel batch status

Measure partial success without discarding transcripts that completed.

transcripts_fetched transcripts_failed items[].error

example-response.json
{
  "data": {
    "video_id": "dQw4w9WgXcQ",
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Example video",
    "language": "en",
    "source": "manual",
    "transcript": [
      {
        "text": "Welcome to the channel.",
        "start": 0.5,
        "duration": 2.3
      }
    ],
    "full_text": "Welcome to the channel...",
    "word_count": 1245,
    "available_languages": [
      { "code": "en", "name": "English", "is_auto": false }
    ],
    "scraped_at": "2026-07-19T15:38:38.366Z"
  }
}
Influship SDK — always check the latest reference at docs.influship.com

Built for products that need the words inside video.

The response is ready for a database, vector index, review queue, or customer-facing transcript experience.

RAG and semantic video search

Chunk full_text, attach the video ID and timestamps, then retrieve exact moments across a channel or research corpus.

Media monitoring and brand mentions

Search spoken content for products, companies, claims, and topics that never appear in titles or descriptions.

Content repurposing workflows

Feed reliable transcript text into summarization, clipping, newsletter, article, and social-content pipelines.

Accessibility and searchable archives

Add transcript views and in-video search to libraries where manual caption processing would slow publication.

Choosing between a hosted API, open source, and YouTube itself?

The independent guide compares four serious approaches, including operating cost, cloud-IP failure modes, official API restrictions, and when self-hosting still makes sense.

Transparent usage pricing and credit budgets.

One credit equals $0.01. API-key calls use credit-based rate limits, and every successful response reports the credits charged and remaining minute and hour budgets.

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

Handle errors by response type

400

validation_error

Fix an invalid video ID, handle, language, sort option, or batch parameter.

401

unauthorized

Check the X-API-Key header. Do not retry an invalid key in a loop.

429

rate_limit_exceeded

Honor Retry-After or the rate-limit reset headers, then retry with jitter.

503

service_unavailable

Treat live-platform throttling as temporary. Use bounded backoff and preserve the job.

Developer questions, answered

Exact behavior lives in the API reference. These answers cover the decisions teams make before integrating.

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 with a free developer account.

Generate an API key, copy a working example, and inspect the response before you commit to production volume.