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
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
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 allBuild · 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.
{
"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?"
}
}
}{
"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
01 · POST /v1/systemone/jobs
One video, up to 64 typed questions. 202 with a job id.
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.
03 · Your code
Set the thresholds. Clip, rank, blur, hold or route a person to review.























