YouTube Channel Scraper avatar

YouTube Channel Scraper

Pricing

from $0.40 / 1,000 videos

Go to Apify Store
YouTube Channel Scraper

YouTube Channel Scraper

Scrape any YouTube channel: subscriber count, channel info, and every video with views, duration, and thumbnails. Optional detailed mode adds upload date, likes, comment counts, tags, category, and full descriptions. Batch multiple channels, no browser. Pay per video.

Pricing

from $0.40 / 1,000 videos

Rating

0.0

(0)

Developer

electra bot

electra bot

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Scrape any YouTube channel — subscriber count, channel info, and every video with views, duration, and thumbnails — as JSON, CSV, or Excel.

Turn on Detailed mode and every video also carries upload date, likes, comment count, tags, category, and the full description.

Paste one channel or many. Up to 1,000 videos per channel. No browser.

Pay per result — you're charged per video delivered. Failed channels cost nothing.


What can I use it for?

  • Competitor & creator analysis — a channel's entire catalogue with view counts, ranked and filterable in seconds.
  • Content research — find what performs: sort by views, spot the outliers, read the tags and categories that work (Detailed mode).
  • Influencer discovery & vetting — subscriber counts, upload cadence, real engagement (likes/comments per video).
  • Trend tracking — snapshot channels over time to watch topics and performance move.
  • AI & LLM datasets — clean, structured video metadata; pair with our transcript actors for full text.

Input

FieldRequiredDescription
Channel URLsOne or more channels: @handle, /channel/UC…, /c/…, /user/…. Each video is one result.
Max videos per channel1–1,000 (default 50). Newest first.
Which videosvideos (default), shorts, or streams.
Detailed modeOff (fast): title, views, duration, thumbnail — the whole channel in one request. On: additionally fetches upload date, likes, comment count, tags, category, and full description per video (~2s/video).
Proxy configurationAutomatic by default: datacenter proxy first, escalating to RESIDENTIAL only if YouTube blocks it.

Output

One record per video. Channel fields are attached to every record, so a single export is self-contained:

{
"videoId": "eWKY0OnPByg",
"videoUrl": "https://www.youtube.com/watch?v=eWKY0OnPByg",
"title": "Apple Lost the AI Race",
"viewCount": 1727074,
"durationSeconds": 423,
"thumbnailUrl": "https://i.ytimg.com/vi/eWKY0OnPByg/hqdefault.jpg",
"isLive": false,
"uploadDate": "2026-07-08",
"likeCount": 80760,
"commentCount": 5800,
"tags": ["Apple", "AI race", "new siri", "MKBHD"],
"category": "Science & Technology",
"description": "Apple lost the AI race. Actually, Apple won the AI race...",
"channelName": "Marques Brownlee",
"channelId": "UCBJycsmduvYEL83R_U4JriQ",
"channelUrl": "https://www.youtube.com/channel/UCBJycsmduvYEL83R_U4JriQ",
"subscriberCount": 21100000
}

The five fields in the middle block (uploadDatedescription) are filled in Detailed mode; in fast mode they are null — the dataset shape never changes, so your downstream code doesn't care which mode you ran.


Why this scraper is reliable

  • Reads YouTube directly — not a third-party analytics site that can vanish or block you. Built on an extraction engine whose maintainers track YouTube's changes daily.
  • No browser — fast cold starts, low cost, fewer moving parts to break.
  • Block-aware with automatic escalation — if YouTube blocks the cheap proxy tier, the scraper retries through a residential proxy, then a fresh IP, before giving up.
  • Honest run statuses — a channel that can't be resolved is reported in the SUMMARY and never charged; a run with zero videos is Failed, never a silent empty dataset. Videos whose detail fetch fails are still delivered with their basic fields rather than dropped.
  • Batch-safe — videos are saved incrementally and runs are checkpointed: an interruption never loses finished work or double-charges you.

Tips & limits

  • Fast vs Detailed: fast mode pulls an entire channel in one request — use it when you need the catalogue and view counts. Detailed mode costs ~2s per video but gives you upload dates, likes, tags, and descriptions that fast mode can't see.
  • Newest videos come first; set Max videos to what you actually need.
  • Members-only and private videos aren't listed publicly and so aren't returned.

Use it from code

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("electrabot.info/youtube-channel-scraper").call(
run_input={"channelUrls": ["https://www.youtube.com/@mkbhd"],
"maxVideos": 100, "detailed": True}
)
for v in client.dataset(run["defaultDatasetId"]).iterate_items():
print(v["uploadDate"], f"{v['viewCount']:>10,}", v["title"])

The rest of the family

FAQ

Does it get Shorts? Yes — set Which videos to shorts (or streams for live streams).

Why is likeCount null? You ran in fast mode. Turn on Detailed mode to fetch likes, comment counts, upload dates, tags, and descriptions.

How current are view counts? They're read live from YouTube at run time.

Is this legal? This actor accesses only publicly available channel and video data. You are responsible for complying with applicable laws and YouTube's Terms of Service.


Disclaimer

This is an unofficial tool. It is not affiliated with, endorsed by, sponsored by, or in any way officially connected to YouTube or Google LLC. "YouTube" and all related names, marks, and logos are trademarks of their respective owners and are used here for descriptive purposes only.

This actor only accesses publicly available information. You are responsible for ensuring your use complies with applicable laws, YouTube's Terms of Service, and any applicable rate-limiting rules. Use it ethically and at your own risk.