Video in AI search depends on text more than footage. ChatGPT search, Claude, Perplexity and Google's AI Overviews answer from pages their crawlers fetch, and they can cite those pages. To get a video cited, publish it on a crawlable page with a clear heading, a short answer, a transcript and VideoObject markup in the HTML, and allow the crawlers you want in robots.txt. Videngine publishes the player, transcript and markup to your page in one commit.
What AI assistants read on a video page
AI assistants read the text and markup of the page that holds a video, fetched by crawlers that each identify themselves with a named user agent.
The crawler documentation from OpenAI, Anthropic and Perplexity describes fetching web pages, not watching video files. Google's guidance on AI features and your website asks you to make sure "important content is available in textual form", supported by images and videos where they help. So the heading, the opening answer, the transcript and the structured data are what an assistant can quote and link to.
Each operator documents separate agents for search, training and user-requested fetches:
| User agent | Operator | What it does, per the operator | robots.txt |
|---|---|---|---|
| OAI-SearchBot | OpenAI | Surfaces websites in ChatGPT search | The control for ChatGPT search |
| GPTBot | OpenAI | Crawls content that may be used to train OpenAI's models | Disallow it to opt out of training |
| ChatGPT-User | OpenAI | Visits a page when a ChatGPT user's request needs it | OpenAI says rules may not apply |
| Claude-SearchBot | Anthropic | Indexes content to improve search results for Claude users | Honoured |
| Claude-User | Anthropic | Retrieves pages in response to a Claude user's query | Honoured |
| ClaudeBot | Anthropic | Collects web content that may be used for training | Disallow it to opt out of training |
| PerplexityBot | Perplexity | Surfaces and links websites in Perplexity's results | Allow it to appear in Perplexity search |
| Perplexity-User | Perplexity | Visits a page when a Perplexity user asks a question | Perplexity says it generally ignores rules |
| Googlebot | Crawls for Google Search, which includes AI Overviews and AI Mode | The control for access, AI features included | |
| Google-Extended | A token for AI training and grounding in other Google systems | Google says it doesn't affect inclusion in Search |
So you can appear in an assistant's search answers and still opt out of training. The Videngine glossary defines the terms used here.
Choose which crawlers can read you
robots.txt is the switch for each crawler: allow the search agents of the assistants you want to be cited by, and decide about training agents separately.
OpenAI's crawler overview says "Sites that are opted out of OAI-SearchBot will not be shown in ChatGPT search answers", though they can still appear as navigational links. Perplexity's crawler page recommends allowing PerplexityBot so your site appears in its results. Anthropic's help article says its bots honour robots.txt, that blocking Claude-SearchBot "may reduce your site's visibility and accuracy in user search results", and that each subdomain needs its own rule. For Google, the AI features page names robots.txt rules for Googlebot as the control. A file that welcomes AI search crawlers and opts out of training might read:
# Everyone else, including Googlebot
User-agent: *
Allow: /
# Search crawlers for AI assistants
User-agent: OAI-SearchBot
User-agent: Claude-SearchBot
User-agent: PerplexityBot
Allow: /
# Training crawlers
User-agent: GPTBot
User-agent: ClaudeBot
Disallow: /
Sitemap: https://www.example.com/video-sitemap.xml
Two cautions. A firewall or CDN can block a crawler that robots.txt allows; Google asks you to check crawling is allowed "by any CDN or hosting infrastructure". And OpenAI and Perplexity both say a robots.txt change can take about 24 hours to reach their systems.
The user-triggered fetchers are different. OpenAI says robots.txt rules may not apply to ChatGPT-User, and Perplexity says Perplexity-User generally ignores them, because a person asked for the page.
Put the transcript and markup in the HTML
Put the transcript and structured data in the HTML your server sends, because that is the version of the page every crawler receives.
The crawler pages from OpenAI, Anthropic and Perplexity say nothing about running JavaScript, and Google's AI features page doesn't discuss it. Google's separate JavaScript SEO documentation says Google Search does run JavaScript, sometimes after a wait in a rendering queue, and also that "not all bots can run JavaScript".
The cautious reading: content that only appears after scripts run may not be seen by every crawler. A transcript loaded by a player widget, or VideoObject added by a tag manager, is a bet that the reader runs your scripts.
| Element | Put it in the HTML as | What it gives a reader |
|---|---|---|
| Heading and short answer | A heading and a paragraph beside the player | A passage an assistant can quote on its own |
| Transcript | Text on the page, for example in a <details> element | Everything the narration says, as text |
| Caption track | A WebVTT file in a <track> element | Timed text for viewers watching without sound |
| VideoObject | JSON-LD in the page source | Title, description, thumbnail, duration and file URL |
| Player | A <video> element with a poster | A real file URL and thumbnail on the page |
To check, open View Source and search for a sentence from the transcript. Our guide to video transcripts and captions covers writing both.
A checklist for video in AI search
Nine checks cover most of what you control; none guarantees a citation.
Google says "There are no additional requirements to appear in AI Overviews or AI Mode, nor other special optimizations necessary" beyond being indexed and eligible for a snippet. Generative engine optimisation is mostly ordinary search discipline.
- Make the page crawlable. A normal response, no noindex, and internal links pointing to it.
- Put the transcript in the HTML. The full narration as text in the page source, next to the player.
- Lead with a descriptive heading and a short answer. Name the question the video answers, then answer it in two or three sentences that stand on their own.
- Add VideoObject. JSON-LD with name, description, thumbnail, upload date, duration and file URL, matching the visible text as Google asks. Our VideoObject schema guide has a full example.
- List the video in a video sitemap. Reference it from robots.txt; the video sitemap guide lists the fields.
- Allow the crawlers you want. In robots.txt, and in your CDN or firewall.
- Consider llms.txt. llmstxt.org calls it "a proposal to standardise on using an /llms.txt file": a markdown summary at the site root with links to key pages. It is a proposal, not a standard, and Google says you don't need "AI text files" for its AI features. Cheap to add; no promise anyone reads it.
- Make only claims the page supports. A price or result in the narration that the page doesn't carry is a contradiction an assistant may repeat.
- Keep one source of truth. One canonical page per video, with the same title in the heading, markup and sitemap. If it is also on YouTube, decide which page you want cited; see YouTube or self-hosted video.
What you can and can't measure
You can count the clicks AI tools send and see Google's AI features within Search Console's totals; you can't see citations that send no click.
Google says AI features are included in Search Console's Performance report under the "Web" search type, with no separate breakdown described. OpenAI's publishers FAQ says ChatGPT adds utm_source=chatgpt.com to referral URLs.
| Where to look | What you can see | What it misses |
|---|---|---|
| Search Console | Clicks and impressions from Google Search, AI Overviews and AI Mode included under "Web" | A separate figure for AI features |
| Web analytics | ChatGPT visits tagged utm_source=chatgpt.com; other assistants where a referrer is passed | Answers that cite you and send nobody |
| Server logs | Fetches by OAI-SearchBot, Claude-SearchBot, PerplexityBot and the rest | Whether a fetch became a citation |
| Manual checks | Whether a sample of questions cites your page today | Answers vary by person, wording and day |
Treat every number as a floor: an assistant can quote your transcript without sending a visit. Keep a short list of questions your pages answer and check them monthly in the assistants that matter to you.
How Videngine publishes video for AI search
Videngine's website publishing puts the player, transcript and VideoObject into the page's HTML in one commit.
Videngine turns a page, a listing, text or a row of data into a narrated, captioned MP4 rendered from coded templates. A workspace connects its website's GitHub repository, with Connect with GitHub or a fine-grained access token. Once a video is approved in review, Publish makes one commit that:
- adds the MP4, a poster JPG and a WebVTT caption track, in
/videos/by default; - writes an HTML5 player into the page the video was made from, with the poster and metadata-only preload;
- adds a readable transcript in a
<details>element; - adds VideoObject JSON-LD with name, description, thumbnailUrl, contentUrl, uploadDate, duration, width, height, inLanguage, transcript and publisher;
- updates
video-sitemap.xmland adds a Sitemap line to robots.txt.
All of it is in the HTML the server sends, not injected by JavaScript. A <!-- videngine --> comment marks where the video goes; republishing replaces it in place, and Remove takes it out in one commit.
Each video is made from the page it sits on, so that page is its source of truth. Your rules for AI crawlers and any llms.txt stay yours to write; videngine.io, for example, publishes its own llms.txt.
When Videngine is the wrong tool
Videngine is the wrong tool if your pages aren't HTML files in a repository, if you need to track AI citations, or if the video needs footage you don't have.
- Framework or CMS sites. Website publishing works for static sites whose pages are HTML files in the repository, such as sites on Vercel, Netlify, Cloudflare Pages or GitHub Pages. Framework-built sites aren't supported yet; download the MP4 and add the player, transcript and markup yourself.
- Tracking AI visibility. Videngine makes and publishes videos; it doesn't report citations. Use Search Console and analytics, or a dedicated AI visibility monitoring tool for prompt tracking at scale.
- Several videos per page, or non-English narration. Publishing places one video per page, and narration is English only.
- New footage or a presenter. Videngine builds scenes from your own pages and images, not generated footage or avatars. Our AI video tools guide covers generators and presenter tools.
Questions about video in AI search
How do I get my videos cited by AI assistants?
Put each video on its own crawlable page with a descriptive heading, a short answer, a transcript and VideoObject in the HTML the server sends. Allow the search crawlers of the assistants you care about in robots.txt, such as OAI-SearchBot, Claude-SearchBot and PerplexityBot. Nothing guarantees a citation, but a page an assistant cannot read cannot be cited.
Can ChatGPT search or Perplexity watch my video?
OpenAI's and Perplexity's crawler documentation describes fetching web pages and says nothing about processing video files. Assume an assistant knows what your page tells it in text: the heading, the transcript and the structured data.
Does VideoObject schema help a video appear in AI Overviews?
Google says no special schema.org structured data is needed for AI Overviews or AI Mode, and asks that structured data match the visible text. VideoObject still describes the video to search engines and other readers of the page, so add it for that reason, not as a switch for AI Overviews.
Do I need an llms.txt file for AI search?
No. llms.txt is a proposal published at llmstxt.org, not an agreed standard, and Google says you don't need AI text files to appear in AI Overviews or AI Mode. It is a small markdown file that is cheap to add, so treat it as optional.
What is generative engine optimisation (GEO)?
Generative engine optimisation, or GEO, is the name used for making content easy for AI assistants to find, read and cite. In practice it overlaps heavily with ordinary SEO: crawlable pages, important content in text, accurate structured data and clear answers.
Choose your next step
Start with the whole picture, then fix the part an assistant reads first.
Publish video an assistant can read.
Bring one page that already answers a question well. Review the video in the studio, then publish the player, transcript and VideoObject to that page in one commit.
Join the waitlist ↗Published by Videngine, a video rendering product built and run by Wall & Fifth. External links refer to the original documentation or product descriptions; examples are illustrative unless stated otherwise.