Draft 1.0, proposed
Agent-Ready Video (ARV)
An open standard that lets AI agents find, cite and play the exact moment in a video, with rights and credit attached.
For video publishers and creators, the builders of AI assistants, and the teams that run players and video platforms.
- Status
- Draft 1.0, proposed
- Implementations
- 1 origin live, self-declared
- Example objects
- 7, served as JSON
- Open licenses
- W3C CLA (spec text), Apache-2.0, CC-BY-4.0
- Last change
- 2026-09-24
How it works #
One moment, named by its time range, travels through three steps. The same rights and credit go with it each time.
Crawl time
Crawlers read your manifest at
/.well-known/arv, your catalog and the JSON-LD Clips on each video page. Every moment has a stable id anyone can recompute.Inference time
An agent searches moments and checks rights through fixed MCP tools. Search results carry the moment, the evidence and the rights, and never a stream URL.
Playback
A play call returns a short-lived descriptor. Any player starts at the right second and keeps playing. A signed receipt records what was served.
A real example #
These are the actual example objects from Schema 1.0, served as JSON at /examples/1.0/. Fetch them from a browser or a test.
{
"arv": "1.0",
"conformance_level": "L2",
"publisher": {
"name": "Example Garage",
"contact": "agents@example.com"
},
"license_url": "https://example.com/license.xml",
"jwks_url": "https://example.com/.well-known/jwks.json",
"catalogs": [
"https://example.com/arv.json"
],
"tool_profiles": {
"mcp_origin": {
"url": "https://example.com/mcp",
"version": "1.0"
},
"webmcp_page": {
"adapter": "https://example.com/webmcp/v1/adapter.js",
"version": "1.0"
},
"nlweb": {
"ask": "https://example.com/ask"
},
"a2a": {
"card": "https://example.com/.well-known/agent-card.json"
}
},
"validator_report": "https://agentreadyvideo.org/validator/r/example.com/2026-09-23",
"schema": "https://agentreadyvideo.org/schema/1.0/manifest.schema.json",
"entitlement_url": "https://example.com/account/link",
"payment_terms_url": "https://example.com/terms/payment"
}{
"arv": "1.0",
"id": "mom_rg2e4kdenkmkzilboihacumshn",
"moment_uri": "arv:vid_8f2c#t=12400,31000",
"moment_url": "https://example.com/videos/carb#t=12.4,31",
"asset_id": "vid_8f2c",
"start_ms": 12400,
"end_ms": 31000,
"snap": "sentence",
"title": "Setting the idle mixture screw",
"evidence": [
{
"type": "transcript",
"start_ms": 12900,
"end_ms": 18200,
"text": "Turn the mixture screw a quarter turn out",
"confidence": 0.93
},
{
"type": "shot_caption",
"start_ms": 14000,
"end_ms": 22000,
"text": "Close-up of a screwdriver on the idle screw",
"confidence": 0.81
}
],
"evidence_grade": "C",
"confidence": {
"score": 0.84,
"band": "high"
},
"aliases": [
"amt_2b7c..."
]
}{
"arv": "1.0",
"moment_uri": "arv:vid_8f2c#t=12400,31000",
"start_ms": 12400,
"end_ms": 31000,
"cue_points": [
22000
],
"sources": [
{
"kind": "hls",
"provider": "mux",
"token_ref": "ptk_91",
"start_ms": 12400
},
{
"kind": "embed",
"provider": "youtube",
"embed_url": "https://www.youtube.com/embed/abc",
"start_param": "start=12"
}
],
"poster": "https://example.com/poster/vid_8f2c.jpg",
"captions": [
{
"lang": "en",
"url": "https://example.com/cc/vid_8f2c.vtt"
}
],
"token": {
"ref": "ptk_91",
"jws_kid": "k-2026-09",
"expires_at": "2026-09-23T12:10:00Z",
"scope": "segment"
},
"entitlement": {
"required": false,
"kind": "none"
},
"payment": {
"required": false,
"model": "free"
}
}{
"arv": "1.0",
"receipt_id": "rcp_5x",
"moment_uri": "arv:vid_8f2c#t=12400,31000",
"moment_id": "mom_rg2e4kdenkmkzilboihacumshn",
"action": "segment_display",
"served_to": {
"agent": "chatgpt",
"surface": "chat"
},
"policy_version": 7,
"served_at": "2026-09-23T12:00:04Z",
"citation": "Example Garage, Tuning a carburettor, 0:12",
"jws": "eyJhbGciOiJFUzI1NiIsImtpZCI6ImstMjAyNi0wOSJ9...",
"entitlement_ref": "ent_free_public"
}Who it is for #
Publishers and creators
You own video and want AI assistants to find it, play the right second and credit you. Start at L1 with JSON files on the site you already run.
Agent and assistant builders
You want to cite and play video moments without guessing at URLs or rights. Call one tool profile on any ARV origin.
Player and platform vendors
You run a player or a video platform. One descriptor tells your player where to start. An adapter is under 100 lines.
The five things ARV adds #
ARV reuses thirteen standards as they are, including schema.org, Media Fragments, RSL, AIPREF and MCP. It adds only what video needs and nobody else defines.
Moments
A time range on a video, named by its range: arv:vid_8f2c#t=12400,31000. Anyone can recompute its id.
Per-moment rights
What an agent may do with each moment: show it, quote up to N seconds, embed the source, and whether credit is required.
Evidence
Typed spans (transcript, on-screen text, shot caption, visual) inside the moment that show why it answers the question.
Player-neutral playback
One descriptor any player can use to start at the right second. Start time is the rule; the end is advisory.
Usage receipts
A signed record of which moment an agent served, under which rights policy, with the citation it showed.
The thirteen standards it binds #
ARV reuses each of these as it is. The third column is all ARV adds.
| Standard | What it covers | What ARV adds | When it applies |
|---|---|---|---|
schema.org VideoObject, Clip, SeekToAction | Video and chapter metadata for search engines | Clip @id equals the moment URI; a Clip appears only when the rights allow segment display | Crawl time |
W3C Media Fragments (#t=start,end) | Addressing a time range in a media URL | The snapped range is the identity, with millisecond precision in the URI | Crawl, inference, playback |
| Video sitemaps, MRSS | Listing videos for crawlers and feeds | Per-moment entries and a link to the manifest | Crawl time |
| llms.txt | A plain guide for language models | Fixed section order that points at the manifest and tools | Crawl time |
| IndexNow | Push notice of changed URLs | Push when a moment or its rights change, not only when a page changes | Crawl time |
| RSL 1.0 | Machine-readable license and payment terms | Per-moment video terms (clip, segment display, source embed, quote limits) | Crawl time, inference time |
IETF AIPREF (Content-Usage) | Train, AI-use and search preferences | Header derived from the same rights record as RSL, so they never disagree | Crawl time |
| MCP and MCP Apps | Agent tool calls and in-chat UI | Origin tool profile with fixed names and shapes; forbidden-field rule | Inference time |
WebMCP (document.modelContext) | Tools a page exposes to an in-browser agent | Page profile: three tools plus an optional ask tool | Inference time |
| NLWeb | /ask returning schema.org items | Items are Clips with moment URIs | Inference time |
| A2A agent card | Agent-to-agent discovery | Card skills map to the MCP origin profile | Inference time |
| JSON Schema, JWS, JWKS | Shape validation, signatures, key sets | Versioned $id URLs; signed playback tokens and receipts | All |
| HLS, DASH, MP4, iframe players | Delivery and players | Player-neutral descriptor with a start for each source | Playback |
Status and roadmap #
| Item | State |
|---|---|
| Specification | Draft 1.0, proposed. Published 2026-09-23 at /spec/1.0. It may change before 1.0 is final. See the changelog. |
| Quick start and examples | Live now. Reach L1 on a static site with seven example objects. |
| JSON Schemas | Live. Seven schemas at fixed, versioned URLs. |
| Validator and badge | Coming. One command checks L1, L2 and L3. |
| Starters | Coming: reference producer, player adapter, MCP origin profile. |
| URI scheme | Provisional registration of arv: requested from IANA on 2026-09-24. |
| W3C Community Group | Announced for support. Support the proposal at W3C. |
| Implementations | None yet. The draft says "proposed" until an outside implementation passes the validator. Implementations. |
Common questions #
How to cite #
Agent-Ready Video (ARV) Specification, Draft 1.0 (proposed). AgentCDN, 2026. https://agentreadyvideo.org/spec/1.0
Link to a section with its anchor, for example https://agentreadyvideo.org/spec/1.0#moment.