VideoObject is structured data that attaches machine-readable facts to a video on your page. Name, thumbnail image, and upload date are required, plus a link to the file or the player and the duration. AI systems can draw on that data and on the transcript. The markup alone won’t guarantee a rich result, but it matters for eligibility.
Video is a different problem for machines than text is. A search engine or an AI reads a paragraph directly; with video it sees a file it can’t interpret without help. VideoObject and a transcript are two ways to attach text to that file — and each one does something different.
What AI sees in a video, and what it doesn’t
When they work with a page, many text-based AI models rely mainly on text: the surrounding content, the structured data, and the transcript. The difference between the data and the transcript is fundamental here, and it’s easy to conflate the two.
| Aspekt | Source | What a machine gets from it |
|---|---|---|
| VideoObject data | Facts about the video | Title, thumbnail, date, duration, link — machine-readable facts a system can point to |
| Transcript | The video's content | What was said in the video — the actual message AI can draw on |
| Surrounding text | Context | What the page is about and how the video relates to it |
The process
-
Have the video genuinely on the page
The data describes a video that's actually there, not a trick. Marking up a video that isn't on the page violates policy.
-
Fill in the three required properties
name (a unique title), thumbnailUrl (a directly reachable thumbnail), and uploadDate in ISO 8601, ideally with a time zone.
-
Add the link and the duration
At least contentUrl (the file) or embedUrl (the player); Google prefers contentUrl. Add duration as well.
-
Put a transcript on the page
Full text, not abridged. Often a genuinely useful step for AI — the data gives the facts, the transcript gives the content.
-
Check that it matches and validates
Values = what's visible. Test it in a structured data validation tool, keep uploadDate out of the future, get the formats right.
What the markup looks like
Only name, thumbnailUrl, and uploadDate are required. But for the video to be eligible you also need at least one of contentUrl or embedUrl (ideally both) — without a link to the video, the markup stays incomplete:
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "How to set up structured data step by step",
"description": "A hands-on walkthrough of setting up structured data on a product page.",
"thumbnailUrl": "https://example.com/thumbnails/structured-data.jpg",
"uploadDate": "2026-05-19T08:00:00+02:00",
"duration": "PT4M12S",
"contentUrl": "https://example.com/video/structured-data.mp4",
"embedUrl": "https://example.com/player/structured-data"
}
The duration format is ISO 8601 for durations: PT4M12S means 4 minutes and 12 seconds. The date in uploadDate is ISO 8601 too, and it’s less ambiguous with a time zone. Where VideoObject fits into the bigger picture is covered in the article on structured data for AI.
What to avoid
A thumbnail behind a login or a redirect
When Google can’t reach the image in thumbnailUrl directly, that can block correct processing and reduce your chances of a rich result. The link should point straight at an accessible image.
Data for a video that isn't there
Marking up a video that isn’t genuinely on the page violates the structured data policies. The data describes what’s visible.
Video without a transcript
For a text model, the content of the video stays largely hidden no matter how complete the data is. A transcript tends to be an important source of that content for AI to draw on.
The outdated interactionCount
If you’re reporting a view count, use interactionStatistic. interactionCount has been deprecated since 2019.
Where this has limits
It won’t guarantee a rich result or a citation. The required properties make a video eligible, not displayed. Whether and how it shows up is Google’s call based on several factors; the same goes for citations in AI.
It doesn’t solve video production or hosting. This article is about marking up video you already have, not about where to make it or store it.
Data and a transcript don’t substitute for each other. They’re two different things — facts and content. You need both, not one instead of the other.
What to take away
VideoObject and a transcript solve two different problems. The data gives machines the facts about the video — title, thumbnail, date, duration, link. The transcript gives them the substance: what was said in the video, the content AI can draw on.
Only three properties are required, but without a link to the video — and above all without a transcript — the markup is half the job. And as with any structured data, it should describe what’s genuinely visible on the page, not promise something that isn’t there.
If you’re thinking about video more broadly than the technical side, YouTube for AI visibility picks up from here; how AI decides what to cite is covered in how AI cites sources.