YouTube Channel Videos Scraper — Videos, Shorts & Live
Pricing
from $5.00 / 1,000 video listeds
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
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
a day ago
Last modified
Categories
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,keywordsandpublishedWithinDaysare applied before rows are billed. - It reports drift. If YouTube changes its payload shape, you get a
driftstatus 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
| Field | What it does |
|---|---|
channels | Required. Handles, URLs or UC… ids. |
tabs | videos, shorts, live. Default ["videos"]. |
maxVideosPerChannel | Cap per channel per tab. Default 200. |
minViews / keywords | Filter before billing. |
publishedWithinDays | Recent 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
publishedApproxDateis 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.
publishedTextanddurationSecondsarenullfor 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.