An example

You get clean data, shaped to your schema.

You tell Lirovo the fields you want, and it returns typed JSON that matches them. Every value carries a confidence score, and every value links back to the exact second and modality it came from. Here is what that looks like on a real video.

Define a schema, get a typed record back

This run is a Mistral AI CEO interview on CNBC. On the left, the fields we asked for. On the right, the typed JSON Lirovo returned, conforming to exactly that shape.

schema.json
{
  "speakers": "string[]",
  "organizations": "string[]",
  "funding_round": {
    "investor": "string",
    "stake": "string",
    "amount": "string"
  },
  "valuation": "string",
  "topics": "string[]"
}
output.json
{
  "speakers": ["Arthur Mensch"],
  "organizations": ["Mistral AI", "ASML", "Nvidia"],
  "funding_round": {
    "investor": "ASML",
    "stake": "~11%",
    "amount": "$2B"
  },
  "valuation": "$14B",
  "topics": ["semiconductors", "AI compute"]
}

The schema is enforced. Lirovo validates the output against the JSON Schema you give it, so what comes back conforms to what you asked for. In this run the filled values land between 0.92 and 0.97 confidence, and each one keeps an evidence pointer to the moment it was drawn from.

Every value is typed, scored, and traceable

A value is only useful if you can trust it. Alongside the typed result, Lirovo attaches a confidence score to each value so you can set your own threshold and gate anything below it.

Every value also links back to the exact second it came from, and whether it was spoken or shown on screen. So when the schema says the valuation is $14B, you can open the moment that says so and check it yourself. See how that works on the evidence page.

Explore the typed output

This is the Data view from the product, on the same run: the extracted fields laid out as queryable tables, each row carrying the source moment it was drawn from.

Mistral CEO Arthur Mensch
analysis ready
Mistral CEO Arthur Mensch
Mistral CEO Arthur Mensch
CNBC · 45:59
Timeline0:00 / 45:59
Arthur
Arjun
Events
0:0011:2922:5934:2945:59
Compute & sovereignty
AI economics
Semiconductors
Vibe & agents
Cybersecurity
AGI & physical world
ContradictionDecisionClaimclick to scrub
Speakers2
Arthur Mensch
92%
Arjun Karpal
4%
video_facts_bronze·Mistral CEO Arthur Menschvideo_id=325gGv0eWV8hash=9f2a3c7d4e1b…job=job_c0296adaee7cmodel=gemini-3.1-flash-lite
fact_type·
Results17 rows · bronze · 1 row = 1 fact · validation: clean
#typesubjectattributevalueunitconfsource
1metricMistral AIvaluation$13B+13,000,000,000 USDUSD0.95audio
2metricMistral AIvaluation$14B14,000,000,000 USDUSD0.97visual
3metricMistral AIdata_center_investment€4 billion4,000,000,000 EUREUR0.96audio
4targetMistral AIcompute_capacity200MW → 1GW200,000,000 → 1,000,000,000 WW0.92audio
5rangeUS hyperscalersai_capex_per_year$700–800B700,000,000,000 → 800,000,000,000 USDUSD0.89audio
6metricEuropedigital_deficit_vs_us_per_year€250B250,000,000,000 EUREUR0.88audio
7metricAI inference markettoken_market_size~$5T5,000,000,000,000 USDUSD0.84audio
8metricGlobal manufacturingaddressable_market$30T30,000,000,000,000 USDUSD0.83audio
9metricASMLstake_in_mistral~11%11 %%0.90audio
10entityMistral AIorganization.nameMistral—0.99audio
11entityArthur Menschspeaker.roleCEO of Mistral—0.98both
12entityVibeproduct.nameVibe—0.94both
13entityASMLorganization.roleLead investor (Series C)—0.91audio
14claimMistral AIinvests_indata centers in France and Sweden—0.95audio
15claimEuropehas_windowroughly two years to build sovereign compute—0.86audio
16claimAI agentsdisruptthe per-seat SaaS model—0.82audio
17decisionMistral AIownershipremain a private company—0.90audio

Use it anywhere

The same typed result comes out of the harness wherever you run it: standalone in your terminal, as a plugin inside your agent harness, or over MCP, so it drops into your pipeline, your workflow, or your assistant without a manual step.

01
Terminal

run it standalone, typed JSON back

02
Agent plugin

drop it into your agent harness

03
MCP

call it from your assistant

Turn a video into a record like this

Run a live extraction on a video of your own, or join the waitlist and run it on your own machine with your own inference.