Skip to main content
skill CX Codex

scraping-youtube-channel-data — Claude Code skill

Collects YouTube channel metrics and video catalogs through Apify. Use it to process channels in bulk from URLs or handles.

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

What scraping-youtube-channel-data does

This skill takes YouTube channel URLs or handles, runs apidojo~youtube-channel-scraper on Apify, and returns channel-level data. Results can include the channel name, subscriber total, views, video count, country, join date, description, URL, and recent videos. Search settings cover keywords, language, country, upload date, duration, features, sorting, and result limits.

The main path uses scripts/run_actor.js, which starts the actor, waits for completion, then prints a table or saves CSV and JSON output. The instructions also cover Apify MCP and a REST API fallback. Set APIFY_TOKEN in the environment or in .env before running; without it, the actor cannot be started. Hidden subscriber totals come back as null, while age-restricted channels may return partial metadata.

What it helps with

  • collect channel metrics for a list of YouTube channels
  • export a channel’s video catalog as CSV or JSON
  • compare subscribers, views, and video counts
  • fetch channel data from URLs or handles
  • filter videos by date, duration, or feature

Example prompts for the agent

  • Collect metrics for these YouTube channel URLs and return subscribers, views, and video counts.
  • Get the recent videos for @channelhandle and save the result as CSV.
  • Run the Apify scrape for this list of handles and return the dataset as JSON.

How to install scraping-youtube-channel-data

1Skills CLI (Vercel)

npx skills add apidojo-io/apidojo-skills --skill scraping-youtube-channel-data -a claude-code

2Manually: put the files in place

~/.claude/skills/scraping-youtube-channel-data/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/scraping-youtube-channel-data/

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

Questions about scraping-youtube-channel-data

How do I install scraping-youtube-channel-data in Claude Code?

Run npx skills add apidojo-io/apidojo-skills --skill scraping-youtube-channel-data -a claude-code. The skill file will be placed at ~/.claude/skills/scraping-youtube-channel-data/SKILL.md.

What does scraping-youtube-channel-data do?

It runs an Apify YouTube scraper and collects channel metrics, video details, and recent videos from channel URLs or handles.

What is required to run the skill?

Set APIFY_TOKEN in the environment or in .env. You can also run the actor through Apify MCP when that server is installed.

Source text

SKILL.md · Apache-2.0
---
name: scraping-youtube-channel-data
description: >
  Scrapes YouTube channel statistics and video catalog for any list of channels using
  apidojo's YouTube scraper on Apify. Triggers when the user asks to: get YouTube channel
  stats, fetch subscriber count and video count for YouTube channels, scrape channel
  metadata in bulk, export YouTube channel information by URL or handle, get all videos
  from a YouTube channel, or check channel growth data for a list of creators.
  Returns channel name, subscriber count, total views, video count, and recent video data.
  Ideal for competitor analysis, creator research, and audience benchmarking.
license: Apache-2.0
metadata:
  author: apidojo
  version: "1.0"
  apify-actor: apidojo/youtube-scraper
---

# Scraping YouTube Channel Data

Exports channel-level statistics and optional video catalog for any YouTube channel URL or handle.

## 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: Normalize channel URLs
- [ ] Step 2: Run youtube-scraper
- [ ] Step 3: Poll for SUCCEEDED
- [ ] Step 4: Deliver channel dataset
```

### 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-channel-scraper" \
  --input '{"param": "value"}'

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

# Save as JSON
node scripts/run_actor.js \
  --actor "apidojo~youtube-channel-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-channel-scraper"
Input:
{
  "channelUrls": ["https://www.youtube.com/@channelhandle"],
  "maxVideos": 30
}
```

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

Save `id` as `RUN_ID`. Poll until `status = SUCCEEDED`:
```bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID?token=$APIFY_TOKEN" | grep '"status"'
```

Fetch results:
```bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN&format=json"
```

### Step 3: Handle Edge Cases

- **Channel URL not found**: Handle may have changed — verify on YouTube.
- **Hidden subscriber count**: Some channels hide subscriber counts; field returns null — flag these.
- **Age-restricted channel**: May return limited metadata.

## Output Format

```
# YouTube Channel Dataset
Channels requested: N | Returned: N

| Channel | Subscribers | Total Views | Videos | Joined | Country | Recent Avg Views |
|---------|-------------|-------------|--------|--------|---------|-----------------|
| ...     | ...         | ...         | ...    | ...    | ...     | ...             |

Available fields: channelName, channelId, subscriberCount, viewCount, videoCount,
country, joinedDate, description, channelUrl, recentVideos[]
```

## Troubleshooting

**Hidden subscriber count:** YouTube allows channels to hide this — return `null` and note in output.
**Large video catalogs:** Set `maxVideos: 100` max per run to avoid timeouts.

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

Similar skills

All skills for Browser and scraping →

From the same set57

finding-freelancers-by-skill-on-twitter Finds freelancers and independent contractors on Twitter by skill, profile details, and signs they are open to work. Useful when a project needs outside specialists. CX Codex +1 740installs monitoring-instagram-hashtag-trends Pulls Instagram posts per hashtag and works out which tags actually earn engagement. Useful when you need a hashtag set for a post or a brand comparison. CX Codex +1 740installs finding-real-estate-professionals-on-twitter Finds real estate agents, brokers, investors, and other property professionals on Twitter/X through Apify. Useful for building targeted profile lists. CX Codex +1 739installs building-twitter-industry-watchlist Builds a curated list of key voices in an industry on X, with handle, follower count, engagement and an influence score. CX Codex +1 739installs scraping-tiktok-videos-by-hashtag Pulls TikTok videos for any hashtag or keyword through apidojo's scraper on Apify. Returns URL, views, likes, comments, shares and author per video. CX Codex +1 738installs monitoring-google-news-coverage-for-brand Searches Google News for brand coverage through Apify, then returns article details and sentiment. Use it for press and reputation monitoring. CX Codex +1 737installs analyzing-tiktok-hashtag-performance Measures TikTok hashtag reach, engagement, top videos, and creators through Apify. Use it to compare tags or shape a hashtag plan for a post. CX Codex +1 730installs finding-youtube-channels-by-growth-rate Finds YouTube channels with high growth rates in a niche using Apify's YouTube scraper. Useful for spotting rising creators before they get big. CX Codex +1 730installs

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