# Youtube Channel Scraper From Search Video (`alpha-scraper/youtube-channel-scraper-from-search-video`) Actor

Youtube Channel Scraper From Search Video discover the channels behind the matching videos & Shorts, and extract the details of every channel: stats, links, contacts and socials. Optionally add the Home, Videos, Shorts, Live, Playlists and Posts sections. Channel URLs, handles and IDs are accepted.

- **URL**: https://apify.com/alpha-scraper/youtube-channel-scraper-from-search-video.md
- **Developed by:** [Alpha Scraper](https://apify.com/alpha-scraper) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 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/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 Channel Scraper From Search Video

**YouTube Channel Scraper From Search Video** is an Apify Actor that searches YouTube by keyword, finds the channels behind the matching videos and/or Shorts, and returns either a clean list of channel URLs or detailed channel data. You can also add channels you already know by URL, handle or channel ID.

Marketers, agencies, researchers and developers use YouTube Channel Scraper From Search Video to build YouTube channel lists from real search results. Every channel is collected once, with statistics, links, socials, contact details found in public descriptions, and recent YouTube content.

> **📌 YouTube Channel Scraper From Search Video at a glance**
>
> - **Input:** YouTube keywords, plus optional channel URLs, handles or IDs
> - **Output:** one dataset item per YouTube channel
> - **Depth:** core channel details by default, optional Home, Videos, Shorts, Live, Playlists and Posts sections, or channel URLs only
> - **Export:** JSON, CSV, Excel, HTML or the Apify API

### 🔹 YouTube Channel Scraper From Search Video Key Features

YouTube Channel Scraper From Search Video turns YouTube search results into channel data in one run:

- **Keyword discovery:** every keyword runs its own YouTube search and pages through the results.
- **Content type choice:** find channels from regular YouTube videos, from YouTube Shorts, or from both.
- **Filters:** minimum views and a publish-date range decide which YouTube videos or Shorts may lead to a channel.
- **Known channels:** add YouTube channel URLs, handles or IDs alongside, or instead of, keywords.
- **Pick your sections:** channel details only (the default and fastest), any mix of the Home, Videos, Shorts, Live, Playlists and Posts sections, or just the channel URLs.
- **No duplicates:** YouTube Channel Scraper From Search Video collects a channel once, even if several keywords or inputs lead to it.

> **✅ Why use YouTube Channel Scraper From Search Video**
>
> - Discover YouTube channels that actually appear for your topic, instead of guessing names
> - Control cost and speed by choosing how much data each YouTube channel needs
> - Get structured YouTube channel data as JSON, ready for spreadsheets, CRMs and scripts

### 📦 What Data You Can Extract with YouTube Channel Scraper From Search Video

Every channel always gets its **core details**:

- **Identity and links:** channel name, creation date, handle URL, ID URL, avatar and banner
- **Statistics:** subscribers, total views and video count
- **Contacts and socials:** emails and phone numbers found in the YouTube channel description, website, and Instagram, Facebook, X, TikTok and LinkedIn links
- **Topics and SEO:** top tags, title keywords and page metadata

The channel content is scraped only when you switch its section on. All of them are off by default:

- **Home:** the channel trailer, the home page shelves and the featured channels
- **Videos:** recent and popular videos, the oldest video and content metrics such as average views and uploads per week
- **Shorts:** recent and popular Shorts
- **Live:** the current stream, upcoming streams and past streams
- **Playlists:** the channel's playlists, plus its podcasts, music releases and courses when it has them
- **Posts:** the latest community posts with their text, links, likes, comments, images and polls

YouTube Channel Scraper From Search Video leaves out any section for which YouTube publishes nothing, and a channel without a Live, Playlists or Posts tab is still returned.

### 🚀 How to Use YouTube Channel Scraper From Search Video

Follow these steps to run YouTube Channel Scraper From Search Video in Apify Console:

- Open the Actor and go to the **Input** tab.
- Add one or more **Search keywords**, or list channels under **Channel URLs**, **Channel handles** or **Channel IDs**.
- Pick a **Content type** and set **Max channels per keyword**.
- Choose the depth: the core channel details (the default), plus any of the **Home**, **Videos**, **Shorts**, **Live**, **Playlists** and **Posts** sections, or **Only collect channel URLs**.
- Click **Start**, then open the **Output** tab to view or export the YouTube channels.

You can also start YouTube Channel Scraper From Search Video through the Apify API, on a schedule, or with Apify integrations.

### 🔎 How to Find YouTube Channels From Search Results

Type a phrase such as `interview question and answer` and run the Actor. YouTube Channel Scraper From Search Video loads the YouTube search results page after page and collects the channel behind each video or Short.

YouTube Channel Scraper From Search Video stops when it has found **Max channels per keyword** new channels, when YouTube has no more results, or when **Max search result pages** is reached. Sponsored results are skipped.

### 🎬 Can You Use YouTube Channel Scraper From Search Video With Shorts?

Yes. In YouTube Channel Scraper From Search Video, **Content type** has three options: `videos`, `shorts` or `both` (the default). With `both`, a channel found through a video and a Short is listed once, at its first appearance.

YouTube mixes Shorts into only the first several result pages. Choosing `shorts` alone therefore returns fewer channels than `videos` or `both`.

### 🎯 How YouTube Channel Scraper From Search Video Filters Work

The filters decide which videos or Shorts may add a channel. An item that fails them never adds its channel, and skipped items do not count toward the limit.

- **Minimum views:** YouTube videos show an exact view count, while Shorts show only a rounded one such as `1.3K`, so Shorts are compared approximately.
- **Published after / before:** videos show a rounded age such as `12d ago`, and Shorts show no date at all. When a date filter is set, each Short is looked up individually, which makes Shorts runs slower.

If a narrow period returns fewer YouTube channels than expected, raise **Max search result pages**.

### 🧩 YouTube Channel Scraper From Search Video Use Cases

- **Influencer research:** use YouTube Channel Scraper From Search Video to find YouTube creators in a niche and compare subscribers, average views and engagement.
- **Lead generation:** YouTube Channel Scraper From Search Video collects public contact details and website links from YouTube channels in your market.
- **Competitor analysis:** use YouTube Channel Scraper From Search Video to see which channels rank for your keywords and how often they upload.
- **Channel lists:** run YouTube Channel Scraper From Search Video in URL-only mode to build large lists of YouTube channel URLs quickly.
- **Enrichment:** pass known YouTube handles or IDs to add statistics and socials to an existing list.

### ⚙️ Input

Open the **Input** tab and fill in the fields below. YouTube Channel Scraper From Search Video needs at least one keyword, channel URL, handle or channel ID.

| Field | What it does |
|---|---|
| `keywords` | YouTube search phrases. Each keyword runs its own search. |
| `contentType` | `videos`, `shorts` or `both` (default). |
| `maxchannels` | Unique channels per keyword, from 1 to 1,000 (default 10). |
| `maxSearchPages` | Safety limit of search result pages per keyword, from 1 to 100 (default 30). |
| `minViews` | Minimum views for the YouTube videos or Shorts that lead to a channel. |
| `newerThan` / `olderThan` | Publish-date range. Use `YYYY-MM-DD` or an age such as `2 weeks`. |
| `startUrls` | YouTube channel URLs such as `https://www.youtube.com/@Handle`. Use the main page, not tab URLs. |
| `usernames` | YouTube channel handles, with or without `@`. |
| `channelIds` | 24-character YouTube channel IDs starting with `UC`. |
| `channelUrlsOnly` | Returns only `{"channel_url": ...}` for each channel. The section options are ignored. |
| `home` | Adds the Home section: trailer, home page shelves, featured channels. Adds no requests. Off by default. |
| `videos` | Adds the Videos section: recent, popular and oldest videos plus content metrics. Off by default. |
| `shorts` | Adds the Shorts section: recent and popular Shorts. Off by default. |
| `live` | Adds the Live section: current, upcoming and past streams. Off by default. |
| `playlists` | Adds the Playlists section, plus podcasts, releases and courses when the channel has them. Off by default. |
| `posts` | Adds the Posts section: the latest community posts. Off by default. |

**Example input:**

```json
{
  "keywords": ["interview question and answer", "english movie trailer"],
  "contentType": "both",
  "maxchannels": 10,
  "maxSearchPages": 30,
  "minViews": 10000,
  "newerThan": "2026-01-01",
  "startUrls": [{ "url": "https://www.youtube.com/@KVNPRODUCTIONSOFFICIAL" }],
  "usernames": ["@MrBeast"],
  "channelUrlsOnly": false,
  "home": false,
  "videos": true,
  "shorts": false,
  "live": false,
  "playlists": false,
  "posts": true
}
```

### 📤 Output

YouTube Channel Scraper From Search Video writes one item per YouTube channel to the default dataset. With **Only collect channel URLs**, each YouTube Channel Scraper From Search Video item looks like this:

```json
{ "channel_url": "https://www.youtube.com/@dailytechbites" }
```

Otherwise each item holds the channel data in sections. These core sections are always returned:

| Section | Contents |
|---|---|
| `channelIdentity`, `channelUrls`, `channelImages` | Name, creation date, URLs, avatar and banner |
| `channelStatisticsExtended` | Subscribers, views and video count |
| `contactInfo`, `linksDetailed`, `socialHandles`, `socialProfiles` | Public contacts, links and socials |
| `channelTopics`, `descriptionAnalysis`, `seoMetadata` | Tags, title keywords and page metadata |

These sections are returned only when the matching option is on:

| Option | Sections added |
|---|---|
| `home` | `channelTrailer`, `channelHomeSections`, `featuredChannels` |
| `videos` | `recentVideos`, `popularVideos`, `contentMetrics`, `highlightedVideos` |
| `shorts` | `recentShorts`, `popularShorts`, `highlightedVideos` |
| `live` | `liveStreams`, `highlightedVideos` |
| `playlists` | `playlists`, `podcasts`, `musicReleases`, `courses` |
| `posts` | `posts` |

Lists hold up to 10 items. `channelStatus.isLiveNow` is only returned when it is known: a live stream was seen, or the `live` option is on.

**Example output (⚠️ shortened):**

- ✅ Note: RUN THE ACTOR AND GET FULL DATA

```json
{
  "channelIdentity": { "localizedChannelName": "Daily Tech Bites", "channelCreatedAt": "2019-03-14", "channelAgeDays": 2781 },
  "channelUrls": {
    "channelUrlByHandle": "https://www.youtube.com/@dailytechbites",
    "channelUrlById": "https://www.youtube.com/channel/UCaB3dE5fG7hI9jK1lM3nO5p"
  },
  "channelStatisticsExtended": {
    "subscriberCountText": "482K subscribers",
    "viewCountText": "91,234,567 views",
    "videoCountText": "412 videos",
    "channelTotalVideosNumeric": 412
  },
  "channelLocationDetails": { "countryCode": "US", "countryName": "United States" },
  "channelTopics": { "primaryCategory": "Science & Technology", "topHashtags": ["#tech", "#shorts"] },
  "contactInfo": {
    "hasBusinessEmailButton": true,
    "emailRequiresSignIn": true,
    "emailsFromDescription": ["business@dailytechbites.example"]
  },
  "linksDetailed": { "totalLinkCount": 3, "primaryWebsiteUrl": "https://dailytechbites.example" },
  "socialHandles": { "instagram": "dailytechbites", "tiktok": "dailytechbites" },
  "contentMetrics": { "sampleSize": 10, "averageViews": 184200, "medianViews": 151000, "maxViews": 402300, "uploadsPerWeek": 2.4, "daysSinceLastUpload": 2 },
  "recentVideos": [
    { "videoId": "aBcD1eFgH2i", "title": "5 phone tricks you didn't know", "viewCount": 215400, "publishedAt": "2026-10-22T15:00:00Z" }
  ],
  "posts": [
    { "postId": "UgkxExamplePostId", "text": "New video tomorrow!", "likeCount": 1200, "publishedText": "2 days ago", "attachmentType": "image" }
  ]
}
```

Subscriber counts are rounded to three significant figures by YouTube. `contentMetrics`, `recentVideos`, `recentShorts`, `liveStreams` and the other optional sections are missing from the item unless their option is on. The example above shows a run with `videos` and `posts` switched on.

> **🔒 About contact data**
>
> YouTube Channel Scraper From Search Video reports only what channel owners publish publicly. YouTube hides the business email behind a sign-in, so you get a flag showing whether that button exists. Follow privacy laws when you use contact data.

### 💰 Pricing

> **💳 How billing works**
>
> - YouTube Channel Scraper From Search Video is billed per result: every channel delivered to the dataset is one result.
> - The current rate is shown on the Actor's **Pricing** tab on Apify Store.
> - Set a maximum cost per run. The Actor stops adding results once that limit is reached.

Channels that fail to load from YouTube are not delivered, so they are not billed. Start with a small run to see what YouTube Channel Scraper From Search Video returns.

### 💡 Tips and Good Practices

- Leave the section options off for large runs. The core channel details need only 2 requests per channel, while every section you switch on adds more: **Videos** and **Shorts** add the most (roughly 25 requests each), **Posts** adds one and **Home** none.
- Switch on only the sections you will use. With all six on, a channel takes about 50 seconds.
- Use **Only collect channel URLs** in YouTube Channel Scraper From Search Video to build a channel list quickly, then enrich only the channels you need.
- YouTube search results change between runs, countries and over time, so counts can differ.
- Use specific keywords to keep the YouTube channels relevant.
- View counts and ages are read as English text, and the Actor asks YouTube for English pages.

### 🙋 Frequently Asked Questions

#### 🔸 What data does YouTube Channel Scraper From Search Video extract for each channel?

Each YouTube Channel Scraper From Search Video item has identity, URLs, images, statistics, links, social handles, contact details, topics and page metadata. The Home, Videos, Shorts, Live, Playlists and Posts sections, including content metrics, are added only when you switch them on.

#### 🔸 How do I find YouTube channels by keyword with YouTube Channel Scraper From Search Video?

Add your keywords, pick a content type and set **Max channels per keyword**. The Actor collects the channels behind the matching YouTube videos or Shorts.

#### 🔸 Can YouTube Channel Scraper From Search Video return only channel URLs?

Yes. Turn on **Only collect channel URLs** to get one `channel_url` item per YouTube channel. It is a quick, low-cost mode for building lists.

#### 🔸 Can YouTube Channel Scraper From Search Video scrape channels I already know?

Yes. Add YouTube channel URLs, handles or IDs. They can be used alone or together with keywords, and duplicates are removed.

#### 🔸 Does YouTube Channel Scraper From Search Video return emails and phone numbers?

It returns emails and phone numbers that appear in the channel description, plus a flag for the business email button. It cannot reveal emails that YouTube hides behind a sign-in.

#### 🔸 Why did YouTube Channel Scraper From Search Video return fewer channels than my limit?

YouTube stops returning results after a limited number of pages, Shorts appear only in the first pages, and filters skip items. Raise **Max search result pages** or relax the filters.

#### 🔸 Do I need a YouTube API key or login for YouTube Channel Scraper From Search Video?

No. YouTube Channel Scraper From Search Video works without a YouTube account, cookies or API key.

#### 🔸 How long does YouTube Channel Scraper From Search Video take?

The core channel details take only a few seconds per channel. Each section you switch on adds time, and all six together take about 50 seconds per channel.

### 📬 Support

- Found a bug or need a feature in YouTube Channel Scraper From Search Video? Open an issue from the Actor page on Apify.
- Share a sample input with your question so the problem can be reproduced quickly.
- Contact me by email: alphascraper69@gmail.com

# Actor input Schema

## `keywords` (type: `array`):

Keywords to search on YouTube, one search per keyword, typed the way you would type them into the YouTube search bar. Example: "interview questions and answers" or "maruti suzuki". Leave empty if you only want to scrape the channels listed in the section below.

## `contentType` (type: `string`):

Which kind of search results the channels are discovered from.
• Videos: only the channels of the regular videos in the search results.
• Shorts: only the channels of the YouTube Shorts in the search results. YouTube mixes Shorts into just the first several result pages, so this usually returns fewer channels than the other options (in tests, roughly 60 to 90 for a broad keyword).
• Both: the channels of videos and Shorts together, in the order they appear in the results. A channel that has both is listed once, at its first appearance.
The minimum views and publication date filters below apply to the content type you choose.

## `maxchannels` (type: `integer`):

Maximum number of unique channels to collect for each keyword. The Actor stops loading search results as soon as this many different channels have been found. YouTube stops returning results after a limited number of pages (a test search ended at about 180 channels), so very high values simply mean "as many as YouTube returns". Keep this low for a quick first run: every optional channel section you switch on adds requests for each channel.

## `maxSearchPages` (type: `integer`):

Safety limit on how many pages of search results ("load more" requests) are loaded for each keyword. Loading also stops earlier when enough channels were found, when YouTube returns no further page, or when several pages in a row add no new channel.

## `minViews` (type: `integer`):

Only use videos or Shorts with at least this many views to discover channels. Anything below the threshold is skipped, so its channel is not added (unless another video or Short of that channel passes). Skipped items do not count towards "Max channels per keyword". Videos show their exact view count in the search results, Shorts only a rounded one (for example "1.3K views"), so for Shorts the comparison is approximate. Leave empty for no minimum.

## `newerThan` (type: `string`):

Only use videos or Shorts published on or after this date to discover channels. Pick a date (YYYY-MM-DD) or type an age such as "2 weeks" (meaning 2 weeks ago). Leave empty for no start date.

## `olderThan` (type: `string`):

Only use videos or Shorts published before this date to discover channels. Pick a date (YYYY-MM-DD) or type an age such as "1 month" (meaning 1 month ago). Combine it with "Published after" to get a date range. Leave empty for no end date.

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

YouTube channels to scrape directly, in addition to the channels found by search. Use the channel's main page, for example:
• https://www.youtube.com/@Handle
• https://www.youtube.com/channel/UCxxxxxxxxxxxxxxxxxxxxxx
• https://www.youtube.com/user/LegacyName

Avoid tab URLs such as /videos or /posts: the channel's home page is then not read and the result is incomplete. Legacy /c/Name URLs only work where YouTube still serves them.

## `usernames` (type: `array`):

Channel handles, with or without the @. Example: "MrBeast" or "@MrBeast". Each one is opened as https://www.youtube.com/@Handle.

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

Channel IDs, 24 characters starting with UC. Example: UCX6OQ3DkcsbYNE6H8uQQuVA. Each one is opened as https://www.youtube.com/channel/ID.

## `channelUrlsOnly` (type: `boolean`):

Skip the channel data extraction and return only the channel URLs found by the search, one item per channel in the form {"channel_url": "https://www.youtube.com/@Handle"}. This is the fastest and cheapest mode and is handy for building channel lists. When enabled, the channel section options below are ignored.

## `home` (type: `boolean`):

Add the channel's Home tab: the channel trailer, the shelves shown on the home page (title, type and items) and the featured channels. It is read from the channel page that is loaded anyway, so it adds no extra requests.

## `videos` (type: `boolean`):

Add the Videos tab: the 10 latest videos in detail (exact views, likes, comments, dates, tags, description), the most popular and the oldest video, and content metrics such as average views, engagement and uploads per week. Adds roughly 25 requests per channel, the most of any section.

## `shorts` (type: `boolean`):

Add the Shorts tab: the 10 latest Shorts in detail (exact views, likes, comments, dates) and the most popular Shorts. Adds roughly 22 requests per channel.

## `live` (type: `boolean`):

Add the Live tab: the stream that is live now, upcoming streams and the latest past streams, with start times and views. Adds up to about 15 requests per channel; a channel without a Live tab adds none.

## `playlists` (type: `boolean`):

Add the Playlists tab: up to 10 playlists in detail (video count, views, privacy, last update). Channels that also have a Podcasts, Releases or Courses tab get those lists too. Adds up to about 13 requests per channel.

## `posts` (type: `boolean`):

Add the Posts tab (community posts): the 10 latest posts with their text, links, likes, comments, images and polls. Adds one request per channel.

## Actor input object example

```json
{
  "keywords": [
    "interview question and answer",
    "english movie trailer"
  ],
  "contentType": "both",
  "maxchannels": 10,
  "maxSearchPages": 30,
  "channelUrlsOnly": false,
  "home": false,
  "videos": false,
  "shorts": false,
  "live": false,
  "playlists": false,
  "posts": false
}
```

# Actor output Schema

## `dataset` (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 = {
    "keywords": [
        "interview question and answer",
        "english movie trailer"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("alpha-scraper/youtube-channel-scraper-from-search-video").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 = { "keywords": [
        "interview question and answer",
        "english movie trailer",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("alpha-scraper/youtube-channel-scraper-from-search-video").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 '{
  "keywords": [
    "interview question and answer",
    "english movie trailer"
  ]
}' |
apify call alpha-scraper/youtube-channel-scraper-from-search-video --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,alpha-scraper/youtube-channel-scraper-from-search-video"
        }
    }
}
```

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/qii9umIixdgdJRRHg/builds/glVeInLzMw2nlmvOS/openapi.json
