Use when optimizing video SEO. Covers VideoObject schema, YouTube metadata, transcripts, chapters, SeekToAction, Clip schema for key moments, BroadcastEvent for live streams.
Scanned 5/28/2026
npx -y skills add fusengine/agents --skill seo-video --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Seo Video?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/fusengine-seo-video)More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.
---
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": "<title>",
"description": "<description>",
"thumbnailUrl": ["<url-16x9>", "<url-4x3>", "<url-1x1>"],
"uploadDate": "2026-05-01T08:00:00+00:00",
"duration": "PT2M30S",
"contentUrl": "<url>",
"embedUrl": "<url>"
}
```
## 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 `<details><summary>Transcript</summary>...</details>` for collapsible
- Timestamp links: `<a href="#t=120">2:00</a>`
## 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`
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!