# YouTube Channel Scraper (`channel_profiler/youtube-channel-scraper`) Actor

Get full YouTube channel data, including subscribers, total views, and channel details, along with comprehensive video data such as views, likes, comments, duration, and tags.

- **URL**: https://apify.com/channel\_profiler/youtube-channel-scraper.md
- **Developed by:** [Channel Profiler](https://apify.com/channel_profiler) (community)
- **Categories:** Social media, SEO tools, Videos
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.40 / 1,000 results

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

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

📢 **Looking for a better UI? Visit [Channel Profiler](https://channelprofiler.com/) to access advanced analytics dashboards and exclusive niche channel directories.**

A powerful, lightning-fast data extraction tool designed to scrape comprehensive channel statistics and video metrics directly from YouTube. Built for developers, marketers, and researchers who need pristine JSON data without the overhead of slow headless browsers.

---



### 🌟 Why Choose YouTube Channel Scraper (Channel Profiler)?

Unlike standard scrapers, [Channel Profiler](https://channelprofiler.com/) uses optimized backend requests to deliver deep insights at scale.

* **In-depth Channel Profiles:** Extract core fundamentals including subscriber counts, lifetime views, geographic location, and complete about-page descriptions.
* **Comprehensive Video Analytics:** Retrieve granular video-level performance metrics such as view counts, likes, comments, and exact video durations.
* **Exclusive Dual-Dataset Architecture:** Say goodbye to manual data cleaning. We automatically route your data into two perfectly structured datasets: a comprehensive video feed and a clean, deduplicated list of channel profiles.
* **High-Volume Batch Processing:** Effortlessly queue and process up to 100 YouTube channels in a single automated run.

---



### 📊 What Data Will You Get?

#### 1. Unique Channel Profiles (Stored in `unique-channels` dataset)

* `handle`: The channel's unique @username.
* `title`: The name of the channel.
* `description`: The full channel about/description text.
* `subscriberCount`: Total number of subscribers.
* `totalViews`: Total accumulated views across all videos.
* `videoCount`: Total number of uploaded videos.
* `location`: Channel country code (e.g., US, DE).
* `publishedAt`: The date the channel was created.
* `avatarUrl`: High-resolution profile picture URL.
* `bannerUrl`: Channel banner image URL.
* `channelUrl`: The exact YouTube channel URL.
* `inputUrl`: The original URL you provided.

#### 2. Video Metrics (Stored in the default dataset)

* `id`: The unique video ID.
* `title`: The title of the video.
* `videoUrl`: The direct link to the video.
* `description`: The video's description text.
* `viewCount`: Number of views.
* `likeCount`: Number of likes.
* `commentCount`: Number of comments.
* `duration`: Video length formatted as `MM:SS` or `HH:MM:SS` (e.g., `1:15`).
* `publishedAt`: The exact publication timestamp.
* `tags`: An array of SEO tags used in the video.
* `categoryId`: YouTube category ID.
* `thumbnail`: High-resolution video thumbnail URL.
* 🔗 *Bonus: Every video row includes a nested `channel` object containing all the parent channel data listed above.*

---



### 💰 Transparent Pricing

We utilize a fair **Pay-per-Result** model.

**1 Result = 1 Video extracted (with parent channel data included).** *(Note: Channels with zero videos will safely return 1 fallback result containing the channel's profile data).*

* **Standard Rate:** $0.80 / 1,000 results.
* **Subscriber Rate:** **$0.40 / 1,000 results** (50% off with any Apify paid plan).
* **Free Trial:** 6,250 free results/month via Apify's $5 free tier.
* **Scale Up ($49/mo):** Unlocks the $0.40 rate for up to **122,500 results** monthly.

---



### ⚙️ How to Use (Input Example)

Configuration is incredibly simple via UI or JSON API:

```json
{
    "channelInputs": [
        "https://www.youtube.com/@MrBeast",
        "https://www.youtube.com/channel/UCX6OQ3DkcsbYNE6H8uQQuVA"
    ],
    "videoLimit": 100
}
````

***

### 📋 Beautifully Structured Output

The tool outputs perfectly nested JSON, making it ideal for downstream database ingestion or direct export to flattened CSV/Excel files.

```
{
    "id": "ScjQAcbA9e4",
    "videoUrl": "https://www.youtube.com/watch?v=ScjQAcbA9e4",
    "title": "Important Announcement From The Grocery Store",
    "description": "",
    "thumbnail": "https://i.ytimg.com/vi/ScjQAcbA9e4/hqdefault.jpg",
    "publishedAt": "2026-04-28T16:00:24Z",
    "duration": "0:13",
    "viewCount": 1158763,
    "likeCount": 77843,
    "commentCount": 5146,
    "tags": [
      "asmr",
      "asmrsounds",
      "relaxing videos",
      "satisfying",
      "dailyasmr",
      "asmrvideo",
      "relaxingvideo",
      "mrbeast"
    ],
    "categoryId": "24",
    "channel": {
      "inputUrl": "https://www.youtube.com/@MrBeast",
      "handle": "@mrbeast",
      "title": "MrBeast",
      "description": "SUBSCRIBE FOR A COOKIE!\nNew MrBeast or MrBeast Gaming video every single Saturday at noon eastern time!\nAccomplishments:\n- Raised $20,000,000 To Plant 20,000,000 Trees\n- Removed 30,000,000 pounds of trash from the ocean\n- Helped 2,000 people walk again\n- Helped 1,000 blind people see\n- Helped 1,000 deaf people hear\n- Built wells in Africa\n- Built and gave away 100 houses\n- Adopted every dog in a shelter (twice)\n- Given millions to charity\n- Started my own snack company Feastables\n- Started my own software company Viewstats\n- Started Lunchly, a tasty, better-for-you lunch option\n- Gave away a private island (twice)\n- Gave away 1 million meals\n- I counted to 100k\n- Ran a marathon in the world's largest shoes\n- Survived 50 hours in Antarctica\n- Recreated Squid Game in real life\n- Created the largest competition show with 1000 people (Beast Games)\n- Gave $5,000,000 to one person\n- Passed T-Series to become most subscribed YouTube channel 🥹\nyou get it, I appreciate all of you so much :)\n",
      "avatarUrl": "https://yt3.ggpht.com/nxYrc_1_2f77DoBadyxMTmv7ZpRZapHR5jbuYe7PlPd5cIRJxtNNEYyOC0ZsxaDyJJzXrnJiuDE=s88-c-k-c0x00ffffff-no-rj",
      "bannerUrl": "https://yt3.googleusercontent.com/mHMO_eEMp0dPvh0ADwXhPXNYb_GnjSVsLI8biqF1CpxT8OPl7izhNQsDPD3JHhd5y5Mg9GrP",
      "location": "US",
      "subscriberCount": 480000000,
      "videoCount": 970,
      "totalViews": 119375832155,
      "publishedAt": "2012-02-20T00:43:50Z",
      "channelUrl": "https://www.youtube.com/channel/UCX6OQ3DkcsbYNE6H8uQQuVA"
    }
}
```

***

### ❓ Frequently Asked Questions (FAQ)

#### **Do I need to configure proxies?**

Because this Actor utilizes highly optimized API endpoints rather than browser automation, it is extremely efficient. For large-scale enterprise jobs, Apify's built-in Residential Proxies (included in paid plans) can be enabled with one click to ensure zero rate-limiting.

#### **Can I integrate this with other applications?**

Absolutely! Since we output standardized JSON, you can seamlessly connect this scraper to:

- **LLM Workflows:** LangChain, OpenAI APIs.
- **Automations:** Make (Integromat), Zapier, n8n.
- **Databases:** Google Sheets, Airtable, custom PostgreSQL/MongoDB backends.

#### **How do I access the API programmatically?**

Apify automatically provides standard REST API endpoints for this Actor. You can trigger runs and fetch datasets using the Apify API, Python SDK, or JavaScript/Node.js SDK.

#### **Is scraping YouTube channels legal?**

Our scraper extracts *only publicly available data* and respects the boundaries of publicly accessible web information. No private user data or gated content is collected. (For specific commercial use cases, please consult your legal team).

#### **What are the best use cases for this data?**

- Track competitor channels and benchmark performance.
- Vet influencers for brand deals by analyzing actual engagement, not just subscriber vanity metrics.
- Feed clean historical video metrics into your custom AI trend-prediction agents.

***

### 🛠 Support & Feedback

We are committed to maintaining a reliable data pipeline. If you encounter bugs, need higher limits, or have feature requests, please drop a message in the Actor's **Issues** tab!

# Actor input Schema

## `channelInputs` (type: `array`):

Add URLs one by one or paste a list. Maximum 100 channels allowed per run.

## `videoLimit` (type: `integer`):

Enter how many recent videos to analyze per channel (1 to 5000).

## Actor input object example

```json
{
  "channelInputs": [
    {
      "url": "https://www.youtube.com/@MrBeast"
    }
  ],
  "videoLimit": 100
}
```

# 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 = {
    "channelInputs": [
        {
            "url": "https://www.youtube.com/@MrBeast"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("channel_profiler/youtube-channel-scraper").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 = { "channelInputs": [{ "url": "https://www.youtube.com/@MrBeast" }] }

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

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

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

```

## CLI example

```bash
echo '{
  "channelInputs": [
    {
      "url": "https://www.youtube.com/@MrBeast"
    }
  ]
}' |
apify call channel_profiler/youtube-channel-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=channel_profiler/youtube-channel-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "YouTube Channel Scraper",
        "description": "Get full YouTube channel data, including subscribers, total views, and channel details, along with comprehensive video data such as views, likes, comments, duration, and tags.",
        "version": "0.0",
        "x-build-id": "TvcYeOx97AxOT82Co"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/channel_profiler~youtube-channel-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-channel_profiler-youtube-channel-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/channel_profiler~youtube-channel-scraper/runs": {
            "post": {
                "operationId": "runs-sync-channel_profiler-youtube-channel-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/channel_profiler~youtube-channel-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-channel_profiler-youtube-channel-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "channelInputs"
                ],
                "properties": {
                    "channelInputs": {
                        "title": "YouTube Channel URLs (Max 100)",
                        "maxItems": 100,
                        "type": "array",
                        "description": "Add URLs one by one or paste a list. Maximum 100 channels allowed per run.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "videoLimit": {
                        "title": "Max Videos to Fetch (Per Channel)",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Enter how many recent videos to analyze per channel (1 to 5000).",
                        "default": 100
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
