YouTube Channel Scraper - Videos, Shorts, Lives & Channel Stats avatar

YouTube Channel Scraper - Videos, Shorts, Lives & Channel Stats

Pricing

from $0.80 / 1,000 results

Go to Apify Store
YouTube Channel Scraper - Videos, Shorts, Lives & Channel Stats

YouTube Channel Scraper - Videos, Shorts, Lives & Channel Stats

Paste channel links or @handles and get subscribers, total views, video count, join date, country and links, plus the channel's videos, Shorts and live streams - latest, most popular or oldest first. Public pages only: no login, no cookies, no emails.

Pricing

from $0.80 / 1,000 results

Rating

0.0

(0)

Developer

mochi

mochi

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

YouTube Channel Scraper - every video, Short and live stream plus channel stats

Paste YouTube channel links or @handles and get one row with the channel's public stats, followed by its videos, Shorts and past live streams.

  • Channel stats in the same run. Subscribers, total views, video count, join date, country, description, keywords, avatar and the external links the channel lists.
  • Videos, Shorts and lives, in YouTube's own order. Set a limit per tab and choose Latest, Most popular or Oldest for the Videos and Shorts tabs. The Live tab is always newest first. A tab limit of 0 skips that tab.
  • One flat price per row. Pay per result, at the rate shown in the pricing panel of this page, plus a very small per-run start fee. You are charged only for the results delivered. Channel rows and Shorts cost the same as video rows.

What you get

Every row has recordType = channel (one per channel, written first) or video. Video rows carry type = video, short or stream.

Channel row (shortened):

{"recordType":"channel","channelId":"UCBJycsmduvYEL83R_U4JriQ","channelName":"Marques Brownlee","handle":"@mkbhd","channelUrl":"https://www.youtube.com/@mkbhd","subscriberCountText":"21.4M subscribers","subscriberCountApprox":21400000,"totalViews":5796591204,"videoCount":1859,"joinedDate":"2008-03-21","country":"United States","links":[{"title":"Twitter","url":"https://twitter.com/MKBHD"}],"scrapedAt":"2026-10-19T08:19:50.534Z"}

Short row:

{"recordType":"video","type":"short","videoId":"R6yNUnRXZ64","url":"https://www.youtube.com/shorts/R6yNUnRXZ64","title":"iPhone Duo is here","viewCountText":"8.3M views","viewCountApprox":8300000,"publishedText":null,"durationText":null,"durationSeconds":null,"thumbnailUrl":"https://i.ytimg.com/vi/R6yNUnRXZ64/hqdefault.jpg","position":1,"sortBy":"latest","channelId":"UCBJycsmduvYEL83R_U4JriQ","channelName":"Marques Brownlee","handle":"@mkbhd","scrapedAt":"2026-10-19T08:19:53.541Z"}
  • viewCountText is the text YouTube shows (5.3M views); viewCountApprox is that text as a number, so it is rounded the way YouTube rounds it. It is null when YouTube shows no view count. A stream that is live right now has no view count, publish date or duration yet, so those three are null until it ends.
  • publishedText is YouTube's relative date (15 hours ago, Streamed 8 years ago), not a calendar date. It and durationText / durationSeconds are empty for Shorts, because the Shorts tab does not show them.
  • position counts rows in the order you asked for; sortBy says the order that was really applied (latest if the channel has too few videos for YouTube to offer a sort).
  • Not included: exact view counts, publish dates, descriptions and tags of individual videos, and channel business emails (YouTube shows those only to signed-in users).

Input

FieldDefaultWhat it does
channelsnone (prefilled with one example)Channel URLs (@handle, /channel/UC..., /c/..., /user/...), bare @handles or channel IDs.
maxVideos30 (max 10000)Videos per channel. 0 skips the Videos tab.
maxShorts0 (max 10000)Shorts per channel. 0 skips the Shorts tab.
maxStreams0 (max 10000)Past live streams per channel. 0 skips the Live tab.
sortBylatestlatest, popular or oldest for videos and Shorts.
proxyConfigurationApify datacenter proxyProxy used for all requests.

At least one channel is required, otherwise the run fails with a message. Inputs that are not YouTube channels, or that do not resolve, are listed in the FAILURES record of the run's key-value store and are not charged. A channel with no Shorts or Live tab simply returns no rows for that tab. The same channel given twice is scraped once, and a video that appears on two tabs is written once.

Measured behaviour

Platform runs on 2026-10-19 with the default datacenter proxy and 512 MB of memory:

  • @mkbhd + @RickAstleyYT, 40 videos + 20 Shorts + 5 streams each: 128 rows (2 channel rows, 80 videos, 40 Shorts, 6 streams; Rick Astley has 1 stream) in 7 seconds. title and url were filled in 100% of video rows, viewCountApprox in 99.2%, durationSeconds in 100% of regular videos.
  • @mkbhd, sortBy popular, 5 videos: the five rows came back in descending order of views (40M, 28M, 28M, 23M, 22M).
  • No request was blocked on the default proxy in any of the four test runs (0 of 4 runs).
  • Peak memory was 69 MB on the small run and 93 MB on a 2,678-row run.

Stopping early, blocks and the run summary

  • The run keeps a time budget. If it is close to the run timeout (for example a very large list of channels with 10,000-row limits), it starts no new request, pushes what it has collected and ends as succeeded. The RUN_SUMMARY record (complete, terminationReason, rowsPushed) says whether the run finished or stopped early. terminationReason is one of finished, max_results, charge_limit, time_budget, blocked or request_failed. Checked with a 45-second timeout on four large channels: the run ended as succeeded after 36 seconds with 2,678 rows and time_budget.
  • If YouTube answers with HTTP 403, a consent page or a sign-in page, the actor stops at once with the message YouTube blocked the request (HTTP <status>); stopping. and keeps the rows already written. It never retries a block and never changes proxy or headers. Run again later.
  • Temporary errors (HTTP 429 and 5xx, network errors) are retried three times with 2, 4 and 8 second waits.

Privacy

Only public, logged-out YouTube pages are read: no login, no cookies. Email addresses and phone numbers in channel descriptions, keywords, link titles, channel names and video titles are replaced with [email redacted] and [phone redacted] (best effort on the formats it recognises).

Keywords

youtube channel scraper, youtube shorts scraper, youtube video list, channel videos, youtube statistics, subscriber count, youtube analytics, most popular videos