Juvid

Juvid · video decision API

Ask the video.
Find the moment.

One API for questions about recorded video and live streams. Typed answers with a score for every second, so your code can find, compare and act.

Video · Multiple · Fast — scroll

Juvid

Ask

Q1

How teams plug it in · three patterns

Your product. Our answers.

Juvid sits behind your app. It never takes the action — your system does.

Archive search

recorded video

You sendA file or URL from your library

You asktime · choice questions

Juvid returnsScored segments with start and end

Your system doesCuts highlights, tags ad breaks, indexes scenes

Live watch

live · early access

You sendEvery second of a stream

You askStanding yes/no questions

Juvid returnsA score per question, every second

Your system doesAlerts when a score crosses your threshold

Review loop

either

You sendClips over your threshold

You askThe same questions, kept fixed

Juvid returnsScores and the matching seconds

Your system doesQueues them for a person who decides

Live
Live · 1:12.8

Juvid answers

Two hosts, one table — late night talk

talk4,290 watching · 00:44:10 live

Fast · measured, with conditions

How fast is it?

Internal measurements, not a benchmark yet. Each number comes with how it was measured.

From one second of live video to four answers
≤ 0.29 s
Streaming prototype · 1 session · 1 fps · ingest 0.125 s + answer 0.11–0.16 s · HF backend · measured 2026-10-29
A 4-minute video, start to answer
6.2 s
Juvid v4 (27B) · vLLM · 1 request at a time · p50 · measured 2026-10-27
4-minute videos finished per second
0.32 / s
Juvid v4 (27B) · vLLM · 16 requests at once · measured 2026-10-27

How about these streams?

View all

Build · one API · two calls

Send a video and questions.
Get typed answers back.

Highlights, live Q&A and moderation were all this same API with different questions.

request · POST /v1/systemone/jobs
{
  "model": "mmjev-v4full-step2597",
  "state": "Match highlights for the club app.",
  "video": {
    "url": "https://cdn.example.com/match-0412.mp4"
  },
  "questions": {
    "shot": {
      "type": "time",
      "instructions": "When is a shot on goal happening?"
    },
    "fans": {
      "type": "time",
      "instructions": "When are fans celebrating?"
    },
    "keep": {
      "type": "noul",
      "instructions": "Is this clip worth a highlight reel?"
    }
  }
}
response · GET /v1/systemone/jobs/{id}
{
  "job_id": "job_8f2c1a",
  "status": "succeeded",
  "model": "mmjev-v4full-step2597",
  "error": null,
  "result": {
    "id": "so_51d0",
    "model": "mmjev-v4full-step2597",
    "answers": {
      "shot": {
        "type": "time",
        "presence": 0.95,
        "best": {
          "start": 8,
          "end": 12,
          "score": 0.95
        },
        "segments": [
          {
            "start": 8,
            "end": 12,
            "score": 0.95
          }
        ],
        "resolution_s": 1
      },
      "fans": {
        "type": "time",
        "presence": 0.96,
        "best": {
          "start": 12,
          "end": 16,
          "score": 0.96
        },
        "segments": [
          {
            "start": 12,
            "end": 16,
            "score": 0.96
          },
          {
            "start": 21,
            "end": 24,
            "score": 0.95
          }
        ],
        "resolution_s": 1
      },
      "keep": {
        "type": "noul",
        "noul": 0.91
      }
    }
  }
}

Question types: noul yes/no, 0–1 · time segments in seconds · choice one of your options · score a level on your ordered scale

  1. 01 · POST /v1/systemone/jobs

    One video, up to 64 typed questions. 202 with a job id.

  2. 02 · GET /v1/systemone/jobs/{id}

    Poll until succeeded or failed, or pass a callback_url to get the job POSTed once when it ends. Every answer comes back typed, with scores and time segments.

  3. 03 · Your code

    Set the thresholds. Clip, rank, blur, hold or route a person to review.