youtube-analytics — Claude Code skill for channel analysis
This skill uses the YouTube Data API to examine channel and video metrics. Use it to compare channels, spot content patterns, or review video SEO.
npx skills add OpenClaudia/openclaudia-skills --skill youtube-analytics -a claude-codeWhat youtube-analytics does
The skill retrieves public channel figures such as views, subscribers, and video totals, plus video-level likes, comments, duration, and publish date. It calculates average views and engagement, reviews recent uploads for recurring themes, and can compare channels or search for content gaps around keywords.
Set YOUTUBE_API_KEY in the environment or add it to ~/.claude/.env.global before running an analysis. The skill checks video titles, descriptions, and tags, but the API cannot assess thumbnails or end screens. Public API results do not include watch time, CTR, or audience retention; those require YouTube Studio or the YouTube Analytics API with OAuth. The daily API quota is 10,000 units, and each search uses 100, so repeated searches can consume it quickly.
What it helps with
- compare subscriber counts, views, and upload frequency across channels
- rank recent videos by views or engagement
- calculate average views and engagement for a channel
- review video titles, descriptions, and tags for SEO
- find keyword topics missing from a channel’s videos
Example prompts for the agent
- Analyze the channel
@{handle}and report its key metrics and upload frequency. - Compare
{channelId}and{channelId}by subscribers, views, and average video views. - Review video
{videoId}for YouTube SEO and identify keyword topics the channel has not covered.
How to install youtube-analytics
1Skills CLI (Vercel)
npx skills add OpenClaudia/openclaudia-skills --skill youtube-analytics -a claude-code2Manually: put the files in place
~/.claude/skills/youtube-analytics/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/youtube-analytics/
1Skills CLI (Vercel)
npx skills add OpenClaudia/openclaudia-skills --skill youtube-analytics -a codex2Manually: put the files in place
.agents/skills/youtube-analytics/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add OpenClaudia/openclaudia-skills --skill youtube-analytics -a cursor2Manually: put the files in place
.cursor/skills/youtube-analytics/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install OpenClaudia/openclaudia-skills youtube-analytics2Manually: put the files in place
.github/skills/youtube-analytics/SKILL.md1Skills CLI (Vercel)
npx skills add OpenClaudia/openclaudia-skills --skill youtube-analytics -a gemini-cli2Platform CLI
gemini skills install https://github.com/OpenClaudia/openclaudia-skills --path skills/youtube-analyticsManually: put the files in place
.devin/skills/youtube-analytics/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add OpenClaudia/openclaudia-skills --skill youtube-analytics -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about youtube-analytics
How do I install youtube-analytics in Claude Code?
Run npx skills add OpenClaudia/openclaudia-skills --skill youtube-analytics -a claude-code. The skill file is installed at ~/.claude/skills/youtube-analytics/SKILL.md.
What does youtube-analytics do?
It reads public YouTube channel and video metrics, reviews video SEO, finds content patterns, and compares channels through the YouTube Data API.
What does youtube-analytics need to run?
Provide a YouTube Data API v3 key through YOUTUBE_API_KEY or ~/.claude/.env.global. Watch time, CTR, and audience retention require YouTube Studio or the YouTube Analytics API with OAuth.
Source text
SKILL.md · MIT
---
name: youtube-analytics
description: 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.
---
# YouTube Analytics Skill
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.
## Prerequisites
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.
```
## API Reference
Base URL: `https://www.googleapis.com/youtube/v3`
### Channel Analysis
**Get channel by username or handle:**
```bash
curl -s "https://www.googleapis.com/youtube/v3/channels?part=snippet,statistics,contentDetails,brandingSettings&forHandle=@{handle}&key=${YOUTUBE_API_KEY}"
```
**Get channel by ID:**
```bash
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 views
- `statistics.subscriberCount` — Subscriber count
- `statistics.videoCount` — Total videos published
- `contentDetails.relatedPlaylists.uploads` — Upload playlist ID (use to list all videos)
### List Channel Videos
**Get uploads playlist:**
```bash
curl -s "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet,contentDetails&playlistId={uploadsPlaylistId}&maxResults=50&key=${YOUTUBE_API_KEY}"
```
### Video Performance
**Get video statistics:**
```bash
curl -s "https://www.googleapis.com/youtube/v3/videos?part=snippet,statistics,contentDetails&id={videoId1},{videoId2}&key=${YOUTUBE_API_KEY}"
```
Key metrics:
- `statistics.viewCount` — Views
- `statistics.likeCount` — Likes
- `statistics.commentCount` — Comments
- `contentDetails.duration` — Video length (ISO 8601 format)
- `snippet.publishedAt` — Publish date
- `snippet.tags` — Video tags
### Search
**Search videos by keyword:**
```bash
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 viewed
- `order=date` — Most recent
- `order=rating` — Highest rated
- `publishedAfter=2026-01-01T00:00:00Z` — Filter by date
- `videoDuration=short|medium|long` — Filter by length
- `regionCode=US` — Filter by region
## Analysis Process
### Step 1: Channel Overview
Pull 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 |
### Step 2: Top Performing Content
List the last 50 videos and sort by:
1. View count (absolute performance)
2. Views per day since publish (velocity)
3. Engagement rate (likes + comments / views)
4. Like-to-view ratio
Identify patterns in top performers:
- Common topics or keywords
- Video length sweet spot
- Thumbnail style (from title patterns)
- Posting day and time
### Step 3: Content Gaps
Search for the channel's core keywords and compare:
- What top-ranking videos cover vs. what this channel has
- Competitor channels ranking for the same keywords
- Trending topics the channel hasn't addressed
### Step 4: YouTube SEO Analysis
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 |
## Output Format
```markdown
# 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}
```
## Channel Comparison
When comparing channels, present:
```markdown
## 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} |
```
## Important Notes
- The YouTube Data API has a daily quota of 10,000 units. Each search costs 100 units. Each video/channel lookup costs 1-3 units. Be efficient with API calls.
- Batch video IDs in single requests (up to 50 per call) to conserve quota.
- Subscriber counts below 1,000 are hidden by YouTube. The API returns 0 in these cases.
- `likeCount` may not be available if the creator has hidden likes.
- API results are public data only. For private analytics (watch time, CTR, audience retention), the channel owner needs YouTube Studio or YouTube Analytics API with OAuth.
© OpenClaudia · MIT · OpenClaudia/openclaudia-skills