---
title: "Extract an existing caption track from a public YouTube video"
method: POST
path: "/api/youtube/transcript"
---

# Extract an existing caption track from a public YouTube video

`POST /api/youtube/transcript`

## Request

- Base URL: `https://api.carryfeed.com`
- URL: `https://api.carryfeed.com/api/youtube/transcript`
- Auth: HTTP bearer

Extract an existing caption track from a public video up to 12 hours. Successful results cost $0.005 from the signed-in account's Tools balance. This endpoint does not transcribe audio, and failed requests release the reservation.

## Request body

- object
  - `url` string, uri, required
  - `language` string: Optional existing caption language code
  - `requestId` string, required
  - `maxCostMicros` integer: Maximum approved cost in USD micros

## Response `200`

Normalized transcript, video metadata, caption-track details, and timestamps

## Other responses

- `400`: Invalid YouTube URL or request
- `402`: Insufficient Tools balance
- `404`: No caption track is available
- `409`: The current unit price exceeds maxCostMicros
- `422`: Video exceeds the 12-hour operational limit
- `502`: Temporary YouTube or extraction failure; the Tools reservation is released
- `504`: The total extraction deadline elapsed; the Tools reservation is released

---

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