---
title: "Retrieve transcript for a YouTube video"
method: GET
path: "/youtube/transcript/{id}"
tags: ["YouTube"]
---

# Retrieve transcript for a YouTube video

`GET /youtube/transcript/{id}`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/youtube/transcript/{id}`
- Auth: API key in header `x-api-key`

Returns transcript segments for a YouTube video using YouTube's native player captions.
Set `format=text`, `format=srt`, or `format=vtt` to receive plain-text output instead of the standard response envelope.
Returns `404` when the video currently has no transcript/captions available in any language — this is a normal, non-retryable result, not an error condition.
Returns `503` when the request is temporarily blocked or rate-limited; retrying after a short delay may succeed.

## Path parameters

- `id` string, required

## Query parameters

- `lang` string
- `translate_to` string
- `format` 'json' | 'text' | 'srt' | 'vtt'
- `timestamps` boolean

## Headers

- `x-api-key` string, required

## Response `200`

OK

- YoutubeTranscriptResponseDoc
  - `code` integer
  - `data` YoutubeTranscriptResponse
    - `is_generated` boolean: Whether the transcript is auto-generated rather than written by a person.
    - `language` string: Language name of the transcript, such as `English`.
    - `language_code` string: Language code of the transcript, such as `en`.
    - `segments` YoutubeTranscriptSegment[]: Transcript split into timed segments.
      - `duration` number: Length of the segment, in seconds.
      - `start` number: Time the segment starts, in seconds from the start of the video.
      - `text` string: Transcript text spoken in this segment.
    - `text` string: Full transcript as one block of text.
    - `translation_language` string: Language code the transcript was translated into. Omitted when no translation was requested.
    - `video_id` string: YouTube video ID the transcript belongs to.
  - `msg` string

## Other responses

- `400`: Missing or invalid parameters
- `429`: Rate limit exceeded
- `500`: Internal server error

---

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