# YouTube Channel Scraper (`igview-owner/youtube-channels-scraper`) Actor

Extract complete YouTube channel details from any Channel ID: channel name, handle, description, subscribers, total views, video count, country, join date, avatars/banners, and external links. Perfect for influencer research, competitor analysis, and channel analytics.

- **URL**: https://apify.com/igview-owner/youtube-channels-scraper.md
- **Developed by:** [Sachin Kumar Yadav](https://apify.com/igview-owner) (community)
- **Categories:** Social media, Developer tools, Other
- **Stats:** 44 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## YouTube Channels Scraper

Extract comprehensive YouTube channel information including channel name, description, subscriber count, total views, video count, join date, country, avatars, banners, and social links. Perfect for channel analytics, competitor research, influencer marketing, and lead generation.

### Table of Contents

- [Features](#features)
- [How to Use](#how-to-use)
- [Input Parameters](#input-parameters)
- [Output Data](#output-data)
- [Best Practices](#best-practices)
- [FAQ](#faq)

***

### Features

| Feature | Description |
|---------|-------------|
| **Multiple Channel IDs** | Scrape one or multiple channels in a single run using `channelIds` |
| **Complete Channel Profile** | Get title, description, handle, join date, country, and safe/unlisted flags |
| **Subscribers / Views / Videos** | Extract channel subscribers, total views, and total video count |
| **Avatars & Banners** | Get channel avatar + banner images (multiple sizes) |
| **Social & External Links** | Extract channel links (website/social) listed in the About section |
| **Localization Support** | Choose geo + language for localized channel metadata |
| **Clean Table Views** | Prebuilt dataset views: overview and details |
| **Fast & Reliable** | Built-in retries, rate limiting, and friendly error handling |

***

### How to Use

#### Step 1: Find YouTube Channel ID

To find a YouTube channel ID:

1. Visit the YouTube channel
2. Open the channel “About” page or copy the channel URL
3. Find the Channel ID (it usually starts with `UC...` and is 24 characters long)

**Note:** This actor expects channel IDs (not usernames / handles).

#### Step 2: Configure Input

**Basic Example:**

```json
{
  "channelIds": ["UCq-Fj5jknLsUf-MWSy4_brA"],
  "geo": "US",
  "lang": "en"
}
```

**Multiple Channels Example:**

```json
{
  "channelIds": [
    "UCq-Fj5jknLsUf-MWSy4_brA",
    "UCX6OQ3DkcsbYNE6H8uQQuVA"
  ],
  "geo": "IN",
  "lang": "hi"
}
```

#### Step 3: Run the Actor

Click "Start" and the actor will extract channel information for each Channel ID.

***

### Input Parameters

| Parameter | Type | Required | Description | Default | Example |
|-----------|------|----------|-------------|---------|---------|
| `channelIds` | Array | Yes | List of YouTube Channel IDs | - | `["UCq-Fj5jknLsUf-MWSy4_brA"]` |
| `geo` | String | | Country/region code (ISO 3166-2) | `"US"` | `"IN"` |
| `lang` | String | | Language code for localized results | `"en"` | `"hi"` |

#### Input Details

**channelIds** (Required)

- One or more YouTube Channel IDs
- Format: `UC` + 22 characters (total 24)
- Example: `UCq-Fj5jknLsUf-MWSy4_brA`
- Tip: You can scrape up to 30 channel IDs in one run (UI limit)

**geo** (Optional)

- Select from 31 countries including:
  - United States, United Kingdom, Canada, India, Australia
  - Germany, France, Japan, Brazil, Mexico
  - And 21 more countries
- Affects localization of channel metadata

**lang** (Optional)

- Select from 30 languages including:
  - English, Hindi, Spanish, French, German
  - Italian, Portuguese, Japanese, Korean, Chinese
  - And 20 more languages including regional Indian languages

***

### Output Data

#### Sample Channel Output

```json
{
  "channelId": "UCq-Fj5jknLsUf-MWSy4_brA",
  "title": "T-Series",
  "channelHandle": "@tseries",
  "channelUrl": "https://www.youtube.com/@tseries",
  "subscriberCountText": "308M",
  "subscriberCount": 308000000,
  "videosCountText": "24,968 videos",
  "videosCount": "24968",
  "viewCountText": "322,821,040,399 views",
  "viewCount": "322821040399",
  "country": "India",
  "joinedDate": "2006-03-13",
  "avatar": "https://yt3.googleusercontent.com/...",
  "banner": "https://yt3.googleusercontent.com/...",
  "links": [
    { "title": "Instagram", "link": "instagram.com/..." }
  ]
}
```

#### Error Output (if channel does not exist)

```json
{
  "channelId": "UCxxxxxxxxxxxxxxxxxxxxxx",
  "error": "This channel does not exist.",
  "timestamp": "2025-12-13T03:00:00.000Z"
}
```

#### Output Fields

##### Main Channel Fields

| Field | Type | Description |
|-------|------|-------------|
| `channelId` | String | Unique YouTube channel ID |
| `title` | String | Channel name |
| `description` | String | Channel description |
| `channelHandle` | String | Channel handle (e.g., @tseries) |
| `channelUrl` | String | Direct channel URL from handle |
| `subscriberCountText` | String | Formatted subscriber count |
| `subscriberCount` | Number | Subscriber count (numeric) |
| `videosCountText` | String | Formatted videos count |
| `videosCount` | String/Number | Videos count |
| `viewCountText` | String | Formatted total views |
| `viewCount` | String/Number | Total views |
| `country` | String | Channel country |
| `joinedDate` | String | Join date (YYYY-MM-DD) |
| `avatar` | String | Channel avatar URL |
| `banner` | String | Channel banner URL |
| `links` | Array | Channel external links (title + link) |

***

### Best Practices

#### Do's

- Use correct Channel IDs (starts with `UC`)
- Select appropriate geo/lang for your target audience
- Export data immediately after extraction
- Use `overview` view for quick browsing and `details` view for deeper analysis

#### Don'ts

- Don't provide handles/usernames instead of Channel IDs
- Don't ignore error messages
- Don't expect data from deleted/suspended channels
- Don't forget to check data completeness

***

### FAQ

#### How do I find a YouTube Channel ID?

Visit the YouTube channel and find the Channel ID (it starts with `UC`). You can often find it in the channel URL, page source, or by using online “YouTube Channel ID Finder” tools.

#### What's the difference between geo and lang?

- **geo**: Affects region-based localization
- **lang**: Affects language-based localization

#### Can I extract from private or unlisted channels?

Only public channel information is supported. If a channel is deleted/suspended or restricted, the actor may return an error item.

#### How long does extraction take?

Typically a few seconds per channel ID, depending on network conditions and rate limits.

#### What data formats are supported?

The actor outputs data in JSON format, which can be exported to CSV, Excel, or other formats from the Apify platform.

#### How many channels can I scrape?

You can scrape multiple channel IDs in one run. By default, the input UI is limited to 30 IDs.

#### Can I run this actor multiple times?

Yes, you can run the actor as many times as needed. Each run is independent.

***

### 🏷️ Tags

**YouTube Scraper** • **YouTube Channels Scraper** • **YouTube Channel Data Extractor** • **Channel Analytics** • **Influencer Research** • **Competitor Research** • **Lead Generation** • **YouTube Automation** • **YouTube Intelligence** • **Video Analytics** • **Social Listening** • **Brand Monitoring**

***

### Get Started Now

**Ready to extract YouTube channel data?**

1. Add one or more **Channel IDs** in `channelIds` (`UC...`)
2. Select your preferred **region** (`geo`) and **language** (`lang`)
3. Click "Start" to run the actor
4. View results in clean table views (`overview` / `details`)
5. Export data in your preferred format
6. Click ["Try for free"](https://apify.com?fpr=ykgg9c) to test the actor

**If this actor helps your workflow, please give it a star!**

Looking for more YouTube data? Check out these complementary actors:

- **[YouTube Video Downloader](https://apify.com/igview-owner/youtube-video-downloader-api)**
- **[YouTube Comment Scraper](https://apify.com/igview-owner/youtube-comment-finder)**
- **[YouTube Search Scraper](https://apify.com/igview-owner/youtube-search-scraper)**
- **[YouTube Video Scraper](https://apify.com/igview-owner/youtube-video-details-scraper)**
- **[YouTube Subtitles Scraper](https://apify.com/igview-owner/youtube-subtitles-scraper)**
- **[YouTube Transcript Scraper](https://apify.com/igview-owner/youtube-transcript-scraper)**
- **[YouTube Channel Videos Scraper](https://apify.com/igview-owner/youtube-channel-videos-scraper)**
- **[YouTube Channel Home Page Scraper](https://apify.com/igview-owner/youtube-channel-home-page-scraper)**
- **[YouTube Shorts Scraper](https://apify.com/igview-owner/youtube-shorts-scraper)**

***

*Built with ❤️ by Sachin Kumar Yadav using Apify Platform*

# Actor input Schema

## `channelIds` (type: `array`):

Enter YouTube Channel IDs (e.g., UCq-Fj5jknLsUf-MWSy4_brA for T-Series, UCX6OQ3DkcsbYNE6H8uQQuVA for MrBeast). Each ID starts with 'UC' and is 24 characters long. Add multiple IDs to scrape multiple channels in one run.

## `geo` (type: `string`):

🗺️ Select the country/region for localized content. Different regions may show localized channel descriptions and metadata.

## `lang` (type: `string`):

🌐 Select the language for localized results. This affects channel titles, descriptions, and metadata language.

## Actor input object example

```json
{
  "channelIds": [
    "UCq-Fj5jknLsUf-MWSy4_brA"
  ],
  "geo": "US",
  "lang": "en"
}
```

# Actor output Schema

## `overview` (type: `string`):

Overview of all scraped YouTube channels with avatar, name, handle, subscribers, videos, views, country, and channel URL.

## `details` (type: `string`):

Detailed view of all scraped channels including channel ID, description, subscriber count, video count, view count, join date, and family safe status.

# 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 = {
    "channelIds": [
        "UCq-Fj5jknLsUf-MWSy4_brA"
    ],
    "geo": "US",
    "lang": "en"
};

// Run the Actor and wait for it to finish
const run = await client.actor("igview-owner/youtube-channels-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 = {
    "channelIds": ["UCq-Fj5jknLsUf-MWSy4_brA"],
    "geo": "US",
    "lang": "en",
}

# Run the Actor and wait for it to finish
run = client.actor("igview-owner/youtube-channels-scraper").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 '{
  "channelIds": [
    "UCq-Fj5jknLsUf-MWSy4_brA"
  ],
  "geo": "US",
  "lang": "en"
}' |
apify call igview-owner/youtube-channels-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,igview-owner/youtube-channels-scraper"
        }
    }
}
```

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/r2udf6IBGGdJ6KTT7/builds/xBlfKZcae9CgtimR0/openapi.json
