---
name: seo-video
description: Use when optimizing video SEO. Covers VideoObject schema, YouTube metadata, transcripts, chapters, SeekToAction, Clip schema for key moments, BroadcastEvent for live streams.
user-invocable: false
related-skills: seo, seo-schema, seo-content
---
# Video SEO
## VideoObject Schema (required)
```json
{
"@type": "VideoObject",
"name": "
",
"description": "",
"thumbnailUrl": ["", "", ""],
"uploadDate": "2026-05-01T08:00:00+00:00",
"duration": "PT2M30S",
"contentUrl": "",
"embedUrl": ""
}
```
## YouTube Optimization
- Title: 60 chars max, keyword first
- Description: 250 words minimum, timestamps, links
- Tags: 5-10 specific, no keyword stuffing
- Thumbnail: 1280x720, high contrast, faces convert well
- Chapters: required for videos > 5 min
- Closed captions: always (accessibility + indexability)
- End screens + cards: for retention
## Transcripts
- Embed full transcript below video (indexable text)
- Use `Transcript
... ` for collapsible
- Timestamp links: `2:00`
## Chapters / Clip Schema
```json
{
"@type": "Clip",
"name": "Introduction",
"startOffset": 0,
"endOffset": 90,
"url": "https://example.com/video#t=0"
}
```
## SeekToAction (enable seek in rich results)
```json
"potentialAction": {
"@type": "SeekToAction",
"target": "https://example.com/video?t={seek_to_second_number}",
"startOffset-input": "required name=seek_to_second_number"
}
```
## Live Streaming
- `BroadcastEvent` schema for LIVE badge
- Requires `isLiveBroadcast: true`, `startDate`, `endDate`