Index a video for questions
video_ingestDownload, transcribe, sample, and embed video from a URL or local file so it can be searched and questioned; interrupted jobs resume from completed stages.
Instructions
Download (for a URL), transcribe, sample frames and embed, so the video can be searched and questioned. Speech and frame work run in parallel. Re-ingesting reuses finished stages, so a failed or interrupted job resumes. Returns a Job; its result holds the video_id, counts and timings.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"source": "<source>"
},
"name": "video_ingest"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Redo stages that already completed. | |
| frames | No | Sample and embed frames. | |
| source | Yes | A video URL or the absolute path of a local media file. | |
| quality | No | Download height for URLs; higher reads small text better. | |
| language | No | Spoken language code such as 'en'. Omit to detect. | |
| max_frames | No | Frames kept after de-duplication. | |
| transcribe | No | Transcribe the speech. | |
| wait_seconds | No | Seconds to wait for completion before returning the job. | |
| frame_interval | No | Seconds between frames; cuts are added. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | What the job does. | |
| next | No | The call to make to keep waiting, while the job is unfinished. | |
| error | No | 'code: message — hint' when the job failed. | |
| stage | Yes | Current step: queued, download, transcribe, frames, embed or done. | |
| job_id | Yes | Pass to video_job to poll, or video_cancel to stop. | |
| result | No | When succeeded: the ingest report (video_id, counts, stages, embedding tokens, elapsed seconds) or the download report (path, codecs, size, whether audio was merged). | |
| source | Yes | The URL or path being processed. | |
| status | Yes | `interrupted` means the server restarted mid-job; ingest again to resume. | |
| message | Yes | Latest human-readable progress line. | |
| progress | Yes | Overall completion from 0 to 1, weighted by how long each stage usually takes. | |
| video_id | No | Known once the source has been resolved; use it with every other tool. |