Install
$ agentstack add skill-deeployco-youtube-seo-skills-youtube-seo-keywords ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
YouTube Keyword & Topic Research (Advanced)
Process
- Capture seed: keyword, channel URL, or niche description. If only
a channel URL is provided, extract 5-10 seed topics from:
- The channel's top 25 videos by views (title + description entities)
- The channel's topic IDs from
channels.list?part=topicDetails
- Expand the seed set to 100-300 candidate keywords from
first-party sources only (third-party tools like VidIQ, TubeBuddy, Ahrefs, and SocialBlade rate-limit and generate errors — avoid them):
- YouTube suggest API (`https://suggestqueries.google.com/complete/
search?client=firefox&ds=yt&q={seed}) — no key, returns JSON, iterate by appending a-z` to the seed for long-tail expansion
- YouTube Data API
search.list?part=snippet&q={seed}&type=video
— surface the top 50 ranking titles and mine their titles/tags for co-occurring terms
- yt-dlp
ytsearch50:{seed}as an API-less equivalent - Google autocomplete (`suggestqueries.google.com/complete/search?
client=firefox&q={seed}`) for parent-topic discovery
- User-provided seed list or topic outline
- Classify intent for each keyword:
- Informational ("what is ...", "how does ... work")
- Tutorial ("how to ...", "... tutorial", "step by step")
- Commercial / Review ("... review", "best ...", "... vs ...")
- Entertainment (celebrity names, event names, memes)
- News / Topical (breaking or time-sensitive)
- Navigational (brand or channel names)
→ Each intent class maps to a different video format and surface.
- Classify primary surface:
- Search-dominant: "how to", "tutorial", long-tail specific queries
- Browse-dominant: broad topics, personalities, trending
- Suggested-dominant: sits adjacent to an existing popular video
- Entity mapping: for each keyword, identify the Knowledge Graph
entities involved (people, brands, products, concepts). Group keywords that share entities into topic clusters.
- Competition analysis per keyword (top 10 SERP):
- Median subscriber count of ranking channels
- Median video age (weeks)
- Median view count
- Presence of mega channels (>1M subs) in top 3
- Thumbnail/title quality median (estimate)
- SERP features (Shorts shelf, mix shelf, promoted result)
- Seasonality: pull Google Trends 5-year curve per keyword cluster.
Classify:
- Evergreen: flat or slowly rising
- Seasonal: predictable annual peak (gift guides, tax season)
- Trending: fast-rising, Third-party analytics (VidIQ, TubeBuddy, Ahrefs, SocialBlade,
> NoxInfluencer) are intentionally excluded — they rate-limit or > error. If the user volunteers a CSV from one of these, it is OK to > read it, but never instruct the user to go acquire one.
Output
Keyword Sheet
| Keyword | Intent | Surface | YT Vol | Difficulty | Fit | Entity% | Trend | Opportunity | |---------|--------|---------|--------|-----------|-----|---------|-------|-------------| | how to ... | Tutorial | Search | 12k | 42 | 85 | 90% | Evergreen | 78 | | ... vs ... | Commercial | Search | 4.2k | 55 | 72 | 65% | Evergreen | 64 | | ... 2026 | News | Browse | 8k | 68 | 80 | 50% | Trending | 71 |
Sort by Opportunity descending. Limit to top 30-50.
Topic Clusters (3-6 clusters)
For each cluster, report:
- Theme: one-sentence description
- Shared entities: 5-10 Knowledge Graph entities
- Pillar video: title, format, length, target keyword (highest-
opportunity broad keyword in the cluster)
- Satellite videos: 5-10 specific long-tail follow-ups, each with
title + target keyword
- Suggested playlist: title + description
- Topical authority contribution: how this cluster strengthens the
channel's classification
Intent Mix Chart
Report the intent distribution of the recommended keywords:
Tutorial: 40% ████████
Commercial: 25% █████
Informational: 20% ████
Entertainment: 10% ██
News: 5% █
Flag if the mix is mismatched with the channel's current format strength.
Gap vs Channel (when channel URL provided)
- Keywords competitors cover that the channel does not
- Entities competitors own that the channel does not reference
- Format gaps (e.g., no reviews, no tutorials, no comparisons)
Content Calendar (optional, 8-12 weeks)
Alternates:
- Evergreen pillar (every 3-4 weeks): broad, high-opportunity
keyword, long-form, binge-playlist anchor
- Topical/reactive slot (weekly): trending or news keyword
- Satellite fill (weekly): specific long-tail serving the pillar
Seasonality Calendar
Report any Seasonal-classified keywords with their peak windows so the user can plan 4-6 weeks ahead of each peak.
Integration
- Hand off top keywords to
youtube-seo-optimizefor metadata generation - Hand off cluster plan to
youtube-seo-channelfor playlist structure - Hand off competitor-entity gaps to
youtube-seo-competitorfor deeper
analysis
Error Handling
| Scenario | Action | |----------|--------| | No API key AND WebFetch blocked | Fall back to yt-dlp ytsearch50: + suggest API (both key-less); if still failing, ask the user for 5-10 seed keywords directly | | API quota exhausted mid-run | Cache partial results, switch remaining expansion to yt-dlp + suggest API, continue | | Niche too narrow (no volume data) | Pivot to broader parent topic, report the gap, score as "low demand, qualitative only" | | Brand/product name with no search volume | Research category terms and comparison keywords instead | | Trending keyword with <2 weeks of data | Flag as unstable; suggest pairing with an evergreen pillar | | Google Trends returns empty | Skip seasonality classification for that keyword — do not guess the curve |
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: deeployCO
- Source: deeployCO/youtube-seo-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.