> ## Documentation Index
> Fetch the complete documentation index at: https://docs.agentcdn.com/llms.txt
> Use this file to discover all available pages before exploring further.

# The ARV record

> One JSON record per video that tells AI what is in it, who owns it and how it may play. The page block and every AI answer come from it.

ARV (Agent-Ready Video) is an open standard: one record per video that tells AI what is in the video, who owns it and how it may play. The spec lives at [agentreadyvideo.org](https://agentreadyvideo.org). AgentTV builds an ARV record for every video it indexes.

ARV does not replace schema.org. Search engines keep reading `VideoObject` JSON-LD at crawl time. The ARV record carries what JSON-LD has no place for, such as timed moments, on-screen text and rights, for agents at inference time. See [Crawl time and inference time](https://docs.agentcdn.com/concepts/crawl-and-inference.md).

## One record, several views

There is one record per video. AgentTV serves views of it in the places each reader looks:

| View | Where | Who reads it |
| - | - | - |
| Page block, `head_html` | Your page head: JSON-LD plus link tags | Search engines and AI crawlers |
| Page block, `body_html` | Your page body: chapter summaries and transcript | People, crawlers that read visible text |
| ARV record | `GET /public/creators/{slug}/videos/{video_id}/arv.json` | Agents that follow the link tag |
| MCP tools | `https://mcp.agentcdn.com/c/{slug}/mcp` | AI apps with the connector turned on |

Your page template makes one request for the page block. You do not assemble the record yourself.

## What the record holds

Read a live one:

```bash theme={null}
curl -s https://api.agentcdn.com/public/creators/sandersaar/videos/video_t82C_EYja18/arv.json
```

The record sits under `data`:

| Field | What it is |
| - | - |
| `asset` | The video id, duration, spoken and subtitle languages ([Languages](https://docs.agentcdn.com/concepts/languages.md)), where it came from and how it plays at its origin. |
| `display` | Title, description, thumbnail, publish date and watch link. |
| `chapters` | Titled sections with start and end in milliseconds, a summary, the words said and a description of what is shown. |
| `moments` | Addressable spans, each with a `moment_uri` such as `arv:video_t82C_EYja18#t=0,38071` and a link that opens at the start. |
| `transcript_cues` | Timed sentences with speaker labels and names when known. |
| `visual` | Time windows with a description of what is on screen and the on-screen text. |
| `speakers`, `people_spans` | Who speaks and who appears, and when. |
| `entities`, `products`, `places`, `topics`, `labels` | What the video covers, with times. Entities link to Wikidata where they match. |
| `rights` | The rights in force for the video: search, cite, summarize, quote, play, clip, train and more. See [Rights and access](https://docs.agentcdn.com/concepts/rights.md). |
| `model_provenance` | Which models made each layer, with versions and dates. |

All times in the record are milliseconds from the start of the video. The page block's JSON-LD uses seconds, as schema.org does.

## Freshness

AgentTV rebuilds a record when a model improves or when you change a video's details or rights. Your page gets the newest record on its next fetch of the page block. Subscribe to the `video.updated` [webhook](https://docs.agentcdn.com/guides/webhooks.md) to know when to fetch again.

## What the record never holds

A stream URL. Search and discovery never return one. A stream URL comes only from a playback call that checked the rights first. See [Play a moment in an AI app](https://docs.agentcdn.com/guides/play-in-chat.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.