🔥Fast Youtube Channel Scraper avatar

🔥Fast Youtube Channel Scraper

Pricing

from $0.75 / 1,000 results

Go to Apify Store
🔥Fast Youtube Channel Scraper

🔥Fast Youtube Channel Scraper

Extract public channel metadata from YouTube @handles, channel IDs, and channel URLs. Collect descriptions, images, subscriber and video counts, total views, verification, and external links when available.

Pricing

from $0.75 / 1,000 results

Rating

0.0

(0)

Developer

AimScrape

AimScrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

35 minutes ago

Last modified

Categories

Share

What does YouTube Channel Scraper do?

YouTube Channel Scraper extracts public channel metadata from YouTube @handles, channel IDs, and channel URLs. Collect channel names, descriptions, images, subscriber counts, video counts, total views, verification status, and public external links when available. Results are stored in a structured dataset for export or access through the Apify API.

The Actor collects publicly available YouTube channel data.

How to scrape YouTube channels

  1. Open Input and add targets to YouTube handles, channel IDs, or channel URLs.
  2. Start with a few channels to check the data available for your use case.
  3. Follow progress in the run log and open Channels in the Output tab.
  4. Download results as JSON, CSV, Excel, or another format supported by Apify.

Use the Actor's API tab for programmatic runs and Apify scheduling for recurring collection. Compare separate runs using crawledAt to track changes.

Why use YouTube Channel Scraper?

  • Compare creator channels using public audience size, video counts, and total views.
  • Maintain a channel directory with stable IDs, handles, descriptions, and images.
  • Collect public channel links for research and reporting.

Input

{
"channels": [
"https://www.youtube.com/@YouTube",
"UC_x5XG1OV2P6uZZ5FSM9Ttw"
]
}

channels is required and accepts 1 to 100,000 entries. Supported formats:

FormatExample
@handle@YouTube
Channel IDUCBR8-60-B28hp2BmDPdntcQ
Handle URLhttps://www.youtube.com/@YouTube
Channel-ID URLhttps://www.youtube.com/channel/UCBR8-60-B28hp2BmDPdntcQ

URLs must use HTTPS and www.youtube.com. A trailing slash is allowed. International handles and percent-encoded handle URLs are supported. Remove surrounding spaces, query parameters, and fragments. Video, Shorts, playlist, and youtu.be links are not accepted. Bare usernames and YouTube /c/ or /user/ URLs are not accepted. This Actor does not search by channel title.

The input form requires each entry to have one of the supported shapes above, but deliberately does not restrict the characters after @. The Actor validates each entry before adding it to the queue. Valid entries are collected; invalid handles are stored with status: "invalid_input" without a YouTube request. One invalid handle does not stop other entries. For example, both @hm_son7 and @messibrasilhd_ pass the input form, then runtime validation classifies the latter as invalid_input. Empty strings and unsupported input shapes are rejected by the input form. The list itself must still contain 1 to 100,000 strings.

Handle spelling is normalized to lowercase; channel IDs keep their original case. Repeated syntactic aliases such as @YouTube and its handle URL are processed once. A handle and a channel ID that refer to the same channel remain separate requested targets. Provide one form per channel if you want one row per channel.

When YouTube resolves a requested handle through a different channel address or returns a different canonical handle, the Actor follows that resolution and checks the returned channel ID. username keeps your normalized requested identity; handle and profileUrl reflect the public handle YouTube reports.

Repeated invalid strings are also processed once. Credentials recognized in invalid strings are redacted before output; identical redacted values share one result.

What data can the Actor extract?

Every result has the same fields. Missing optional values are explicit null, and real zero counts are preserved.

FieldsMeaning
status, username, crawledAtResult status, requested identity, and result time. For invalid_input, username retains the submitted string with recognizable credentials redacted.
requestedUrlNormalized requested channel URL, before address resolution; null for invalid_input.
isRedirectedWhether the lookup followed another channel address returned by YouTube; null when unknown.
handleMatchesInputWhether the reported handle matches the requested handle; null for channel-ID inputs or unavailable handles.
id, channelUrl, handleChannel ID, canonical channel-ID URL, and reported public handle.
fullName, titlePublic channel display name. Both fields contain the same value.
profileUrlPublic handle URL, such as https://www.youtube.com/@example_creator; null when unavailable.
description, keywordsPublic description and raw channel keyword string.
avatarUrl, bannerUrl, verifiedPublic images and verification/official artist badge indication.
subscriberCount, videoCount, viewCountPublic subscriber, video, and total channel view counts.
country, joinedDateChannel-reported country label and join date (YYYY-MM-DD).
externalLinksPublic URLs from returned channel About metadata.

Counts expanded from abbreviated values such as 12.5K are estimates (12500), not exact underlying counts. Hidden or absent counts are null. The Actor requests English page data. Optional About fields, including views, country, join date, and links, depend on what YouTube returns in the page. externalLinks: null means links were unavailable; [] means an empty links list was returned. Image URLs may expire. No email-address lookup is performed.

Age-restricted channels may still expose a public display name and avatar. The Actor retains these in fullName, title, and avatarUrl, together with the resolved channel ID when available. username remains the normalized requested identity. Hidden subscriber counts and other unavailable details stay null.

channelUrl uses the stable channel-ID URL for successful results and age-gated channels with a resolved ID. profileUrl uses a reported handle URL, normalized to HTTPS. It is not guessed from the input. Both URL fields are null for invalid_input.

Use requestedUrl alongside profileUrl to compare the requested and reported identities. isRedirected: true means YouTube's JSON response pointed to another channel address during resolution. The final handle can still match the input. handleMatchesInput: false means YouTube resolved the request to a different public handle, even if no address transition occurred. Check the returned id, handle, and title before treating that result as the channel you intended. Neither field proves that a channel changed its handle.

isRedirected is null when the address transition cannot be determined, including HTTP-error results. handleMatchesInput is null for channel-ID inputs and when no public handle is available. All three resolution fields are null for invalid_input.

Output example

The following is a synthetic example, not a live channel record:

{
"status": "ok",
"id": "UCAAAAAAAAAAAAAAAAAAAAAA",
"username": "example_creator",
"requestedUrl": "https://www.youtube.com/@example_creator",
"isRedirected": false,
"handleMatchesInput": true,
"channelUrl": "https://www.youtube.com/channel/UCAAAAAAAAAAAAAAAAAAAAAA",
"profileUrl": "https://www.youtube.com/@example_creator",
"handle": "@example_creator",
"title": "Example Creator",
"fullName": "Example Creator",
"description": "Cooking and travel",
"avatarUrl": "https://example.com/avatar.jpg",
"bannerUrl": "https://example.com/banner.jpg",
"verified": false,
"subscriberCount": 12500,
"videoCount": 85,
"viewCount": 450000,
"country": "Singapore",
"joinedDate": "2020-01-15",
"keywords": "cooking travel",
"externalLinks": [
"https://example.com"
],
"crawledAt": "2026-10-28T09:00:00Z"
}

Availability and partial results

StatusMeaning
okYouTube returned public metadata matching the requested channel ID or the channel ID resolved from the requested handle.
not_foundThe channel lookup returned HTTP 404, a JSON error with code 404, or a structured page error explicitly stating that the page/channel is unavailable, does not exist, or the account was terminated. The result does not establish whether a handle can be registered.
restrictedA channel age-gate response or structured page error explicitly reports an age or region restriction. Public basic metadata is retained when supplied.
invalid_inputLocal validation rejected the submitted handle, channel ID, or URL. The target was never queued or scraped.

All four statuses are stored. For not_found, the requested identity, requested URL, and collection time are retained; channel metadata is null. A 404 produces a not_found row immediately without retrying. For restricted, the Actor also retains any available channel ID, display name, avatar, and reported handle or handle URL. Other channel details stay null. For invalid_input, username retains the submitted string with recognizable credentials redacted; channel metadata and both URL fields are null. Blank, malformed, consent, verification, rate-limit, and other inconclusive responses are retried up to 3 times, for at most 4 attempts per target. After retries are exhausted, the target counts as failed in the log and has no dataset row.

YouTube can change public page formats or restrict access by request location. The Actor does not solve challenges, log in, or access restricted content.

How much does it cost to scrape YouTube channels?

Check the Actor's Pricing tab for current rates and review your run limits. On pay-per-event runs, each stored row counts toward dataset-item charges, including not_found, restricted, and invalid_input rows. Invalid inputs require no scraping requests but still produce stored results.

When a result or charge budget is reached, the Actor stops with partial results. Increase the applicable budget and resurrect the same run to continue, keeping the same normalized target set. Targets can be reordered and run memory can change; keep the same invalid input strings as well. Completed results awaiting storage are saved for recovery when cleanup can finish, then replayed before more scraping. Actual dataset records are checked before replay to reconcile uncertain writes.

Stopping and resuming a run

Use a graceful abort when you intend to resume. The Actor stops taking new tasks while already claimed tasks finish their requests and retries. Completed results and task outcomes are confirmed incrementally, and completed results awaiting storage are saved for recovery. Platform termination can interrupt cleanup; unfinished tasks may need another attempt and a forced stop can prevent complete recovery.

To continue an interrupted run, open that run and select Actions > Resurrect. The Actor reconciles the rows already stored in its Dataset with the saved task outcomes before it resumes work.

Do not use Re-run to resume: it starts a separate run.

FAQ

Can I scrape videos or subscriber lists?

This Actor collects channel metadata. videoCount is a count, not a video list.

Why are some fields null or some channels missing?

YouTube may omit public details or return only part of a channel's About metadata. Missing rows indicate requests that exhausted retries; check the failed count and retry logs. Explicit unavailable-channel responses have their own rows.

Can I check handle registration availability?

A not_found result describes the page response. It does not mean YouTube will allow registration of that handle.

Where can I report an issue?

Use the Actor's Issues tab when available. Include the public channel URL, run URL, expected behavior, and how any earlier execution was stopped.

More Actors by AimScrape

Explore other public-data tools from AimScrape:

ActorBest for
Fast YouTube Channel Video Scraper 🚀Exporting public video metadata from a YouTube channel's Videos tab.
Fast TikTok Profile Scraper 🚀Collecting public TikTok profile details, audience counts, likes, and verification.
Fast YouTube Channel ScraperCollecting public YouTube channel metadata, counts, verification, and external links.
Snapchat Profile ScraperCollecting public Snapchat profile metadata, subscriber counts, verification, and Snapcodes.
GitHub Profile ScraperCollecting public GitHub user, organization, and bot profile metadata.

YouTube Channel Scraper is an independent, third-party tool. It is not affiliated with, endorsed by, or sponsored by YouTube or Google.

You are responsible for ensuring that your use of this Actor and the collected data complies with:

  • YouTube's Terms of Service, including any permission required for automated access.
  • Applicable laws and regulations, including privacy, data protection, and intellectual property requirements.

The Actor is designed to collect channel metadata that YouTube returns publicly. It does not log in, access subscriber lists or restricted content, or perform email-address lookup. However, results such as channel names, descriptions, images, keywords, and external links may contain personal data or third-party content. Public availability alone does not establish permission to collect, reuse, or redistribute that data.

Only collect data you are authorized to access, ensure that you have a lawful basis for processing personal data where required, and do not use the results for harassment, spam, or other abusive purposes.