Web Player
SEO embed code
With Boost SEO switched on in the CMS embed dialog, the embed code also carries structured data for the video and, when the video has a transcript, the transcript text. How to switch the options on is described in Google Structured Data (Video SEO boost) in the Help Center.
The markup is a snapshot. It is written into the embed code when you copy it and doesn’t update afterwards. After you change a video’s title, description or thumbnail, copy the embed code again.
Structured data
Each SEO embed code contains one <script type="application/ld+json"> with a schema.org VideoObject, inside the player div. For a playlist, it describes the first video in the playlist.
Property | Value |
|---|---|
| The video title, with HTML removed and whitespace collapsed. |
| The video description, with HTML removed and whitespace collapsed. |
| The highest-quality snapshot of the video. |
| When the video was created, in ISO 8601. |
| The video length in ISO 8601, e.g. |
| The MP4 file on the CDN, or on the account’s own CDN domain if one is set. |
| Only when the transcript is included: a |
Empty values are left out. An example:
<div id="TargetVideo_12345678">
<script type="application/ld+json">{"@context":"https://schema.org","@type":"VideoObject","name":"VIDEO_TITLE","description":"VIDEO_DESCRIPTION","thumbnailUrl":"THUMBNAIL_URL","uploadDate":"2026-09-15T10:00:00+00:00","duration":"PT2M30S","contentUrl":"MP4_URL"}</script>
</div>Transcript
When the video has captions and Include Transcript is on, the embed code adds the transcript as text, right after the player div. The transcript is built from the video’s caption file, without cue timings.
<div class="tv-transcript" data-tv-transcript-for="TargetVideo_12345678">
<details>
<summary>Read Transcript</summary>
<div class="tv-transcript-body">
<span class="tv-transcript-cue" data-t="0">First caption line.</span>
<span class="tv-transcript-cue" data-t="4">Next caption line.</span>
</div>
</details>
</div>data-tv-transcript-foris the id of the player div the transcript belongs to.data-tis the start of the cue, in seconds.The
<details>element keeps the transcript collapsed until the viewer opens it, without any script or CSS.
Style it with these classes, for example:
.tv-transcript summary { cursor: pointer; font-weight: 600; }
.tv-transcript-body { max-height: 300px; overflow-y: auto; line-height: 1.6; }Keep the block after the player div, not inside it: the player builds its interface inside that div. Don’t hide the transcript with display: none — the text has to be on the page for search engines to count it.
AMP pages
The AMP SEO embed code contains the same structured data. Its transcript is an <amp-accordion>, placed before the player:
<amp-accordion class="brid-transcript">
<section>
<h4>Transcript</h4>
<div class="brid-transcript-body">
<span class="tv-transcript-cue" data-t="0">First caption line.</span>
</div>
</section>
</amp-accordion>The wrapper classes differ from the standard code: .brid-transcript and .brid-transcript-body. The embed code doesn’t include the amp-accordion extension, so add it yourself to the page’s <head>:
<script async custom-element="amp-accordion" src="https://cdn.ampproject.org/v0/amp-accordion-0.1.js"></script>oEmbed
If oEmbed is enabled for your account, the embed dialog also shows an oEmbed Url. Use that URL as it is: it already names the player, the size and the embed code you selected. A request returns JSON, or XML with format=xml:
Field | Value |
|---|---|
|
|
| The platform the request was sent to. |
| The video title and description. |
| The embed code, on one line. |
| The size of the video file, in px. |
| The video thumbnail and its size, in px. |