Skip to main content
skill CX Codex

analyzing-competitor-youtube-content-strategy — Claude Code skill

Audits a competitor’s YouTube strategy by topic, format, publishing cadence, views, and engagement. Use it to compare two channels or find content gaps.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add apidojo-io/apidojo-skills --skill analyzing-competitor-youtube-content-strategy -a claude-code
Open on GitHub

What analyzing-competitor-youtube-content-strategy does

This skill runs apidojo~youtube-scraper on Apify and examines a competitor’s recent videos. It sorts videos by format and length, calculates views-to-subscriber ratio, engagement rate, and publishing cadence, then surfaces strong topics and formats. The report can also flag median views, outliers, and low-view channels when those cases affect the analysis.

The workflow covers scraping, video classification, metric calculation, pattern detection, and report delivery. You can run it with scripts/run_actor.js, an Apify MCP server, or the REST API. Inputs support channel URLs, handles, keywords, country and language codes, upload-date filters, duration filters, feature filters, sorting, and a maximum item count. Results may be saved as CSV or JSON.

Set APIFY_TOKEN in the environment or in .env; without it, run_actor.js cannot start the actor. If subscriber data cannot be obtained, the skill falls back to a view-based channel health ratio.

What it helps with

  • audit a competitor’s recent YouTube videos
  • compare video topics and formats
  • rank videos by views and engagement
  • measure a channel’s publishing cadence
  • spot content gaps against a competitor

Example prompts for the agent

  • Analyze this competitor’s YouTube channel and show which topics and formats perform best.
  • Compare our channel with the competitor using views, engagement rate, and publishing cadence.
  • Find content gaps from the videos in startUrls and write a strategy report.

How to install analyzing-competitor-youtube-content-strategy

1Skills CLI (Vercel)

npx skills add apidojo-io/apidojo-skills --skill analyzing-competitor-youtube-content-strategy -a claude-code

2Manually: put the files in place

~/.claude/skills/analyzing-competitor-youtube-content-strategy/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/analyzing-competitor-youtube-content-strategy/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about analyzing-competitor-youtube-content-strategy

How do I install analyzing-competitor-youtube-content-strategy in Claude Code?

Run npx skills add apidojo-io/apidojo-skills --skill analyzing-competitor-youtube-content-strategy -a claude-code. The skill file will be at ~/.claude/skills/analyzing-competitor-youtube-content-strategy/SKILL.md.

What does analyzing-competitor-youtube-content-strategy do?

It collects a YouTube channel’s videos through Apify, groups them by topic, format, and length, and calculates views, engagement, and publishing cadence. It then produces a competitor strategy report.

What does the skill need to run?

Set APIFY_TOKEN in the environment or in .env. An Apify MCP server can also be installed for the MCP workflow.

Source text

SKILL.md · Apache-2.0
---
name: analyzing-competitor-youtube-content-strategy
description: >
  Analyzes a competitor's YouTube channel content strategy and performance using apidojo's YouTube
  scraper on Apify. Triggers when the user asks to: analyze what a competitor posts on YouTube,
  see what video types perform best for a competitor, reverse-engineer a competitor's YouTube
  content calendar, benchmark your YouTube channel against a competitor, identify content gaps
  vs. a competitor on YouTube, understand what topics drive views for a competitor, or compare
  subscriber growth and video performance between two YouTube channels.
  Returns video cadence, format mix, top-performing topics, view benchmarks, and engagement analysis.
  Ideal for content marketing teams, YouTube strategists, and brand video teams.
license: Apache-2.0
metadata:
  author: apidojo
  version: "1.0"
  apify-actor: apidojo/youtube-scraper
---

# Analyzing Competitor YouTube Content Strategy

Reverse-engineers a competitor's YouTube channel by analyzing their last 20-50 videos. Identifies which video topics, formats, and lengths drive the most views and engagement.

## Prerequisites

- `APIFY_TOKEN` environment variable set
- Optional: Apify MCP server installed

## Inputs

| Parameter | Type | Required | Default | Notes |
|-----------|------|----------|---------|-------|
| `startUrls` | array | Optional | `[]` | YouTube URLs — channels, playlists, Shorts, search results |
| `youtubeHandles` | array | Optional | `[]` | YouTube channel handles (e.g. `@kurzgesagt`) |
| `getTrending` | boolean | Optional | `false` | Retrieve trending videos |
| `keywords` | array | Optional | `[]` | Search keywords |
| `gl` | string | Optional | `us` | Country code for results (e.g. `US`, `GB`) |
| `hl` | string | Optional | `en` | Language code (e.g. `en`, `de`) |
| `uploadDate` | string | Optional | `all` | Upload date filter: `any`, `hour`, `today`, `week`, `month`, `year` |
| `duration` | string | Optional | `all` | Duration filter: `any`, `short`, `long` |
| `features` | string | Optional | `all` | Feature filter: `4k`, `hd`, `live`, `cc`, `3d`, `hdr`, etc. |
| `sort` | string | Optional | `r` | Sort order for search results |
| `maxItems` | number | Optional | Unlimited | Maximum videos to return |
| `customMapFunction` | string | Optional | — | JavaScript function to transform each output object |

## Workflow

```
Progress:
- [ ] Step 1: Scrape competitor's recent videos
- [ ] Step 2: Classify video types and topics
- [ ] Step 3: Calculate performance metrics
- [ ] Step 4: Identify patterns and top performers
- [ ] Step 5: (Optional) Compare with own channel
- [ ] Step 6: Deliver strategy report
```

### Step 1: Scrape Channel


**Recommended — run_actor.js (handles waiting, output, and file saving automatically):**
```bash
# Quick answer (prints table to chat)
node scripts/run_actor.js \
  --actor "apidojo~youtube-scraper" \
  --input '{"param": "value"}'

# Save as CSV
node scripts/run_actor.js \
  --actor "apidojo~youtube-scraper" \
  --input '{"param": "value"}' \
  --output YYYY-MM-DD_results.csv --format csv

# Save as JSON
node scripts/run_actor.js \
  --actor "apidojo~youtube-scraper" \
  --input '{"param": "value"}' \
  --output YYYY-MM-DD_results.json --format json
```
> `APIFY_TOKEN` must be set in environment or `.env` file.

**If Apify MCP is available:**
```
Tool: apify:run-actor
Actor: "apidojo~youtube-scraper"
Input:
{
  "startUrls": [{"url": "[COMPETITOR_CHANNEL_URL]"}],
  "maxResults": 30,
  "type": "video"
}
```

**REST API fallback:**
```bash
curl -X POST   "https://api.apify.com/v2/acts/apidojo~youtube-scraper/runs?token=$APIFY_TOKEN"   -H "Content-Type: application/json"   -d '{"startUrls": [{"url": "https://www.youtube.com/@competitorhandle"}], "maxResults": 30, "type": "video"}'
```

### Step 2: Classify Videos

```
video_type:
  TUTORIAL = title contains "how to", "step by step", "guide", "tutorial"
  LIST = title contains "top [N]", "[N] best", "[N] things", "mistakes"
  REVIEW = title contains "review", "tested", "worth it", "vs"
  THOUGHT_LEADERSHIP = opinion, trend analysis, "the future of", "why"
  NEWS = title contains news, announcement, breaking
  CASE_STUDY = "how [brand] grew", "inside", "behind the scenes"

video_length_tier:
  SHORT = < 5 min
  MEDIUM = 5–15 min
  LONG = 15–30 min
  DEEP_DIVE = > 30 min
```

### Step 3: Performance Metrics

```
view_ratio = viewCount / subscriberCount  # corrected by subscriberCount at time of analysis

engagement_rate = (likeCount + commentCount) / viewCount * 100

publish_cadence = total_videos / (date_range_weeks)  # videos per week
```

**Top performer:** Sort by `viewCount`; also identify `hidden gems` where engagement_rate > 2× channel average despite lower views.

### Step 4: Edge Cases

- **Channel is very new** (< 6 months, < 20 videos): Reduce `videos_to_analyze` to all available; note limited sample
- **Views are all very low** (< 1K per video): Channel may be struggling or niche is very small; provide absolute numbers, not just ratios
- **One mega-viral video skews averages**: Report median views alongside mean; flag outlier
- **Channel posts in multiple languages**: Group by language; analyze each cohort separately

## Output Format

```
# Competitor YouTube Strategy: [CHANNEL_NAME]
Videos analyzed: [N] | Subscribers: [N] | Avg Views: [N] | Avg Eng Rate: [X%] | Date: [DATE]

## Content Mix
| Video Type | % of Videos | Avg Views | Avg Eng Rate | Best Example |
|-----------|------------|-----------|-------------|-------------|
| Tutorial | [X%] | [N] | [X%] | [title] |
| List | [X%] | [N] | [X%] | |
| Review | [X%] | [N] | [X%] | |

## Video Length Performance
| Length Tier | % | Avg Views | Avg Eng Rate |
|------------|---|-----------|-------------|
| Short (< 5min) | [X%] | [N] | [X%] |

## Top 5 Videos (by Views)
| # | Title | Type | Views | Likes | Comments | Length | Eng Rate |
|---|-------|------|-------|-------|----------|--------|---------|

## Publishing Cadence
Videos/week: [X] | Best day to publish: [Day] | Monthly trend: [↑/↓/flat]

## Key Opportunities vs. Their Strategy
1. [Gap: e.g. "No case studies — this format gets 3× their avg views when they do it"]
2. [Opportunity]
3. [Their weakness]
```

## Troubleshooting

**Scraper returns channel page but no videos**: Try direct video search for channel name as keyword; some channel URLs need the `/videos` suffix.
**View counts are very low for an established channel**: Channel may have declined — check publish date of latest video; may be dormant.
**Can't determine channel subscriber count from scrape**: Use the video view-to-video count ratio as a proxy for channel health when subscriber count is unavailable.

© apidojo · Apache-2.0 · apidojo-io/apidojo-skills

Similar skills

Everything for Marketing and content →

From the same set57

finding-podcast-hosts-for-outreach Find podcast hosts for PR and guest pitches through Apify Twitter scrapers. Use it when you need a topic-focused outreach list. CX Codex +1 782installs building-journalist-outreach-list-from-twitter Builds journalist and media contact lists for a given beat by scraping Twitter/X through Apify. Useful when you need names before a press pitch. CX Codex +1 780installs scraping-tiktok-comments Exports the comment dataset of any TikTok video through apidojo's scraper on Apify: author, text, likes, replies, timestamp. Handy when you need to read what viewers actually wrote. CX Codex +1 778installs discovering-viral-tiktok-content-trends This skill finds viral TikTok formats in a chosen niche and breaks down hashtags, reach, engagement, and hooks. Use it when planning content angles. CX Codex +1 777installs finding-ecommerce-brands-for-outreach Builds a list of e-commerce and DTC brands on Instagram and TikTok by product-category hashtags. Useful when you need an outreach list instead of scrolling profiles by hand. CX Codex +1 776installs analyzing-competitor-tiktok-content-strategy This skill examines a competitor’s TikTok account, covering videos, posting cadence, hashtags, hooks, and engagement. Use it for content strategy research. CX Codex +1 771installs tracking-competitor-social-media-growth Pulls follower counts and engagement for competitor accounts on Twitter/X, TikTok and Instagram, then lines them up side by side. Useful when you need to compare how accounts grow. CX Codex +1 771installs finding-affiliate-marketers-on-social-media Finds affiliate marketers and performance creators on Instagram and TikTok through apidojo scrapers. Useful when you are building a recruitment list for an affiliate program. CX Codex +1 770installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor