YouTube Channel Scraper (videos, shorts, live) avatar

YouTube Channel Scraper (videos, shorts, live)

Pricing

from $0.30 / 1,000 videos

Go to Apify Store
YouTube Channel Scraper (videos, shorts, live)

YouTube Channel Scraper (videos, shorts, live)

YouTube Channel Scraper extracts videos, Shorts or livestreams from any YouTube channel — title, views, duration, publish time and thumbnail — no API key or quota needed.

Pricing

from $0.30 / 1,000 videos

Rating

0.0

(0)

Developer

Murat Uzun

Murat Uzun

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

2 days ago

Last modified

Share

What is YouTube Channel Scraper?

YouTube Channel Scraper is an Apify Actor that reads any YouTube channel's Videos, Shorts or Live tab and returns one clean row per video — title, view count, publish time, duration and thumbnail — straight from YouTube's own internal /youtubei/v1/browse endpoint. No YouTube Data API key, no daily quota, no browser. Give it a channel ID, an @handle, or a channel//c///user/ URL and it resolves, pages and normalizes the rest. Run it once, on a schedule to track new uploads, or from an AI agent through the Apify MCP server.

Pricing: YouTube Channel Scraper (videos, shorts, live) costs $0.50 per 1,000 results (pay per result, no subscription; Apify's free plan credit covers small runs).

For comparison, the most-used Actor for this search on Apify Store, streamers/youtube-channel-scraper, lists $1.30 per 1,000 — about 3× cheaper here (Store prices checked 2026-10-01).

What data does YouTube Channel Scraper extract?

YouTube Channel Scraper extracts 20 fields per video:

FieldTypeDescription
channelId, channelName, channelUrlstringThe channel that owns the video
subscriberCountText, subscriberCountstring, numberSubscriber count as shown ("517M subscribers") and parsed
videoId, url, title, typestringVideo ID, watch/shorts URL, title, and video/short/stream
viewCountText, viewCountstring, numberView count as shown ("85M views") and parsed
publishedTimeText, publishedAtApproxstringRelative publish time ("7 days ago") and an approximate ISO 8601 date
durationText, durationSecondsstring, numberDuration badge ("23:28") and parsed seconds
thumbnailUrlstringLargest available thumbnail image
descriptionSnippetstringShort description preview, when the tab includes one
isLivebooleanWhether the video/stream is broadcasting live right now
query, error, scrapedAtstringInput value that produced the row, error note if it failed, scrape timestamp

How to use YouTube Channel Scraper

  1. Paste channels into Channels: an @handle, a channel ID (UCX6OQ3DkcsbYNE6H8uQQuVA), or a full URL all work.
  2. Pick a Tab — Videos, Shorts, or Live (past and current livestreams).
  3. Optionally set Sort by to popular to get the channel's highest-viewed videos first.
  4. Set Max videos per channel and click Start, then export as JSON, CSV, Excel or HTML.

Example input

{
"channels": ["@MrBeast", "@mkbhd"],
"tab": "videos",
"sortBy": "newest",
"maxVideosPerChannel": 100,
"maxConcurrency": 3
}

Example output

{
"channelId": "UCX6OQ3DkcsbYNE6H8uQQuVA",
"channelName": "MrBeast",
"channelUrl": "https://www.youtube.com/channel/UCX6OQ3DkcsbYNE6H8uQQuVA",
"subscriberCountText": "517M subscribers",
"subscriberCount": 517000000,
"videoId": "gTKS8SAwUzE",
"url": "https://www.youtube.com/watch?v=gTKS8SAwUzE",
"title": "I Survived The Most Extreme Places On Earth",
"type": "video",
"viewCountText": "85M views",
"viewCount": 85000000,
"publishedTimeText": "7 days ago",
"publishedAtApprox": "2026-09-06T00:00:00.000Z",
"durationText": "23:28",
"durationSeconds": 1408,
"thumbnailUrl": "https://i.ytimg.com/vi/gTKS8SAwUzE/hq720_custom_2.jpg",
"isLive": false,
"query": "@MrBeast",
"error": null,
"scrapedAt": "2026-09-13T01:00:00.000Z"
}

Input parameters

ParameterTypeDefaultDescription
channelsarray["@apify"]Channel IDs, handles or URLs, one video per row per channel
proxyModestring"auto"auto, always or never, see Proxy requirement below
proxyConfigurationobjectResidential proxyWhich proxy group to use when proxyMode needs one
tabstring"videos"videos, shorts or streams (the channel's Live tab)
sortBystring"newest"newest or popular (best-effort; falls back to newest)
maxVideosPerChannelinteger100Cap per channel (1-5000)
maxConcurrencyinteger3Channels scraped in parallel (1-10)

Proxy requirement

Passing a channel ID (UC...) needs no extra request at all. Passing a handle (@apify) or a legacy /c///user/ URL costs one extra request to read that channel's page and pull its UC... ID out of the HTML — and that specific request can get YouTube's "Sign in to confirm you're not a bot" page (or Google's "unusual traffic" captcha wall) when it comes from an Apify platform (datacenter) IP. The Proxy mode input controls the response: Auto (default) tries that request directly first — $0 proxy cost — and only switches to Apify Proxy (see Proxy configuration) for the rest of the run if it gets blocked; Always skips straight to the proxy; Never always stays direct. The channel's /browse data itself is never proxied (no report of it being blocked).

Pricing

YouTube Channel Scraper uses pay-per-event pricing: $0.001 per video row, i.e. $1 per 1,000 videos, plus a small actor-start fee. A 100-video channel costs a fraction of a cent in compute — most of the run is one or two HTTP requests. Set Maximum cost per run and the Actor trims the list to what the budget covers instead of overspending.

Apify Proxy adds a small infrastructure cost on top of that when a handle needs resolving (see Proxy requirement above), paid from your Apify plan's proxy allowance. With the default Auto proxy mode, that cost is $0 whenever direct resolution isn't currently blocked. Measured live with proxyMode: "always" (proxy forced on a 20-video run, one handle resolution amortized over 20 rows): proxy data transfer cost ~$0.00006 per video row — a small fraction of the per-row price, well inside the free plan's Residential allowance.

YouTube Channel Scraper vs. the YouTube Data API

The official YouTube Data API caps most projects at 10,000 quota units/day — a single search.list call for a channel's uploads costs 100 units, so a handful of channels can burn the daily quota. YouTube Channel Scraper reads the same public page data the browser loads, with no key, no quota, and no per-project setup — paste a channel and go.

Using YouTube Channel Scraper with AI agents and MCP

YouTube Channel Scraper is pay-per-event with limited permissions — the two requirements for an Actor to be callable through the Apify MCP server at mcp.apify.com. An agent passes channels and tab and gets back one structured row per video, ready for a content-monitoring or competitor-research step. The same run works from n8n, Make, Zapier and LangChain through Apify's integrations.

FAQ

Why is descriptionSnippet always null? YouTube's current channel-grid response (the "lockup" card format) does not send a description preview for grid items, unlike the older per-video card. It is kept as a field for forward compatibility if YouTube adds it back.

How is publishedAtApprox calculated? YouTube only ever sends a relative label ("7 days ago"), never an absolute date, on this page. The Actor subtracts that duration from the scrape time — treat it as approximate, not exact.

What happens if a channel has no Shorts or Live tab? That channel returns a single row with error explaining the tab was not found, instead of failing the whole run.

Is this legal to run? Yes. The Actor reads the same public channel pages a logged-out visitor's browser loads, and does not require or bypass any login.

Can I export to CSV or Excel? Yes, from the Output tab or the API, with a ready-made Overview view.

Part of the webdatatools web-intelligence suite — every Actor is pay-per-event, reads public data without a login, and returns one clean row per entity:

Browse the whole suite at webdatatools, or call ten of these Actors straight from Claude, Cursor or Cline with the webdatatools MCP server.

Website & domain intelligence

Content for AI, LLMs and RAG

Search, video and social

Leads, jobs and company data

Developer, app and research data

Support and feedback

Found a channel layout this Actor doesn't handle, or a parsing bug? Open an issue on the Issues tab.