seo-video

SkillMedia

Use when optimizing video SEO — VideoObject schema, YouTube metadata, transcripts, live streams.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the seo-video skill

What this skill tells your AI

The instructions your AI receives, as published by fusengine/agents in plugins/seo/skills/seo-video/SKILL.md and read by ahel’s review.

Video SEO

VideoObject Schema (required)

{
  "@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

{
  "@type": "Clip",
  "name": "Introduction",
  "startOffset": 0,
  "endOffset": 90,
  "url": "https://example.com/video#t=0"
}

SeekToAction (enable seek in rich results)

"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

Signals

GitHub stars
25
Forks
4
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
seo-video
Source
github.com/fusengine/agents