--- name: analyzing-youtube-competitor-channel-strategy description: > Analyzes competitor YouTube channel strategy and content performance using apidojo's YouTube scraper. Triggers when the user asks to: analyze a competitor's YouTube channel strategy, understand what makes a competitor YouTube channel successful, benchmark a YouTube channel against a competitor, find patterns in a competitor's YouTube content that drive growth, analyze the content mix and publishing cadence of a competitor channel, understand a competitor's YouTube audience and engagement, or reverse-engineer what a competitor is doing well on YouTube. Returns content mix, format performance, publishing cadence, engagement benchmarks, and strategic insights. Ideal for YouTube content strategists, brand video teams, and competitive intelligence analysts. license: Apache-2.0 metadata: author: apidojo version: "1.0" apify-actor: apidojo/youtube-scraper --- # Analyzing Youtube Competitor Channel Strategy Executes analyzing youtube competitor channel strategy using apidojo scrapers. Part of the apidojo intelligence skills library. ## 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: Define parameters - [ ] Step 2: Run youtube-scraper - [ ] Step 3: Filter and classify results - [ ] Step 4: Score by quality and relevance - [ ] Step 5: Deliver output ``` ### Step 2: Run the Actor **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: { "searchTerms": "https://www.youtube.com/@[COMPETITOR_CHANNEL]", "maxItems": 100 } ``` **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 '{"searchTerms": "https://www.youtube.com/@[COMPETITOR_CHANNEL]", "maxItems": 100}' ``` Wait for `SUCCEEDED`. Fetch dataset: ```bash curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN" ``` ### Step 3: Classify Results ``` classification: GROWING (view rate > 20%) | HEALTHY (10-20%) | PLATEAU (5-10%) | DECLINING (< 5%) ``` ### Step 4: Score Each Result ``` score = channel_health = avg_views/subscriber_count * 100 # view rate; healthy > 10% ``` ### Step 5: Edge Cases - **Channels with old viral videos have inflated subscriber counts relative to current performance — use median views from last 20 videos as the current health indicator** Additional fallbacks: - **< 20 results**: Broaden search terms; remove secondary filters - **No results**: Verify the search terms are correct; try alternate phrasings - **Data quality issues**: Remove entries with missing key fields; note count in output ## Output Format ``` # Analyzing Youtube Competitor Channel Strategy Results: [N] | Date: [DATE] | # | [Key Field] | [Metric 1] | [Metric 2] | [Classification] | [Score] | |---|------------|-----------|-----------|-----------------|---------| | 1 | [value] | [value] | [value] | [type] | [0.XX] | ## Summary Top result: [description] Key finding: [insight] ``` ## Troubleshooting **Too few results:** Broaden the primary search term; remove restrictive filters. **Low quality results:** Apply minimum score threshold (≥ 0.50) to filter noise. **Actor fails to run:** Verify API key; check actor status at apify.com/apidojo.