# Extract Subtitles

> Get every subtitle track of a YouTube video with direct download URLs

Source: https://platform.snapany.com/docs/extract-subtitles

[`POST /openapi/v1/extract/subtitles`](https://platform.snapany.com/docs/api#POST/extract/subtitles) — 1 credit per call.

Returns video metadata plus **every available subtitle track** (manual and auto-generated, all languages), each with direct download URLs in seven formats: `srt`, `vtt`, `ttml`, `json3`, `srv1`, `srv2`, `srv3`. Currently supports YouTube.

```bash
curl -X POST https://api.snapany.com/openapi/v1/extract/subtitles \
  -H "Authorization: Bearer sk_snapany_xxx" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://www.youtube.com/watch?v=jNQXAC9IVRw"}'
```

The response contains:

- **id / title / text / duration / published_at / thumbnail_url**: video metadata
- **subtitles**: one entry per language track — `language_name` (display name; auto-generated tracks are labeled, e.g. `English (auto-generated)`), `language_tag` (BCP 47 style), and `urls` with a direct download link per format

Download the URL of the format you need — `srt`/`vtt` for players and editors, `json3` for programmatic processing with per-cue timestamps. The URLs are signed and expire, so fetch them promptly rather than storing them.

A video with no subtitles fails with code `no_subtitles` (HTTP 404) and is **not charged** — catch that code and fall back to [Transcription](https://platform.snapany.com/docs/transcription).

Full schema and a real-shaped response example: [API Reference](https://platform.snapany.com/docs/api#POST/extract/subtitles).

## Subtitles vs. Transcription

- **This endpoint** returns the subtitles YouTube already has — instant, 1 credit, but only for videos that have them.
- **[Transcription](https://platform.snapany.com/docs/transcription)** runs Whisper large-v3 on the audio — works on any video (including those without subtitles) and supports speaker diarization, at 4 credits per minute.

A common pipeline: try `/extract/subtitles` first; on a `no_subtitles` error, fall back to [`/transcriptions`](https://platform.snapany.com/docs/transcription).

## Billing

1 credit per successful call, deducted after the extraction succeeds. Failed calls (invalid URL, unsupported site, no subtitles) are never charged. See [Credits & Billing](https://platform.snapany.com/docs/credits).
