Get transcript
getTranscript(query, options?): TranscriptResponse
Same extraction as POST /v1/transcripts, using query parameters. Useful for browser checks and short scripts. Prefer POST when sending languages arrays or larger option sets.
Security
API Key
All requests require a valid API key from the developer dashboard.
Headers: Authorization: Bearer YOUR_API_KEYorX-API-Key: YOUR_API_KEY
See Authentication for headers and rate limits.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
video_idquery | string | Yes | 11-character YouTube video ID or a full video URL. |
formatquery | string | No | Output format: |
word_levelquery | boolean | No | Include millisecond word offsets on ASR tracks. Default |
languagesquery | string | No | Comma-separated ISO language codes, for example |
track_policyquery | string | No | Track selection: |
Response (HTTP 200)
When format=word_timestamps, segments, sentences, or json3 (application/json):
{
"video_id": string, // Echoed YouTube video ID
"language": string, // Negotiated ISO language code (e.g. "en")
"track_kind": string, // "asr" (auto-generated) or "manual" (creator-uploaded)
"duration_seconds": number, // Total duration of caption track in seconds
"has_word_level": boolean, // Whether word-level offsets are present
"segments": [ // Array of caption segments with timing offsets
{
"text": string, // Segment transcript text
"start": number, // Start offset in seconds
"end": number, // End offset in seconds
"duration": number, // Segment duration in seconds
"words": [ // Word-level timestamps (populated when word_level=true)
{
"word": string, // Individual word
"start": number, // Word start offset
"end": number // Word end offset
}
]
}
]
}When format=markdown, text, srt, or vtt:
Returns the raw document directly with matching Content-Type (e.g. text/markdown, text/plain, text/vtt) without JSON wrapper overhead.