status values a job moves through.
Pipeline stages
- Probe — duration, resolution, fps, and codec are read from the file
- Transcription — the full audio track is transcribed by Whisper and written as timestamped speech segments
- Scene detection — shot boundaries are found via frame-difference analysis (CPU-only, runs for every plan). Cut points are added to the frame extraction grid so shots aren’t missed by the fixed interval alone
- Frame extraction — frames are pulled at regular intervals (every 5 seconds) plus at every detected cut, and scanned for CSAM before anything else touches them
- Visual embedding — each extracted frame is encoded into a vector (see Embeddings)
- Indexing — vectors and transcript segments are written to the vector store and Postgres, tagged with
video_idandcollection_id - Scene labeling (Pay as you go and Enterprise plans) — a representative frame from each shot is classified into scene labels, and optionally captioned, then indexed as
scenesegments - OCR — frames are sampled more densely (every 1.75s) and scanned for on-screen text, indexed as
ocrsegments
done and the video becomes searchable.
Scene labels and captions are Pay as you go/Enterprise features — a
scene-type match in search results implies the source video was indexed on a paid plan. Frame, transcript, and OCR indexing run the same way on every plan.