skills/youtube-analytics/SKILL.md
Analyze YouTube channel and video performance using the YouTube Data API. Use when the user says "YouTube analytics", "check my channel", "video performance", "YouTube stats", "channel analysis", "compare YouTube channels", "YouTube SEO", or asks about YouTube metrics, views, subscribers, or content performance.
npx skillsauth add OpenClaudia/openclaudia-skills youtube-analyticsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are a YouTube analytics and strategy expert. Use the YouTube Data API v3 to analyze channels, videos, and search trends to provide actionable insights.
This skill requires YOUTUBE_API_KEY. Check for it in environment variables or ~/.claude/.env.global. If not found, inform the user:
This skill requires a YouTube Data API v3 key. Set it via:
export YOUTUBE_API_KEY=your_key_here
Or add it to ~/.claude/.env.global
Get your API key at: https://console.cloud.google.com/apis/credentials
Enable "YouTube Data API v3" in your Google Cloud project.
Base URL: https://www.googleapis.com/youtube/v3
Get channel by username or handle:
curl -s "https://www.googleapis.com/youtube/v3/channels?part=snippet,statistics,contentDetails,brandingSettings&forHandle=@{handle}&key=${YOUTUBE_API_KEY}"
Get channel by ID:
curl -s "https://www.googleapis.com/youtube/v3/channels?part=snippet,statistics,contentDetails&id={channelId}&key=${YOUTUBE_API_KEY}"
Key metrics returned:
statistics.viewCount — Total channel viewsstatistics.subscriberCount — Subscriber countstatistics.videoCount — Total videos publishedcontentDetails.relatedPlaylists.uploads — Upload playlist ID (use to list all videos)Get uploads playlist:
curl -s "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet,contentDetails&playlistId={uploadsPlaylistId}&maxResults=50&key=${YOUTUBE_API_KEY}"
Get video statistics:
curl -s "https://www.googleapis.com/youtube/v3/videos?part=snippet,statistics,contentDetails&id={videoId1},{videoId2}&key=${YOUTUBE_API_KEY}"
Key metrics:
statistics.viewCount — Viewsstatistics.likeCount — Likesstatistics.commentCount — CommentscontentDetails.duration — Video length (ISO 8601 format)snippet.publishedAt — Publish datesnippet.tags — Video tagsSearch videos by keyword:
curl -s "https://www.googleapis.com/youtube/v3/search?part=snippet&q={keyword}&type=video&maxResults=10&order=relevance&key=${YOUTUBE_API_KEY}"
Search with filters:
order=viewCount — Most viewedorder=date — Most recentorder=rating — Highest ratedpublishedAfter=2026-01-01T00:00:00Z — Filter by datevideoDuration=short|medium|long — Filter by lengthregionCode=US — Filter by regionPull channel data and compute:
| Metric | Calculation | |--------|-------------| | Avg views per video | Total views / video count | | Upload frequency | Videos per week/month (from recent 50 uploads) | | Subscriber-to-view ratio | Avg views / subscriber count | | Engagement rate | (Likes + Comments) / Views × 100 |
List the last 50 videos and sort by:
Identify patterns in top performers:
Search for the channel's core keywords and compare:
For each video analyzed, check:
| Element | Best Practice | Score | |---------|--------------|-------| | Title | Keyword in first 60 chars, compelling, <70 chars | ✓/✗ | | Description | 200+ words, keyword in first 2 lines, links, timestamps | ✓/✗ | | Tags | 5-15 relevant tags, mix of broad and specific | ✓/✗ | | Thumbnail | (Cannot check via API — note this) | N/A | | End screens | (Cannot check via API — note this) | N/A |
# YouTube Channel Analysis: {Channel Name}
**Date:** {date}
**Subscribers:** {count}
**Total Views:** {count}
**Videos:** {count}
**Channel Age:** {years/months}
## Performance Overview
| Metric | Value | Benchmark |
|--------|-------|-----------|
| Avg views/video | {count} | {niche avg if known} |
| Upload frequency | {X}/week | 1-3/week recommended |
| Engagement rate | {X}% | 3-7% is good |
| Sub-to-view ratio | {X}% | >10% is healthy |
## Top 10 Videos by Views
| # | Title | Views | Likes | Comments | Published | Engagement |
|---|-------|-------|-------|----------|-----------|------------|
| 1 | {title} | {views} | {likes} | {comments} | {date} | {rate}% |
## Content Patterns
### What Works
- {Pattern 1: topic/format that consistently performs}
- {Pattern 2}
### Underperforming
- {Pattern that gets below-average views}
## SEO Opportunities
| Keyword | Search Volume | Competition | Channel Coverage |
|---------|--------------|-------------|-----------------|
| {keyword} | {if available} | {high/med/low} | {has video / missing} |
## Recommendations
1. **{Recommendation}** — {Why and expected impact}
2. **{Recommendation}** — {Why and expected impact}
3. **{Recommendation}** — {Why and expected impact}
When comparing channels, present:
## Channel Comparison
| Metric | {Channel A} | {Channel B} | {Channel C} |
|--------|-------------|-------------|-------------|
| Subscribers | {count} | {count} | {count} |
| Total views | {count} | {count} | {count} |
| Videos | {count} | {count} | {count} |
| Avg views/video | {count} | {count} | {count} |
| Upload frequency | {X}/week | {X}/week | {X}/week |
| Top video views | {count} | {count} | {count} |
likeCount may not be available if the creator has hidden likes.testing
Edit podcast audio — trim pre/post-show chat, remove filler words, cut silences, and enhance audio quality. Use when the user asks to edit a podcast, clean up audio, remove fillers, trim a recording, or improve voice quality.
data-ai
Generate images using AI (OpenAI GPT Image or Stability AI). Use when the user asks to generate an image, create an AI image, make an illustration, or produce artwork from a text prompt.
development
Create high-converting landing page copy and structure. Use when the user says "landing page", "sales page", "create a landing page", "landing page copy", "conversion page", "lead gen page", "signup page", "product page copy", "hero section", "write landing page", or asks for marketing page copy with conversion goals.
documentation
Generate a full SEO-optimized blog post. Use when the user says "write a blog post", "blog article", "write about", "create content for", "SEO article", "blog content", "write a post about", or provides a keyword and asks for a written article.