YouTube Channel Scraper avatar

YouTube Channel Scraper

Pricing

from $6.00 / 1,000 channel profiles

Go to Apify Store
YouTube Channel Scraper

YouTube Channel Scraper

Scrape public YouTube channel profiles and recent video listings by URL, channel ID, or @handle. Returns subscribers, views, links, country, tags, and videos. No cookies required. MCP-ready.

Pricing

from $6.00 / 1,000 channel profiles

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

1

Bookmarked

9

Total users

6

Monthly active users

2 days ago

Last modified

Share

YouTube Channel Scraper - Profiles and Videos

Use this Apify Actor to scrape public YouTube channel profiles and recent video listings from a known channel URL, channel ID, or @handle. It returns one dataset record per channel with profile metadata, links, counts, tags, country, and a capped list of recent videos. The Actor is usable through Apify MCP for structured channel retrieval from verified public input.

Best fit and connected workflows

This Actor fits workflows where the channel is already known and the next step is profile enrichment or recent-video review.

Common routing patterns:

  • Creator due diligence and channel research from a verified URL or @handle.
  • Competitor channel monitoring with repeatable snapshots.
  • CRM or media database enrichment with public channel metadata.
  • Agent workflows that start with discovery in YouTube Search Scraper - Videos, Channels & Playlists and then pass the verified public channel URL or ID into this Actor for detail extraction.
  • Downstream analysis of recent videos, such as editorial review, summarization, or ranking in a separate workflow.

For discovery by keyword, start with the search Actor above. For a known channel, this Actor returns the profile and recent listings in one record.

Practical scenario

Mina, a creator partnerships specialist, receives a spreadsheet with a channel URL, https://www.youtube.com/@Apify. She runs this Actor with that URL and maxVideosPerChannel set to 5. The returned record includes channelName, subscriberCountText, videoCountText, externalLinks, and recentVideos. Mina reviews the channel description and recent uploads, then uses the external link and recent video titles to decide whether the channel fits a campaign brief and what follow-up question to send next.

Input

Input fields

FieldTypePurpose
channelUrlsarray of stringsKnown channel URLs, @handles, /channel/ IDs, or bare handles such as @Apify.
maxVideosPerChannelintegerNumber of recent regular videos to include for each channel. Use 0 for profile-only output.
includeShortsbooleanAdds Shorts to the recent listings when enabled.
maxShortsPerChannelintegerCaps Shorts per channel when Shorts are enabled.
sortVideosBystringOrders recent videos by latest or popular.
providerModestringSelects the managed provider path: auto, direct, or providerOnly.
countrystringTwo-letter country code used to localize YouTube responses.
languagestringLanguage code used to localize returned YouTube labels.

Valid input example

{
"channelUrls": [
"https://www.youtube.com/@Apify",
"@MrBeast"
],
"maxVideosPerChannel": 5,
"includeShorts": false,
"maxShortsPerChannel": 0,
"sortVideosBy": "latest",
"providerMode": "auto",
"country": "US",
"language": "en"
}

Input notes

  • channelUrls accepts full YouTube channel URLs, @handles, canonical /channel/UC... IDs, and bare handles.
  • maxVideosPerChannel applies separately to each channel record.
  • includeShorts and maxShortsPerChannel add Shorts when the short-form catalog matters for the workflow.
  • providerMode: "auto" uses the managed provider path when the owner secret is configured, then falls back to direct YouTube extraction.
  • country and language localize YouTube labels and response text.

Output

The dataset returns one record per channel. The type field is always channel, which helps downstream agents route records safely.

Output fields

FieldTypePurpose
typestringRecord type, always channel.
sourcestringExtraction path used: youtube, scrapecreators, or sociavault.
inputstringOriginal input value supplied for the channel.
channelIdstring or nullCanonical YouTube channel ID when available.
handlestring or nullPublic @handle when available.
channelNamestring or nullDisplay name of the channel.
channelUrlstring or nullCanonical YouTube channel URL.
handleUrlstring or nullHandle-based channel URL when available.
descriptionstring or nullPublic channel description text.
subscriberCountinteger or nullNumeric subscriber count when available.
subscriberCountTextstring or nullHuman-readable subscriber count.
videoCountinteger or nullNumeric total channel video count when available.
videoCountTextstring or nullHuman-readable total video count.
viewCountinteger or nullNumeric total channel views when exposed.
viewCountTextstring or nullHuman-readable total view count.
joinedDateTextstring or nullChannel creation text when exposed.
countrystring or nullPublic country listed on the channel when exposed.
avatarUrlstring or nullavailable channel avatar image URL.
bannerUrlstring or nullavailable channel banner image URL.
rssUrlstring or nullYouTube RSS feed URL for the channel.
keywordsarray of stringsPublic keywords or tags exposed by YouTube.
externalLinksarray of stringsPublic websites and social links.
publicEmailstring or nullPublic business email when exposed by the selected path.
recentVideosarrayRecent regular videos and optional Shorts.
videoCountReturnedintegerNumber of recent video objects included in the record.
warningsarray of stringsNon-fatal extraction warnings for the channel.
scrapedAtstringISO 8601 timestamp when the record was produced.

Illustrative output record

{
"type": "channel",
"source": "youtube",
"input": "https://www.youtube.com/@Apify",
"channelId": "UCTgwcoeGGKmZ3zzCXN2qo_A",
"handle": "@Apify",
"channelName": "Apify",
"channelUrl": "https://www.youtube.com/channel/UCTgwcoeGGKmZ3zzCXN2qo_A",
"handleUrl": "https://www.youtube.com/@Apify",
"description": "Welcome to Apify's YouTube channel.",
"subscriberCount": 14000,
"subscriberCountText": "14K subscribers",
"videoCount": 248,
"videoCountText": "248 videos",
"viewCount": null,
"viewCountText": null,
"joinedDateText": null,
"country": null,
"avatarUrl": "https://yt3.googleusercontent.com/example=s900-c-k-c0x00ffffff-no-rj",
"bannerUrl": null,
"rssUrl": "https://www.youtube.com/feeds/videos.xml?channel_id=UCTgwcoeGGKmZ3zzCXN2qo_A",
"keywords": ["web scraping", "automation"],
"externalLinks": ["https://apify.com/"],
"publicEmail": null,
"recentVideos": [
{
"kind": "video",
"videoId": "qMquIcJWZag",
"url": "https://www.youtube.com/watch?v=qMquIcJWZag",
"title": "Apify product demo",
"thumbnailUrl": "https://i.ytimg.com/vi/qMquIcJWZag/hqdefault.jpg",
"viewCount": 8271789,
"viewCountText": "8.2M views",
"publishedTimeText": "1 year ago",
"durationText": "8:31",
"durationSeconds": 511
}
],
"videoCountReturned": 1,
"warnings": [],
"scrapedAt": "2026-06-12T08:00:00.000Z"
}

How it works

This Actor accepts one or more known YouTube channel references and returns one dataset item per channel. The implementation supports:

  • direct YouTube extraction,
  • managed provider paths through ScrapeCreators or SociaVault when the relevant owner secret is configured,
  • profile metadata plus a capped list of recent videos,
  • optional Shorts collection,
  • run summary output in key-value storage for automation and agent workflows.

The input fields control channel scope, number of videos per channel, Shorts collection, sort order, and localization.

Pricing

This Actor uses Pay Per Event pricing plus Apify platform usage. Open the live Pricing tab in Apify Console for the current active rates.

Billing events include:

  • Actor start, charged once per run and scaled by RAM.
  • Channel profile, charged for each channel profile returned.
  • Channel video, charged for each recent video or Short listed inside a channel result.

Example in words: if a run returns ten channel profiles and each channel includes five recent videos, the billable events include ten channel profiles and fifty channel videos, plus one actor start event.

Use with AI agents (MCP)

This Actor is usable through Apify MCP as a tool for structured YouTube channel retrieval. It fits agents that already have a channel reference and want a compact record with profile metadata and recent activity.

Tool description: Fetch public YouTube channel profile data and capped recent video listings for a known channel URL, channel ID, or @handle. Returns one channel record per input channel, including counts, links, provenance, and recent videos.

Actor identity: khadinakbar/youtube-channel-scraper

Inspect this YouTube channel and return the profile record plus the latest 5 videos. Use the channelUrls input with the verified public channel URL, then read the dataset item for channelName, subscriberCountText, externalLinks, and recentVideos.

Output interpretation:

  • type: "channel" marks a channel-level record.
  • source shows whether the record came from direct YouTube, ScrapeCreators, or SociaVault.
  • recentVideos includes one object per returned video or Short.
  • videoCountReturned tells you how many recent video objects were included for that channel.
  • scrapedAt is the record timestamp for traceability.

Scope and pagination guidance:

  • This Actor is scoped to known channels, so it pairs naturally with discovery workflows upstream.
  • Use maxVideosPerChannel to control the number of returned videos for each channel.
  • Use includeShorts and maxShortsPerChannel when short-form listings matter for the agent task.
  • For agent calls, small values keep the record compact and easier to process.

Cost guidance:

  • Channel profile records and each returned video or Short are billed as separate events.
  • Smaller maxVideosPerChannel values reduce the number of billed video events.
  • Profile-only runs use maxVideosPerChannel: 0.

Apify API example

import { ApifyClient } from "apify-client";
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const input = {
channelUrls: ["https://www.youtube.com/@Apify"],
maxVideosPerChannel: 5,
includeShorts: false,
providerMode: "auto",
country: "US",
language: "en",
};
const run = await client.actor("khadinakbar/youtube-channel-scraper").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log("Dataset items:");
console.log(items);

Best results and outcome guidance

Start with a verified channel URL, handle, or channel ID. When the goal is profile enrichment, set maxVideosPerChannel to 0 and keep the record focused on channel metadata. When the goal includes content review, use a small video cap first, then increase it for deeper audits. If Shorts are part of the workflow, enable includeShorts and set a modest maxShortsPerChannel value.

For agent workflows, the most useful pattern is:

  1. discover a channel upstream,
  2. pass the verified public channel reference into this Actor,
  3. read the dataset item,
  4. use recentVideos, externalLinks, and keywords to guide the next action.

Continue the workflow

Design note

I found that the dataset contract always routes one channel record per input channel, and the type field is fixed to channel, which makes downstream handling straightforward for agents and integrations.

FAQ

When should I use this Actor instead of a search Actor?

Use this Actor when you already know the channel you want to inspect. For keyword discovery or broad channel finding, start with YouTube Search Scraper - Videos, Channels & Playlists.

How many channels can I pass in one run?

You can pass an array of channel references. Each entry produces one dataset record.

How can I get only the channel profile?

Set maxVideosPerChannel to 0. The record will focus on profile metadata and keep recentVideos empty.

How do I include Shorts in the returned record?

Set includeShorts to true and choose a value for maxShortsPerChannel.

Which fields are most useful for routing follow-up workflows?

channelUrl, handle, externalLinks, keywords, and recentVideos are common fields for downstream enrichment, review, or agent chaining.

Responsible use

This Actor extracts public YouTube channel data. Use the results in ways that respect applicable laws, privacy rules, YouTube terms, and your own compliance requirements. Public metadata, links, and recent uploads can support research, enrichment, and agent workflows, while any downstream use should stay aligned with the permissions and expectations associated with the source data.