From nicheking-watch
Decode any YouTube video against the creator's specific niche. Downloads the video, extracts scene-aware frames, pulls a timestamped transcript, fetches the creator's niche profile and research patterns from Niche King, and produces a structured editing-pattern decode adapted to the creator's voice — saved to their Niche King library so the editorial-brief tool, script writer, and other AI editors can reference it later. Use when the user says "decode this video", "watch this video and tell me what makes it work", "study this competitor's video for me", "what editing patterns does [URL] use", or "analyze this video against my niche".
How this skill is triggered — by the user, by Claude, or both
Slash command
/nicheking-watch:nicheking-watchThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are decoding a YouTube video on behalf of a creator who is already running Niche King — a complete YouTube strategy platform. The creator has a defined niche, research patterns from 500+ videos in their space, voice samples, brand assets, and a slate of upcoming videos. Your job is to look at THIS specific video and produce a structured editing-pattern decode that the creator can act on, an...
You are decoding a YouTube video on behalf of a creator who is already running Niche King — a complete YouTube strategy platform. The creator has a defined niche, research patterns from 500+ videos in their space, voice samples, brand assets, and a slate of upcoming videos. Your job is to look at THIS specific video and produce a structured editing-pattern decode that the creator can act on, anchored in their niche-specific reality.
This is NOT a generic video summary. A summary tells the creator what the video says. A decode tells them what makes it WORK on YouTube and how to adapt those patterns to THEIR niche, voice, and audience.
The video being decoded is the PRIMARY subject. Niche context is CONTEXT ONLY — used to interpret patterns and adapt recommendations, never to override what's actually in the video.
Three rules that override every other instruction in this skill:
evidence: null or "matches_research_pattern": null. Never fabricate a percentage.If the user has provided no Niche King API key (--no-niche mode or missing config), produce a generic editing-pattern decode without the niche-match section. The skill should degrade gracefully, not fail.
When invoked with /nicheking-watch <url-or-path> [topic]:
--start, --end, --max-frames (default 80), --resolution (default 768), --scene-threshold (default 0.4), --max-gap (default 45), --whisper (default groq), --no-whisper, --no-niche, --out-dir (default ~/nicheking-watch/library/).slug = YYYY-MM-DD-<title>-<sha1(url+focus)[:4]>. If ~/nicheking-watch/library/<slug>/meta.json exists, treat as a cache hit — re-use downloaded video, frames, transcript. Only regenerate the decode itself.<title> against your niche. This will take ~2-4 minutes."Run the helper scripts (do not reinvent them — they live at scripts/download.py, scripts/frames.py, scripts/transcribe.py):
scripts/download.py — yt-dlp pulls the video and any available native captions. Handle Shorts URLs by converting to standard watch URLs. Respect --start/--end if provided.scripts/frames.py — ffmpeg scene detection (default threshold 0.4) PLUS coverage-floor frames every 45 seconds. Editing-aware spacing: load the first 30 seconds at higher density (4-6 frames in the first 30s) because hook delivery is the highest-leverage information in any video. Cap at --max-frames.scripts/transcribe.py — captions first (free, native), Whisper fallback (Groq preferred, OpenAI alt) only if no caption track. Skip transcription if --no-whisper and no captions exist.If any step fails, surface the error clearly and stop. Do NOT proceed to analysis with partial data.
Unless --no-niche is set:
~/.config/nicheking/.env (NICHEKING_API_KEY=sk-nk-...).GET https://app.nicheking.video/api/nicheking-watch?videoUrl=<source> with Authorization: Bearer <api-key>.niche — broad / focused niche, slogan, statement, mission, audience, pain points, profit model, keywords, insider terms, ecosystem (conferences / speakers / podcasters / sponsors)research_patterns — human-readable text of patterns extracted from the creator's 500-video research pool (titles, thumbnails, scripts, hooks, CTAs, descriptions, ideas, channel patterns)creator_context — recent videos with view counts, voice samples (truncated), brand assetsvideo_metadata — title, channel, duration scraped via oEmbedinstructions — Subject-Matter Hierarchy reminder--no-niche mode. Do not fail the whole run.This is where Claude does the actual work. Read EVERY frame as an image (use the Read tool, the same way you would for any local file). Read the full transcript. Read the niche context if loaded.
Produce a JSON decode matching the schema in the next section. Every field must be derived from observable evidence in the video, the transcript, or the niche context — no fabrication.
Before writing each section:
~/nicheking-watch/library/<slug>/decode.json.~/nicheking-watch/library/<slug>/notes.md for the creator to reference outside Claude.--no-niche is set, POST the decode to https://app.nicheking.video/api/nicheking-watch to save it to the creator's Niche King library so it shows up under History → Decoded Videos and can be referenced by the editorial-brief tool, the script writer, and any other AI editor connected via MCP.✓ Decode saved to your Niche King library or ⚠ Local-only decode — no API key)overview (3-4 sentences)adapt_for_creator.primary_recommendation — single most important takeaway/nicheking-watch on more videos to build a pattern library. The editorial-brief tool will pull from saved decodes when you're planning your next video."{
"video_id": "uuid",
"source_url": "https://youtube.com/watch?v=...",
"source_title": "string",
"source_channel": "string",
"duration_seconds": 612,
"decoded_at": "iso-timestamp",
"niche_context_used": true,
"overview": "3-4 sentences: what this video is, why it appears to work, what the creator can learn from it",
"hook": {
"arrival_seconds": 3.2,
"pattern": "curiosity_gap | bold_statement | story_open | shocking_stat | question | pain_callout",
"transcript": "the actual first-15-seconds text",
"draft_for_creator": "rewritten hook adapted to creator's niche and voice (or null if no niche context)",
"evidence": {
"matches_research_pattern": "string — which top-performer pattern this matches (or null if none)",
"research_match_pct": 87
}
},
"pacing": {
"first_cut_seconds": 3.2,
"avg_cut_length_seconds": 5.4,
"broll_cadence_seconds": "4-6 (or 'none' or 'irregular')",
"pattern_interrupts_at_seconds": [8, 35, 90, 180, 300],
"talking_head_to_broll_ratio": "60:40"
},
"structure": {
"chapter_breaks_at_seconds": [0, 45, 180, 420, 600],
"sections": [
{
"label": "Hook",
"start": 0,
"end": 15,
"purpose": "string",
"estimated_retention_pct": 92
}
]
},
"ctas": {
"early": { "at_seconds": 28, "transcript": "...", "type": "subscribe | comment | newsletter | community | other" },
"mid": { "at_seconds": 320, "transcript": "...", "type": "..." },
"end": { "at_seconds": 590, "transcript": "...", "type": "..." }
},
"visual_patterns": {
"on_screen_text_style": "word_pop | line_chunks | none | other (describe)",
"max_words_per_caption_chunk": 4,
"color_grade": "string description",
"framing_default": "medium | close | wide | mixed",
"signature_moves": [
"string — quirks visible in frames"
]
},
"niche_match": {
"score_0_to_100": 78,
"matched_patterns": [
"Pattern name from creator's niche research that this video also uses"
],
"missed_patterns": [
"Patterns from creator's niche research this video does NOT use"
],
"non_niche_moves": [
"Things this video does that may NOT translate to creator's niche"
]
},
"adapt_for_creator": {
"primary_recommendation": "Single most important takeaway for the creator's next video",
"tactical_steps": [
"Specific actionable steps to apply this video's patterns to the creator's niche/voice"
],
"draft_titles": ["3-5 title ideas adapted for creator's niche, drawn from this video's hook angle"]
},
"risk_notes": [
"What NOT to copy — things that won't fit creator's niche, voice, or audience"
]
}
null over a made-up number, every time.meta.json exists for the slug, skip download/frame/transcribe. Always regenerate the decode itself unless the user explicitly says --no-rerun-decode.--no-niche mode with a one-line warning. Don't block the whole decode.Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Searches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.
npx claudepluginhub video-niche-king-llc/nicheking-watch --plugin nicheking-watch