get_video_transcript
Retrieve a YouTube video transcript with timestamped clickable links, so every quote can be traced to its exact moment. Focus on a specific time range or language while keeping citations verifiable.
Instructions
Get a video's transcript as timestamped lines you can quote and cite.
Every line starts with a Markdown link that seeks to that moment, so quoting a timestamp back keeps claims traceable and clickable — e.g. "at [03:15] he says the battery is 17% larger than last year". Reproduce those links verbatim rather than rewriting them as plain text. Narrow long videos with start_seconds and end_seconds. Reads public caption tracks, so it costs no API quota.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| video | Yes | Video id, or a watch / youtu.be / shorts URL | |
| languages | No | Preferred language codes in priority order, e.g. ['en', 'en-US']; defaults to the video's original spoken language | |
| end_seconds | No | Only return the transcript up to this offset | |
| chunk_seconds | No | Merge caption cues into windows of about this many seconds; 0 keeps raw cues | |
| start_seconds | No | Only return the transcript from this offset onward |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Canonical watch URL | |
| text | Yes | Transcript as '[[MM:SS]](watch url with &t=seconds) text' lines, one per merged segment; each timestamp is a Markdown link that seeks to that moment, so quoting a line carries its own citation | |
| language | Yes | Transcript language name | |
| video_id | Yes | Video id | |
| end_seconds | Yes | End offset of the last returned line | |
| is_generated | Yes | True when auto-generated by YouTube rather than creator-supplied | |
| language_code | Yes | Transcript language code, e.g. en | |
| segment_count | Yes | Number of timestamped lines returned | |
| start_seconds | Yes | Offset of the first returned line | |
| available_languages | No | Language codes with a transcript for this video |