Skip to main content
Once uploaded, a video moves through a background pipeline before it’s searchable. See Upload Videos for the API calls that trigger and poll it, and Processing Status for the status values a job moves through.

Pipeline stages

  1. Probe — duration, resolution, fps, and codec are read from the file
  2. Transcription — the full audio track is transcribed by Whisper and written as timestamped speech segments
  3. 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
  4. 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
  5. Visual embedding — each extracted frame is encoded into a vector (see Embeddings)
  6. Indexing — vectors and transcript segments are written to the vector store and Postgres, tagged with video_id and collection_id
  7. 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 scene segments
  8. OCR — frames are sampled more densely (every 1.75s) and scanned for on-screen text, indexed as ocr segments
Once every stage completes, the job’s status flips to 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.

Processing time

Typical processing time is 1–3 minutes per 10 minutes of video. Actual time depends on server load and video complexity — a video with long stretches of speech takes longer to transcribe than a silent one of the same length.

Partial failure handling

Frame extraction and embedding happen per-frame — if a handful of frames fail to decode, the pipeline skips them and continues rather than failing the entire job. Scene labeling and OCR are best-effort enrichment stages: if either fails outright, the job still completes with frame and transcript indexing intact.

Re-indexing

If Pureframe AI ships a new embedding model version, existing videos can be re-embedded without re-running transcription — frames already extracted and stored are simply re-encoded with the new model. This keeps re-indexing fast even for large libraries.