YouTube Channel Videos Scraper (bulk, lightweight) avatar

YouTube Channel Videos Scraper (bulk, lightweight)

Pricing

from $0.65 / 1,000 video listeds

Go to Apify Store
YouTube Channel Videos Scraper (bulk, lightweight)

YouTube Channel Videos Scraper (bulk, lightweight)

List every video of a YouTube channel: title, video id, duration, view count, publish date and thumbnail, plus channel name, handle and subscriber count. Paste channel URLs, @handles or channel ids. Only delivered videos are charged.

Pricing

from $0.65 / 1,000 video listeds

Rating

0.0

(0)

Developer

Steadydata Team

Steadydata Team

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Get the full video list of any YouTube channel: title, video id, duration, view count, publish date and thumbnail, with the channel's name, handle and subscriber count on every row. Paste channel URLs, @handles or channel ids, up to 100 channels per run. You only pay for videos that are actually delivered.

Why this scraper

  • Built on a lightweight route. Loading a channel page costs about 1.5 MB for the first 30 videos. This actor asks YouTube's own internal API instead and needs about 2.3 KB per video, which is where the low price comes from.
  • Only delivered videos are charged. A channel that does not exist, has no public videos, or is temporarily blocked comes back as a clear error record at no cost.
  • A hard cost ceiling you control. maxVideosPerChannel is the cap: one delivered video is one charged event, so you always know the maximum before you press start.
  • Agent-ready output. One flat row per video with a stable schema and explicit error codes, so it drops straight into a pipeline or an LLM tool.
  • Every input format works. @mkbhd, https://www.youtube.com/@mkbhd, /channel/UC..., /c/Name, /user/Name or a bare channel id.

Who this is for

Content researchers mapping what a channel publishes, competitor and market analysts tracking output and view counts, and teams that need a channel's back catalogue as input for further processing, for example to fetch transcripts afterwards.

Who this is not for

If you want one channel's latest video once, the YouTube website is faster and free. This actor earns its place from the tenth channel onwards, or when you need the whole back catalogue in one table.

It returns public video and channel metadata only. It does not collect comments, commenter names, subscriber lists or any other personal data.

Input fields

FieldTypeRequired or defaultWhat it does
channelslist of textrequiredChannel URLs, @handles or channel ids. All of these work: https://www.youtube.com/@mkbhd, @mkbhd, https://www.youtube.com/channel/UCBJycsmduvYEL83R_U4JriQ, UCBJycsmduvYEL83R_U4JriQ.
maxVideosPerChannelnumber100Stop after this many videos per channel, newest first. This is your cost ceiling: one delivered video is one charged event.
languagetextenInterface language for the texts YouTube returns, e.g. en, nl, de. Affects wording such as the publish date.
countrytextUSISO country code used for the request, e.g. US, NL, DE.

Input example

{
"channels": [
"@mkbhd",
"https://www.youtube.com/channel/UCBJycsmduvYEL83R_U4JriQ",
"UCBJycsmduvYEL83R_U4JriQ"
],
"maxVideosPerChannel": 100,
"language": "en",
"country": "US"
}

Output example

FieldTypeWhat it holdsExample
channelIdtextThe channel id (UC...), stable where the channel name can change.UCBJycsmduvYEL83R_U4JriQ
channelNametextThe channel that published the video.Marques Brownlee
channelHandletextThe channel's @handle, the name in its short link.@mkbhd
channelUrltextThe channel page on YouTube.https://www.youtube.com/channel/UCBJycsmduvYEL83R_U4JriQ
channelSubscribersnumberThe channel's subscribers, rounded the way YouTube publishes them.21300000
channelVideoCountnumberHow many public videos the channel has.1800
videoIdtextThe eleven-character YouTube id of the video, the key to join other data on.rayrrXot17M
urltextThe watch page of the video.https://www.youtube.com/watch?v=rayrrXot17M
titletextThe title as the uploader set it.Nothing Headphone 1 Pro: They Copied the Wrong Thing!
durationtextThe length as YouTube prints it on the thumbnail, for example 12:04.14:20
durationSecondsnumberThe length of the video in seconds.860
viewCountnumberViews as YouTube reports them at the moment of the run.4110949
publishedTexttextHow long ago YouTube says it appeared, for example "3 weeks ago"; YouTube gives no exact date here.1 day ago
thumbnailUrltextThe largest thumbnail YouTube offers for the video.https://i.ytimg.com/vi/rayrrXot17M/sddefault_custom_2.jpg...
{
"channelId": "UCBJycsmduvYEL83R_U4JriQ",
"channelName": "Marques Brownlee",
"channelHandle": "@mkbhd",
"channelUrl": "https://www.youtube.com/channel/UCBJycsmduvYEL83R_U4JriQ",
"channelSubscribers": 21200000,
"channelVideoCount": 1800,
"videoId": "Od6M0AXpcxQ",
"url": "https://www.youtube.com/watch?v=Od6M0AXpcxQ",
"title": "iPhone 18 Pro/Duo Impressions: Mogged",
"duration": "17:14",
"durationSeconds": 1034,
"viewCount": 14290382,
"publishedText": "1 day ago",
"thumbnailUrl": "https://i.ytimg.com/vi/Od6M0AXpcxQ/maxresdefault.jpg",
"status": "ok"
}

A channel that cannot be delivered produces an error record instead, and is not charged:

{
"input": "@thischanneldoesnotexist12345",
"status": "error",
"errorCode": "CHANNEL_NOT_FOUND",
"error": "YouTube does not know this channel"
}

Error codes: INVALID_CHANNEL, CHANNEL_NOT_FOUND, NO_VIDEOS, BLOCKED. INPUT_TRUNCATED appears once when your input is longer than this actor accepts.

Pricing

Pay per event: one video-listed event per delivered video. No charge for channels that fail, no charge for channels without public videos, no separate platform-usage surcharge.

Free Apify plan: this actor delivers up to 25 rows per run for accounts on the Apify free plan, and then stops with a message. That limit is set by us, not by Apify. It exists so the actor keeps paying for itself for the people who do pay. Any paid Apify plan runs it at full size, billed per delivered row, with failed rows never charged.

Reviews: if this actor saves you time, a short review on this page is the one thing that helps most. Ratings are what other buyers look at first, and we have no other way to ask.

FAQ

How far back does it go? As far as you ask. Set maxVideosPerChannel and the actor pages through the channel, newest first, until it reaches your limit or runs out of videos.

Why is the publish date a text like "1 day ago"? That is what YouTube returns on this route. It is kept exactly as given rather than converted into a date that would be a guess. Set language if you want that text in another language.

Does it include Shorts and live streams? Not in this version. It returns the channel's Videos tab, which is the regular uploads. Shorts and past live streams sit behind separate tabs and are a candidate for a later version.

Is personal data collected? No. Public video and channel metadata only. No comments, no commenter names, no subscriber lists.

What happens when YouTube changes something? Internal routes shift from time to time; that is the nature of this work. The difference here is the response: the actor is monitored daily and fixed fast, and while it is broken you are not charged, because only delivered videos cost anything.

Can I combine this with transcripts? Yes, and that is a common pattern: run this actor to get a channel's video ids, then feed those ids into the YouTube Transcript Scraper from the same publisher.