YouTube Channel Scraper
Pricing
from $6.00 / 1,000 channel profiles
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
Maintained by CommunityActor stats
1
Bookmarked
9
Total users
6
Monthly active users
2 days ago
Last modified
Categories
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
| Field | Type | Purpose |
|---|---|---|
channelUrls | array of strings | Known channel URLs, @handles, /channel/ IDs, or bare handles such as @Apify. |
maxVideosPerChannel | integer | Number of recent regular videos to include for each channel. Use 0 for profile-only output. |
includeShorts | boolean | Adds Shorts to the recent listings when enabled. |
maxShortsPerChannel | integer | Caps Shorts per channel when Shorts are enabled. |
sortVideosBy | string | Orders recent videos by latest or popular. |
providerMode | string | Selects the managed provider path: auto, direct, or providerOnly. |
country | string | Two-letter country code used to localize YouTube responses. |
language | string | Language 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
channelUrlsaccepts full YouTube channel URLs,@handles, canonical/channel/UC...IDs, and bare handles.maxVideosPerChannelapplies separately to each channel record.includeShortsandmaxShortsPerChanneladd 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.countryandlanguagelocalize 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
| Field | Type | Purpose |
|---|---|---|
type | string | Record type, always channel. |
source | string | Extraction path used: youtube, scrapecreators, or sociavault. |
input | string | Original input value supplied for the channel. |
channelId | string or null | Canonical YouTube channel ID when available. |
handle | string or null | Public @handle when available. |
channelName | string or null | Display name of the channel. |
channelUrl | string or null | Canonical YouTube channel URL. |
handleUrl | string or null | Handle-based channel URL when available. |
description | string or null | Public channel description text. |
subscriberCount | integer or null | Numeric subscriber count when available. |
subscriberCountText | string or null | Human-readable subscriber count. |
videoCount | integer or null | Numeric total channel video count when available. |
videoCountText | string or null | Human-readable total video count. |
viewCount | integer or null | Numeric total channel views when exposed. |
viewCountText | string or null | Human-readable total view count. |
joinedDateText | string or null | Channel creation text when exposed. |
country | string or null | Public country listed on the channel when exposed. |
avatarUrl | string or null | available channel avatar image URL. |
bannerUrl | string or null | available channel banner image URL. |
rssUrl | string or null | YouTube RSS feed URL for the channel. |
keywords | array of strings | Public keywords or tags exposed by YouTube. |
externalLinks | array of strings | Public websites and social links. |
publicEmail | string or null | Public business email when exposed by the selected path. |
recentVideos | array | Recent regular videos and optional Shorts. |
videoCountReturned | integer | Number of recent video objects included in the record. |
warnings | array of strings | Non-fatal extraction warnings for the channel. |
scrapedAt | string | ISO 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
channelUrlsinput with the verified public channel URL, then read the dataset item forchannelName,subscriberCountText,externalLinks, andrecentVideos.
Output interpretation:
type: "channel"marks a channel-level record.sourceshows whether the record came from direct YouTube, ScrapeCreators, or SociaVault.recentVideosincludes one object per returned video or Short.videoCountReturnedtells you how many recent video objects were included for that channel.scrapedAtis 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
maxVideosPerChannelto control the number of returned videos for each channel. - Use
includeShortsandmaxShortsPerChannelwhen 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
maxVideosPerChannelvalues 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:
- discover a channel upstream,
- pass the verified public channel reference into this Actor,
- read the dataset item,
- use
recentVideos,externalLinks, andkeywordsto guide the next action.
Continue the workflow
- Then use YouTube Channel Video Scraper — Metrics & Shorts to extend YouTube Channel Scraper - Profiles and Videos research with a complementary enrichment contract.
- Then use 🎯 Extract YouTube Comments & Replies — No API Key to add Youtube engagement evidence to records selected with YouTube Channel Scraper - Profiles and Videos.
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.