YouTube Channel Videos Scraper — Videos, Shorts & Live avatar

YouTube Channel Videos Scraper — Videos, Shorts & Live

Pricing

from $5.00 / 1,000 video listeds

Go to Apify Store
YouTube Channel Videos Scraper — Videos, Shorts & Live

YouTube Channel Videos Scraper — Videos, Shorts & Live

List a channel's full catalogue with views, duration and upload age. Videos, Shorts and past live streams. No API key, no quota.

Pricing

from $5.00 / 1,000 video listeds

Rating

0.0

(0)

Developer

Quarry

Quarry

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

a day ago

Last modified

Share

YouTube Channel Videos Scraper — the whole catalogue, fast

List every video on a channel with views, duration, upload age and thumbnails. Videos, Shorts and past live streams. No API key and no quota — the official YouTube Data API gives you 10,000 units a day and a channel listing burns through it fast.

Sample output

{
"videoId": "lVylRtlPOIE",
"url": "https://www.youtube.com/watch?v=lVylRtlPOIE",
"title": "I Granted 100 Kids Their Biggest Wish!",
"channel": "MrBeast",
"channelSubscriberCountText": "511M subscribers",
"tab": "videos",
"viewCount": 39000000,
"viewCountText": "39M views",
"publishedText": "8 days ago",
"publishedApproxDate": "2026-07-25T00:00:00.000Z",
"durationSeconds": 875,
"durationText": "14:35",
"thumbnailUrl": "https://i.ytimg.com/vi/lVylRtlPOIE/hqdefault.jpg",
"isShort": false
}

Why this one

  • All three tabs. Videos, Shorts and Live in one run. Shorts use a completely different internal format and most listers silently return nothing for them.
  • Fast. 90 videos in about one second. 678 videos across 3 channels and 2 tabs in a few seconds.
  • Filter before you pay. minViews, keywords and publishedWithinDays are applied before rows are billed.
  • It reports drift. If YouTube changes its payload shape, you get a drift status rather than a silently empty dataset.
  • A handle that does not exist comes back as not_found. Resolution asks YouTube to resolve the vanity URL rather than taking the top search hit, so a typo'd handle never quietly returns some other channel's catalogue as a billable result.

Input

FieldWhat it does
channelsRequired. Handles, URLs or UC… ids.
tabsvideos, shorts, live. Default ["videos"].
maxVideosPerChannelCap per channel per tab. Default 200.
minViews / keywordsFilter before billing.
publishedWithinDaysRecent uploads only.
{ "channels": ["@MrBeast", "@veritasium"], "tabs": ["videos", "shorts"], "maxVideosPerChannel": 120 }

Honest limits

  • Upload dates are approximate. Channel listings only expose relative ages ("8 days ago"), so publishedApproxDate is derived from that. An exact timestamp would cost one extra request per video. The field name says what it is.
  • Shorts carry no upload date or duration on the listing tile — YouTube doesn't put them there. publishedText and durationSeconds are null for Shorts rather than guessed.
  • Shorts view counts are rounded by YouTube itself ("15 million views"), so they are less precise than long-form counts.

Status values

Every channel × tab resolves to one of: ok, not_found (no channel owns that handle), empty (the tab has nothing, or filters kept nothing), transport (network), or drift (YouTube changed the payload shape).

A run that lists nothing writes a single summary row instead of an empty dataset, so your schedule can tell "checked and quiet" apart from "broken":

{ "type": "no_changes", "listingsAttempted": 1, "videosFound": 5, "videosFiltered": 5, "notFound": 0, "checkedAt": "2026-08-05T12:07:00.335Z" }

Video rows never carry a type field, so filtering the summary out downstream is one comparison. The summary row is never billed.

Pairs with

Our transcript and comments scrapers — feed this actor's videoId output straight into either for full-catalogue analysis.

Pricing

Pay per video listed. Filtered-out videos and failed channel lookups cost nothing.