← Guides

Content & AI pipelines

How to get a YouTube video transcript

You have a YouTube URL and you need the words. Maybe you are summarising competitor videos, feeding a RAG index, pulling quotes for a newsletter, or checking whether a creator actually said the thing in the thumbnail.

This is one call and one response. Pass the video URL or ID, get the transcript back as timed segments plus the full text. No pagination, no cursor, no cleanup pass.

The endpoint

YouTube

YouTube

Transcript

GET /v1/youtube/transcript

Full transcript of any YouTube video or Short, time-coded and language-tagged.

1 credit per call · $1.50 per 1,000 calls · failed calls never charged

Full endpoint reference

Make the call

Put your key in FASTFETCHZ_KEY. The target below is a real one — it works as written.

curl
curl "https://api.fastfetchz.com/v1/youtube/transcript?target=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DdQw4w9WgXcQ" \
  -H "X-API-Key: $FASTFETCHZ_KEY"

What comes back

Trimmed to the fields that matter. The full payload carries more.

200 application/json
{
  "success": true,
  "service": { "platform": "YouTube", "name": "Transcript" },
  "credits_charged": 1,
  "data": {
    "video_id": "dQw4w9WgXcQ",
    "language": "en",
    "is_auto_generated": true,
    "duration_seconds": 213,
    "segments": [
      { "start": 0.0, "duration": 3.2, "text": "We're no strangers to love" },
      { "start": 3.2, "duration": 3.6, "text": "You know the rules and so do I" }
    ],
    "text": "We're no strangers to love You know the rules and so do I ..."
  }
}

What it costs

1,000 transcripts ÷ 1 per call = 1,000 calls
1,000 calls × 1 credit = 1,000 credits
$2.90

Priced at the Starter pack rate: 10,000 credits for $29.00. Larger packs cost less per credit.

Auto-generated versus uploaded captions

Most videos only have machine captions. is_auto_generated: true tells you which you got. Auto captions have no punctuation and mangle names and jargon, which matters if you are doing entity extraction — clean them with an LLM pass before indexing, or accept the noise.

Videos with captions disabled return a 404. That is a failed call, and failed calls are never charged, so a batch of mixed URLs only costs you the ones that worked.

Building a searchable video archive

The usual pipeline: list a channel's videos, transcribe each one, embed the segments, and keep start on every chunk so a search result can deep-link to the exact second with &t=.

Transcribe once and store the result. Transcripts do not change, so a re-fetch is money you have already spent.

Endpoints you will probably want next