# YouTube Channel Info and Stats Scraper (`confidential_gnat/youtube-channel-info-and-stats`) Actor

Scrape channel info and statistics from YouTube channel About pages. Accepts channel URLs directly, or search queries whose matching videos' channels are discovered and scraped. Set a project name to return only unique channels across runs, skipping already scraped data using our own cache.

- **URL**: https://apify.com/confidential\_gnat/youtube-channel-info-and-stats.md
- **Developed by:** [ActorFlow](https://apify.com/confidential_gnat) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.60 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## YouTube Channel Info and Stats Scraper

Extracts detailed channel information and statistics from **[YouTube](https://www.youtube.com)** channel About pages — subscriber count, total views, video count, joined date, country, avatar, and external links. Give it channel URLs directly, or search queries to discover channels from matching videos, and get clean structured data in return. Set a project name to return only unique channels across runs, skipping ones already scraped before using our own cache.

**Target website:** [YouTube](https://www.youtube.com)

### 💰 Pricing

| Pricing | Free       | Business   |
| ------- | ---------- | ---------- |
| Results | 0.80/1,000 | 0.60/1,000 |

### ⚖️ Legality of this actor

This actor only collects data that is already publicly visible on YouTube channel About pages — no login, paywall, or private content is accessed. Scraping publicly available data is generally considered legal, as established in *hiQ Labs v. LinkedIn*. You are responsible for complying with YouTube's Terms of Service and any applicable data protection laws (e.g. GDPR/CCPA) when using the extracted data, particularly if it includes personal information.

### 💡 Use Case

Marketers, researchers, and creators who need reliable channel-level metrics — subscriber counts, view totals, and growth signals — without manually opening dozens of YouTube pages or hitting API quota limits.

### 📤 Output

Structured JSON dataset (exportable to CSV/Excel) containing one record per channel with fields such as channel name, handle, URL, description, subscriber/view/video counts, joined date, country, avatar, and external links.

### ✨ Features

- **Channel info & stats extraction** — subscriber count, view count, video count, joined date, country, avatar, description, and external links
- **Search-based channel discovery** — find and scrape channels whose videos match a search query
- **Pagination support** — automatically loads further search results to reach the requested number of channels per query
- **Proxy support** — optional proxy configuration for large-scale or high-volume runs
- **Cross-run caching** — set a project name to skip channels already scraped in a previous run, so repeated runs only return new channels

### 🔧 Input Configuration

| Field                 | Type    | Required | Default  | Description                                                                                                                                                               |
| --------------------- | ------- | -------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `startUrls`           | Array   | —        | —        | YouTube channel URLs to scrape (any form: `@handle`, `/channel/UCxxx`, `/c/name`)                                                                                         |
| `searchQueries`       | Array   | —        | —        | Search terms; channels whose videos appear in results are discovered and scraped                                                                                          |
| `maxChannelsPerQuery` | Integer | —        | 10       | Maximum number of unique channels to discover and scrape per search query                                                                                                 |
| `projectName`         | String  | —        | —        | Channels already scraped under this project name in a previous run are skipped on later runs, so repeated runs only collect new channels. Leave empty to disable caching. |
| `proxyConfiguration`  | Object  | —        | No proxy | Proxy settings for the run                                                                                                                                                |

**Supported URL types:**

- `https://www.youtube.com/@handle`
- `https://www.youtube.com/channel/UCxxxxxxxx`
- `https://www.youtube.com/c/ChannelName`

### 📦 Output

The dataset has 1 view — **Channel info and stats** — showing channel name, handle, URL, subscriber/view/video counts, joined date, country, avatar, and the search query that found the channel (if applicable).

**Sample output:**

```json
[
    {
        "channelId": "UCBJycsmduvYEL83R_U4JriQ",
        "channelName": "Marques Brownlee",
        "handle": "@mkbhd",
        "channelUrl": "http://www.youtube.com/@mkbhd",
        "description": "MKBHD: Quality Tech Videos | YouTuber | Geek | Consumer Electronics | Tech Head | Internet Personality!\n\nbusiness@MKBHD.com\n\nNYC",
        "subscriberCount": 21200000,
        "viewCount": 5550015388,
        "videoCount": 1844,
        "joinedDate": "2008-03-21",
        "country": "United States",
        "avatarUrl": "https://yt3.googleusercontent.com/qu4TmIaYUlS41-dJ9gZ7DUR3nilvmB5_11i6OKSdvNnBNiyOusZP1bMN6ICnuxtjFBb6ioKgRQ=s900-c-k-c0x00ffffff-no-rj",
        "externalLinks": [
            "twitter.com/MKBHD",
            "instagram.com/MKBHD",
            "youtube.com/c/TheStudio",
            "reddit.com/r/MKBHD",
            "discord.gg/MKBHD"
        ],
        "isFamilySafe": true,
        "keywords": "MKBHD MarquesBrownlee Marques Brownlee",
        "foundViaQuery": null
    }
]
```

### 💡 Uses of This Data

- Benchmarking subscriber and view growth across competitor or industry channels
- Building influencer/creator shortlists filtered by subscriber count or country
- Tracking channel metrics over time for market research or reporting
- Enriching CRM or marketing datasets with up-to-date channel statistics
- Discovering active channels in a niche via search-based scraping

### 🚀 How to Use

1. [Sign up](https://apify.com/sign-up) for a free Apify account — includes **$5 monthly credit**.
2. Open the actor page and click **Try for free**.
3. Fill in the **Input** fields — provide channel URLs, search queries, or both.
4. Click **Start** and wait for the run to complete.
5. Download results from the **Output** tab in JSON, CSV, or Excel format.

You can also run this actor via the [Apify API](https://docs.apify.com/api/v2) or integrate it directly into your workflows using [Zapier](https://zapier.com/apps/apify), [Make](https://www.make.com/), or [n8n](https://n8n.io/).

### 📝 Notes

- **Proxy recommended for large-scale scraping** — For high-volume runs, enable the Apify Residential or Datacenter proxy to avoid blocks.
- **API integration** — This actor can be called as an API from any automation platform (Zapier, Make, n8n, custom scripts).

### 🏭 Industry

Media & Entertainment, Marketing & Advertising, Market Research, Influencer Marketing

### 🌐 Domain

Social media / video platform data extraction (YouTube)

### 🏷️ Label

`youtube`, `channel-scraper`, `youtube-stats`, `subscriber-count`, `social-media-data`, `video-platform`

### 🔗 Other Actors

| Scraper                                                                                                                            | Description                                                                                                                                                                                                                                           |
| ---------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [🏛️ BidNet Direct Open Bid Opportunities Scraper](https://apify.com/confidential_gnat/bidnetdirect-open-bid-opportunities-scraper) | Scrapes open government bid and RFP solicitations from BidNet Direct, including title, publication date, closing date and other relevant data.                                                                                                        |
| [🚗 Cheapest Cars & Bids Scraper](https://apify.com/confidential_gnat/cheapest-carsandbids-scraper)                                | Scrapes the cheapest vehicle listings from Cars & Bids, making it easy to discover the best-value auction deals.                                                                                                                                      |
| [🔍 Incidecoder Scraper](https://apify.com/confidential_gnat/whois-com)                                                            | Extracts cosmetic ingredient and product information from Incidecoder for research and analysis.                                                                                                                                                      |
| [🎟️ Gametime Events Website Scraper](https://apify.com/confidential_gnat/gametime-events-scraper)                                  | Collects event listings, ticket availability, and pricing data from Gametime.                                                                                                                                                                         |
| [🌐 WHOIS Domain Lookup Scraper](https://apify.com/confidential_gnat/whois-com)                                                    | Bulk WHOIS lookups via whois.com. Accepts URLs, bare domains, or whois.com lookup links, and returns registration dates, registrar, name servers, status codes, abuse contacts, registrant/technical contact details, and similar domain suggestions. |
| [▶️ YouTube Video List Scraper](https://apify.com/confidential_gnat/youtube-video-list-scraper)                                    | Bulk WHOIS lookups via whois.com. Accepts URLs, bare domains, or whois.com lookup links, and returns registration dates, registrar, name servers, status codes, abuse contacts, registrant/technical contact details, and similar domain suggestions. |

### 💬 Support & Contact

If you encounter any issues or have questions, please [open an issue](https://apify.com/confidential_gnat/youtube-channel-info-and-stats/issues/open)

You can also find more of my actors on the page [Actor Flow ](https://apify.com/confidential_gnat).

# Actor input Schema

## `startUrls` (type: `array`):

YouTube channel URLs to scrape info and stats for (any form: @handle, /channel/UCxxx, /c/name).

## `searchQueries` (type: `array`):

YouTube search terms. Channels whose videos appear in the search results are discovered and scraped for info and stats.

## `maxChannelsPerQuery` (type: `integer`):

Maximum number of unique channels to discover and scrape per search query.

## `projectName` (type: `string`):

Optional. Channels already scraped under this project name in a previous run are skipped on later runs, so repeated runs only collect new channels. Leave empty to disable caching.

## `proxyConfiguration` (type: `object`):

Proxy settings. Channel About pages and search results work reliably without a proxy, so this is off by default.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.youtube.com/@mkbhd"
    }
  ],
  "searchQueries": [
    "react tutorial"
  ],
  "maxChannelsPerQuery": 10,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.youtube.com/@mkbhd"
        }
    ],
    "searchQueries": [
        "react tutorial"
    ],
    "maxChannelsPerQuery": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("confidential_gnat/youtube-channel-info-and-stats").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [{ "url": "https://www.youtube.com/@mkbhd" }],
    "searchQueries": ["react tutorial"],
    "maxChannelsPerQuery": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("confidential_gnat/youtube-channel-info-and-stats").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.youtube.com/@mkbhd"
    }
  ],
  "searchQueries": [
    "react tutorial"
  ],
  "maxChannelsPerQuery": 10
}' |
apify call confidential_gnat/youtube-channel-info-and-stats --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,confidential_gnat/youtube-channel-info-and-stats"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/QdNz5CxJJZ2zBiR79/builds/6LVogov6LHdNM9xNH/openapi.json
