YouTube Channel Scraper avatar

YouTube Channel Scraper

Pricing

from $1.00 / 1,000 videos

Go to Apify Store
YouTube Channel Scraper

YouTube Channel Scraper

Every video from any YouTube channel, newest, popular or oldest first, with the channel's subscribers, total views, country, joined date and links on every row. No login.

Pricing

from $1.00 / 1,000 videos

Rating

0.0

(0)

Developer

Sedge Labs

Sedge Labs

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

a day ago

Last modified

Categories

Security

Limited permissions

Share

Get the videos, Shorts and live streams from any YouTube channel, sorted by latest, most popular or oldest, with the channel's profile on every row: subscribers, total views, video count, country, joined date, description and links. No login and no API key.

What you get

One row per video, Short or stream:

  • type: video from the channel's Videos tab, short from its Shorts tab, stream from its Live tab
  • title, URL, video ID, length, thumbnail
  • views as the channel shows them ("27M views") and the video's age ("3 weeks ago"), with an estimated publish date
  • the channel's name, ID and handle
  • channel: the channel's profile, the same on every row of that channel

Turn on Exact details for each video's exact views, likes, publish date and time, full description, keywords and category. The actor then opens each video, one extra request each, charged as a separate small event.

Shorts and live streams

The Videos tab comes by default. Set Max Shorts per channel or Max live streams per channel above 0 to get those tabs as well, each up to its own limit, or set Max videos per channel to 0 to leave the Videos tab out.

  • A Short comes with its rounded views and no date, because the Shorts tab shows none. Exact details give it a date.
  • The Live tab lists upcoming streams ("7 waiting", no date yet), live ones (isLive, "114 watching") and past ones ("Streamed 4 days ago"). With Exact details on, an upcoming stream's publishedAt comes before its start, so don't read it as the start time.

The channel profile

FieldWhat it is
urlThe channel's URL
subscriberCountRounded as YouTube shows it: 524M is 524,000,000
subscriberCountTextAs shown: "524M subscribers"
videoCountVideos on the channel
viewCountTotal views of the channel, exact
joinedAtThe day the channel was created: "2012-02-19"
countryAs YouTube names it: "United States"
descriptionThe channel's description
linksThe links on the channel, with the creator's labels and the real addresses
isVerifiedA check mark, or an Official Artist Channel note, next to the name
isArtistAn Official Artist Channel
avatarUrl, bannerUrlThe channel's pictures
keywordsThe channel's own keywords

The business email on a channel's About page needs a signed-in YouTube account, so the actor doesn't collect it.

Profiles only

To get a list of channels with their profiles and no videos, turn on Profiles only. You get one row per channel and the actor opens no video, Short or stream tab. Max videos per channel is ignored. Max Shorts, Max live streams, Exact details, Sort by and Videos from have nothing to apply to, so the run refuses them if you change them from their defaults.

{
"input": "@MrBeast",
"type": "channel",
"channelId": "UCX6OQ3DkcsbYNE6H8uQQuVA",
"channelName": "MrBeast",
"channelHandle": "@MrBeast",
"url": "https://www.youtube.com/@MrBeast",
"subscriberCount": 524000000,
"subscriberCountText": "524M subscribers",
"videoCount": 1011,
"viewCount": 145347938308,
"joinedAt": "2012-02-19",
"country": "United States",
"isVerified": true
}

The row has the fields listed under The channel profile, flat, next to the channel's name, ID and handle, and shows in the Output tab's Channel profiles view. A channel that can't be read gets the same free error row described below. If a channel's About panel can't be read, its row still comes with the header's part (name, handle, subscribers, description, keywords, pictures), the rest is empty, and the run summary says so. The status message counts the profiles saved and the channels that failed, as in "3 channel profiles from 4 channels: 3 complete, 1 failed."

Only new videos

Set Videos from to a date (2026-01-31) or an age (30 days) with sort set to Latest. The run stops at the first older video, so you pay only for the ones in the window. Run it on a schedule to track channels.

Without Exact details, the date comes from the age YouTube shows, which it rounds: "1 year ago" can mean 12 to 23 months. The actor reads each age as the most recent date it allows, so a video near your date is kept rather than lost, and a few videos just past it can come back. With Exact details on, the limit uses each video's exact publish date.

The limit applies to each tab. Upcoming and live streams are always kept and never end the tab, because their dates don't follow the tab's order. With Shorts in the run, a date limit needs Exact details on, because the Shorts tab shows no dates.

Input example

{
"channels": ["@MrBeast", "https://www.youtube.com/channel/UCTgwcoeGGKmZ3zzCXN2qo_A"],
"maxVideosPerChannel": 50,
"maxStreamsPerChannel": 10,
"sortBy": "latest",
"oldestDate": "30 days"
}

Channels can be handles, channel URLs or channel IDs, up to 1,000 per run.

Output example

{
"input": "@MrBeast",
"rank": 1,
"type": "video",
"videoId": "_c2e1NcI3Sc",
"url": "https://www.youtube.com/watch?v=_c2e1NcI3Sc",
"title": "Beat LeBron In Basketball, Win $100,000",
"channelName": "MrBeast",
"channelHandle": "@MrBeast",
"viewCount": 27000000,
"viewCountText": "27M views",
"durationSeconds": 1348,
"publishedTimeText": "17 hours ago",
"publishedAtApprox": "2026-10-31T16:46:19.965Z",
"hasExactDetails": false,
"channel": {
"url": "https://www.youtube.com/@MrBeast",
"subscriberCount": 524000000,
"subscriberCountText": "524M subscribers",
"videoCount": 1011,
"viewCount": 145347938308,
"joinedAt": "2012-02-19",
"country": "United States",
"links": [{ "title": "Follow", "url": "https://www.instagram.com/mrbeast/" }],
"isVerified": true,
"isArtist": false
}
}

The full row has more fields; see the Output tab.

Channels that fail

A channel that returns nothing because something went wrong, such as a handle that doesn't exist, gets one row of its own, free of charge:

{
"input": "@nosuchchannel",
"type": "error",
"error": "channel_not_found",
"errorMessage": "@nosuchchannel: YouTube says this channel does not exist."
}

Filter on type to keep these rows apart from the videos. A channel that returned some rows gets none, even if one of its tabs is missing; that tab's sentence is in RUN_SUMMARY.

Pricing

$1.00 per 1,000 videos, plus $1.00 per 1,000 videos for exact details when you turn them on. Shorts and live streams count as videos. Apify's platform usage and proxies are included. A channel that doesn't exist, or a tab it doesn't have, costs nothing, and the rows for channels that fail are free.

YouTube declines the exact details for a few videos in every hundred. Those rows still arrive with what the Videos tab shows, and their details charge is not applied.

With Profiles only on, each channel profile costs $0.003 ($3.00 per 1,000), with no video charges. A profile whose About panel can't be read is still charged, since its row carries the header's part.

Why did a channel stop where it did?

Each channel gets one plain sentence per tab in RUN_SUMMARY:

  • "50 videos for @MrBeast: stopped at your limit of 50."
  • "12 videos for @MrBeast: stopped at the first one older than your date limit."
  • "10 Shorts for @MrBeast: stopped at your limit of 10."
  • "@MrBeast: This channel has no Live tab."
  • "@somechannel: This channel has no Videos tab."

FAQ

Do I need a YouTube account or proxies?

No. It reads public channel pages logged out and uses Apify's proxy by default.

Does it get Shorts and live streams?

Yes. Set Max Shorts per channel or Max live streams per channel above 0. For Shorts on their own, YouTube Shorts Scraper has exact details on by default.

Can I use it through the API, Make, Zapier or n8n?

Yes, like any Apify actor. Call it with your API token and read the dataset when the run finishes.

The actor collects only public information, logged out. You are responsible for how you use it. If you're unsure, ask a lawyer. Don't use the data for spam, impersonation or any other unlawful purpose.

This actor is independent and not affiliated with, endorsed by or sponsored by YouTube or Google. YouTube is a trademark of Google LLC.

More from Sedge Labs

Support

Open an issue on the Issues tab and include your run link.