Get video transcript
get_transcriptFetch the full transcript for a video or media file. Accepts a YouTube video ID or URL, TikTok and Instagram URLs, and direct media file URLs. If no transcript comes back, the result says whether captions definitively do not exist (aiFallback.captionsUnavailable) and whether transcribing the audio would still work (aiFallback.available). When it does, call this tool again with ai_fallback: true.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| video | Yes | Video ID or URL: YouTube (dQw4w9WgXcQ, youtu.be/…), TikTok, Instagram, or a direct media file URL. | |
| chunks | No | Also return the transcript split into pieces of about 500 tokens for an embedding model or vector store (default false), each with its start and end time and a link to that moment. In the structured result only. | |
| markdown | No | Return the transcript as Markdown (default false): a title line, then paragraphs that each open with their time, linked to that moment on YouTube. Use it when you will quote or cite the video. | |
| timestamps | No | Include the timestamped segments in the structured result (default true). Set false when only the text is needed: the segments repeat the transcript's words with timings, so leaving them out keeps the response smaller. | |
| ai_fallback | No | Skip captions and use AI Fallback Transcription of the audio instead. Use this only after a previous call reported aiFallback.available. Charged 1 credit per started 5 minutes of audio, minimum 1 credit, on delivery; short media may return inline, while longer work returns a processing result to collect with a later call. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Canonical URL of the item, when known. | |
| text | No | The full transcript text. | |
| jobId | No | AI-transcription job id, present when outcome is 'processing'. | |
| title | No | Title, or the post caption on TikTok and Instagram. | |
| chunks | No | The transcript in pieces of about 500 tokens. Present when the call passed chunks: true. | |
| reason | No | Structured failure reason when there is no transcript (no_captions, captions_disabled, age_restricted, upstream_error, …). | |
| source | No | captions or audio: where the words came from. | |
| balance | No | Remaining credit balance after this call, when known. | |
| channel | No | Creator: channel name, @handle, username or uploader. | |
| outcome | No | Fetch outcome (ok, no_transcript, processing, …). | |
| videoId | No | The item's id on its platform (YouTube id, TikTok numeric id, Instagram shortcode, or the URL for a file). | |
| duration | No | Media length in seconds, when known. | |
| language | No | Caption track language, or the language detected by AI Fallback Transcription. | |
| markdown | No | The transcript as Markdown with timestamped paragraphs. Present when the call passed markdown: true. | |
| platform | No | youtube, tiktok, instagram or file. | |
| segments | No | Timestamped transcript segments. | |
| aiFallback | No | Present when no transcript came back. Says what was established about captions and whether AI Fallback Transcription can still be tried. | |
| creditsSpent | No | Credits charged for this call (0 on failure or for admins). | |
| thumbnailUrl | No | Poster image; TikTok and Instagram URLs are signed and expire. | |
| creditsNotice | No | Credits words for the user, with the link that acts on them: why the call was refused for credits, or a note once the balance runs low. Pass it on to the user. |