---
title: "Get a YouTube video transcript"
method: GET
path: "/transcript"
---

# Get a YouTube video transcript

`GET /transcript`

## Request

- Base URL: `https://getyoutubetranscript.com/api/v1`
- URL: `https://getyoutubetranscript.com/api/v1/transcript`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-api-key`

Full transcript for one video, plus title/author/thumbnail metadata. One block of text by default; add 'timestamps=true' to also get 'segments', one {start, duration, text} per caption line (times in seconds). Same credit cost either way. Provenance: language_code is the caption track actually returned and can differ from requested_language (YouTube falls back to the track it has); caption_type is 'manual' (creator-uploaded) or 'auto' (speech recognition), null when unknown for older transcripts; cached says whether it came from our stored copy, fetched at fetched_at. Failed requests (no captions, unavailable video) are never charged.

## Query parameters

- `v` string, required
- `language` string
- `timestamps` boolean
- `translate` string

## Response `200`

Transcript retrieved. 'segments' is present only when timestamps=true.

## Other responses

- `400`: Bad request - missing or invalid parameters.
- `401`: Missing or invalid API key.
- `402`: Out of credits.
- `404`: Video unavailable or no transcript/captions found.
- `429`: Rate limit exceeded for the key's plan tier (60/200/300 requests per minute on free/monthly/annual).

---

[API](https://skmtc.dev/getyoutubetranscript/apis/getyoutubetranscript-api.md) · [All operations](https://skmtc.dev/getyoutubetranscript/apis/getyoutubetranscript-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getyoutubetranscript/apis/getyoutubetranscript-api/revisions/9e125f131154?raw)
