YouTube Channel Scraper 📺 (all videos, stats, new uploads) avatar

YouTube Channel Scraper 📺 (all videos, stats, new uploads)

Pricing

from $0.35 / 1,000 videos

Go to Apify Store
YouTube Channel Scraper 📺 (all videos, stats, new uploads)

YouTube Channel Scraper 📺 (all videos, stats, new uploads)

Every video a YouTube channel has published, in one table: title, views, publish date, duration, Shorts and live streams, plus the channel's subscribers, total views, join date, country and links. Schedule it with "only new videos" to get just the fresh uploads. No API key, no login.

Pricing

from $0.35 / 1,000 videos

Rating

0.0

(0)

Developer

Tagada Data

Tagada Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

YouTube Channel Scraper: every video a channel has published, with stats

Give it a list of YouTube channels and get back one table: every video each channel has published, newest first, with title, views, publish date, duration, thumbnail and link. Shorts and live streams too if you want them. Each channel also gets its own row with subscribers, total channel views, video count, join date, country, description and the links on its About page.

Put it on a schedule with Only new videos since the last run switched on and each run returns just the uploads that appeared since the previous one. Scheduled runs cost almost nothing when nothing changed: a quiet channel is checked against its latest-uploads feed and nothing is charged beyond the run start.

No API key, no login, no Google Cloud quota. Platform usage is included in the price.

Who it is for

  • Agencies and brand teams tracking competitors or creators. See what every channel on your watchlist publishes, how fast it gets views, and which formats (long videos, Shorts, live) they lean on.
  • Influencer marketers. Vet a creator's whole back catalogue before a deal: posting cadence, view counts per video, Shorts vs long-form, links to their other platforms.
  • Analysts and researchers. Build a dataset of a channel's entire output for content analysis, then feed the video IDs into the transcript or comments actors.
  • Content teams. Find a competitor's most-viewed videos and the topics that keep working for them.

What you get

Two kinds of rows in the same dataset, told apart by type. The Videos view of the dataset shows the videos, the Channels view shows the channel rows.

Video rows (type: "video")

FieldWhat it is
videoId, url, titleThe video
channelId, channelTitle, channelHandleWho published it
viewCountViews. Exact for the channel's 15 newest uploads; for older videos it is YouTube's rounded figure (2.9M → 2,900,000)
viewCountText, viewCountIsExactThe figure as YouTube shows it, and whether viewCount is exact
publishedAtExact publish time, for the 15 newest uploads
publishedTimeTextAs YouTube shows it ("3 weeks ago", "Streamed 6 years ago")
publishedAtApproxA date estimated from that text (exact when publishedAt is known)
durationSeconds, durationTextLength (Shorts have none on the channel page)
isShort, isLive, wasLive, isUpcomingShort, live right now, a past live stream, scheduled
isMembersOnlyA members-only upload (YouTube shows no view count for these, so viewCount is empty)
thumbnailUrlLargest thumbnail
tab, positionWhich channel tab it came from (videos, shorts, streams) and its position there, 1 = newest
capturedAtWhen the row was collected

Channel rows (type: "channel")

FieldWhat it is
channelId, handle, title, channelUrlThe channel
description, keywords, countryFrom the About page
subscriberCountText, subscriberCountApproxSubscribers as YouTube shows them ("8.7M subscribers") and as a number. YouTube rounds this figure publicly
totalViewCountTotal channel views, exact
videoCount, videoCountTextVideos on the channel
joinedDateDate the channel was created (YYYY-MM-DD)
externalLinks[{ title, url }] — website, Instagram, X, Patreon… as listed on the About page
avatarUrl, bannerUrl, isVerifiedProfile picture, banner, verification badge
capturedAtWhen the row was collected

Input

FieldDefaultWhat it does
Channels—Channel URLs, @handles, UC… channel IDs, old /c/ and /user/ links. A video link works too (you get its uploader).
Max videos per channel100Newest first, up to 5,000. Counted separately for videos, Shorts and live streams. The run status says when a channel has more.
Include ShortsoffAlso collect the Shorts tab.
Include live streamsoffAlso collect the Live tab (past, live-now and scheduled streams).
Only new videos since the last runoffReturn only uploads that are new since the previous run of the same channel list and settings.

Example — two channels, their latest 200 videos and their Shorts:

{
"channels": ["https://www.youtube.com/@mkbhd", "@3blue1brown"],
"maxVideosPerChannel": 200,
"includeShorts": true
}

Example — a daily watchlist that only returns fresh uploads (schedule it in Apify):

{
"channels": ["@mkbhd", "@LinusTechTips", "https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw"],
"maxVideosPerChannel": 50,
"onlyNewSinceLastRun": true
}

Output example

A real video row (3Blue1Brown, captured 2026-10-15):

{
"type": "video",
"channelId": "UCYO_jab_esuFRV4b17AJtAw",
"channelTitle": "3Blue1Brown",
"channelHandle": "@3blue1brown",
"videoId": "Nbwv5wHQoj0",
"url": "https://www.youtube.com/watch?v=Nbwv5wHQoj0",
"title": "The last IMO problem AI could not solve",
"viewCount": 2974539,
"viewCountText": "2.9M views",
"viewCountIsExact": true,
"publishedAt": "2026-09-18T17:12:53.000Z",
"publishedTimeText": "3 weeks ago",
"publishedAtApprox": "2026-09-18T17:12:53.000Z",
"durationSeconds": 3116,
"durationText": "51:56",
"isShort": false,
"isLive": false,
"wasLive": false,
"isUpcoming": false,
"isMembersOnly": false,
"thumbnailUrl": "https://i.ytimg.com/vi/Nbwv5wHQoj0/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLARIa200D0WGqdKfn4aF2sBHLllHA",
"tab": "videos",
"position": 1,
"capturedAt": "2026-10-15T21:46:19.562Z"
}

And its channel row (description and links shortened here):

{
"type": "channel",
"channelId": "UCYO_jab_esuFRV4b17AJtAw",
"handle": "@3blue1brown",
"title": "3Blue1Brown",
"description": "My name is Grant Sanderson. Videos here cover a variety of topics in math, or adjacent fields like physics and CS, all w…",
"country": "United States",
"subscriberCountText": "8.7M subscribers",
"subscriberCountApprox": 8700000,
"totalViewCount": 783431784,
"videoCount": 245,
"videoCountText": "245 videos",
"joinedDate": "2015-03-03",
"externalLinks": [
{ "title": "All things 3b1b", "url": "https://www.3blue1brown.com" },
{ "title": "Patreon", "url": "https://www.patreon.com/3blue1brown" }
],
"avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_nFzZFPLxPZRHcE3SSwzdrbuWqfoWYwLAu0_2iO6blQYAU=s900-c-k-c0x00ffffff-no-rj",
"bannerUrl": "https://yt3.googleusercontent.com/JfUD9Tu79zgoYGo5-WdP5YYj0XvAjPgV3c2Snj-cgy8jslro0Ln5by024zWL7XDin7Vs-qnxVg=w2560-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj",
"isVerified": true,
"keywords": "Mathematics",
"channelUrl": "https://www.youtube.com/@3blue1brown",
"capturedAt": "2026-10-15T21:46:19.562Z"
}

Pricing

Pay per result, platform usage included — the price below is all you pay.

EventPricePer 1,000Gold plan
Video row$0.0005$0.50 per 1,000 videos$0.35 per 1,000
Channel row$0.002$2 per 1,000 channels$1.40 per 1,000
Run start$0.001once per run$0.001

Bronze and Silver get $0.45 and $0.40 per 1,000 videos ($1.80 and $1.60 per 1,000 channels).

So a channel's last 1,000 videos cost about $0.50 plus $0.002 for its channel row. A daily watchlist of 20 channels that publishes 10 new videos a day costs about $0.006 a run, plus $0.002 for each channel that posted (its fresh channel row). A run where no channel posted anything costs just the run start. You are never charged for a channel that does not exist or a tab a channel does not have.

FAQ

How far back does it go? As far as the channel's own Videos tab goes — the full upload history, up to 5,000 per tab per run. Set Max videos per channel to what you need; the run status tells you when a channel has more.

Are view counts exact? For each channel's 15 newest uploads, yes (viewCountIsExact: true). Older videos carry the rounded figure YouTube shows on the channel page ("2.9M views"), turned into a number. The channel's total views are always exact; subscriber counts are rounded by YouTube itself for everyone.

How does "Only new videos since the last run" work? The actor remembers which videos it has already returned for that exact channel list and settings. The first run returns everything up to your cap and starts the memory; every later run returns only videos published since. Changing the channel list or the Shorts / live-stream switches starts a fresh memory. Channel rows come with the first run and again whenever that channel has new videos, so you also get a fresh subscriber and view snapshot.

What happens with a wrong handle or a deleted channel? That entry is skipped and the run status names it ("Not found on YouTube"). Nothing is charged for it, and the other channels are scraped normally.

Do I need a YouTube API key? No. No key, no Google Cloud project, no quota, no login.

Can I get the transcripts or comments of these videos? Yes — pipe the url column into the transcript or comments actors below.