Transcribe speech into a word-timestamped caption element
transcribe_to_captionsTranscribe audio or video into word-timestamped captions for your video project. Runs Whisper locally—no API key or upload required—and accepts a URL or local file path.
Instructions
Transcribe an audio or video file into a word-timestamped caption element (the protocol renders these). Captions need real per-word timings, which can only come from actual speech-to-text — this runs Whisper in the server process (no API key, no third-party upload). Provide a url (fetched server-side — use this in chat-mode, where there is no local file) OR a local path. Requires ffmpeg on the host. By default the caption is added to the current project; set add:false to only return it.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| add | No | Add the caption to the current project. Default true. | |
| url | No | Public URL of an audio/video file to fetch and transcribe. Use this OR path. | |
| path | No | Local path to an audio/video file (Claude Desktop / local servers). Use this OR url. | |
| layer | No | Layer for the caption element (higher = nearer front, the highest layer is on top). Default 999 so captions sit above scene content; if the project already stacks that high, the caption goes one above its top layer instead. | |
| model | No | Whisper model id. Default 'Xenova/whisper-base'. Use '…-tiny.en' for speed, '…-small' for accuracy. | |
| language | No | Force a language code (e.g. "en"); omit to auto-detect. | |
| project_id | No | Which project to act on — the id returned by create_project / set_project / create_promo / load_project. Omit when working on a single local project. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| added | Yes | ||
| word_count | Yes | ||
| duration_seconds | Yes |