YouTube Channel Scraper - Videos, No API Key
Pricing
Pay per event
YouTube Channel Scraper - Videos, No API Key
The same channel answers to three different names - an @handle, a channel URL and a UC id - and all three work as input. Videos come back with title, id, URL, view count, publish time, duration and thumbnail. No API key or quota. $0.40 per 1,000 videos, 2,000 per run.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
21 hours ago
Last modified
Categories
Share
YouTube Channel Scraper
Lists a channel's uploads. Paste @handles, full channel URLs or UC… ids, mixed however they came out of your spreadsheet. Each video comes back as a row: title, video id, URL, channel name and id, view count, publish time, duration and thumbnail.
No API key, no OAuth screen, no Google Cloud project to set up first. It reads YouTube's own InnerTube endpoint, the one the site itself calls, so nothing here comes out of a Data API quota.
What you get
{"videoId": "Af6i6ChAVTw","title": "Last To Leave Mansion, Keeps It","url": "https://www.youtube.com/watch?v=Af6i6ChAVTw","channelName": "MrBeast","channelId": "UCX6OQ3DkcsbYNE6H8uQQuVA","viewCountText": "88M views","publishedTimeText": "12 days ago","lengthText": "57:51","thumbnail": "https://i.ytimg.com/vi/Af6i6ChAVTw/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==","mode": "channel"}
Counts and dates come back as text, not numbers
viewCountText, publishedTimeText and lengthText all end in Text because that's what they are — the strings YouTube renders on the channel page. You get "88M views", not 88041233. You get "12 days ago", not an ISO timestamp.
That's what the channel listing exposes. If you need exact view counts or real publish dates you have to open each video page, which is a different job and a different cost. Parsing "88M views" into a number is a one-liner; recovering the exact figure from it is impossible, so plan around that.
lengthText is missing on live streams and premieres, since they have no duration yet.
Input
{"channelUrls": ["@MrBeast", "https://www.youtube.com/@mkbhd", "UCX6OQ3DkcsbYNE6H8uQQuVA"],"maxItems": 500}
channelUrls— full channel URLs,@handlesorUCids, mixed freely.maxItems— how many videos to collect. Default 50, ceiling 2,000. You're charged per video, so this is your spend control.proxyConfiguration— Apify datacenter proxy, on by default. That's fine for YouTube and costs you nothing extra.
You can also push results into Notion with notionConnector.
Limits
- 2,000 videos per run. A channel with 10,000 uploads needs several runs, and there's no offset parameter to resume from. Every run gives you the newest
maxItems. - Videos come back newest first.
- Shorts and live streams appear alongside regular uploads.
lengthTextis the practical way to tell shorts apart. - Counts and dates are display strings, as described above.
- This reads the channel's public video listing. It doesn't fetch descriptions, comments, transcripts or subscriber counts. Other actors here cover those.
- InnerTube is YouTube's internal endpoint. It's stable in practice, but it isn't a documented public API and Google can change the response shape whenever they feel like it.
Billing
$0.40 per 1,000 videos, plus a $0.001 run-start fee. Flat on every plan.
Charged once per video returned. Failed and empty runs aren't charged, so pointing it at a dead handle costs you the start fee and nothing more. Your ceiling for any run is maxItems × $0.0004 plus that fee. A full 2,000-video run is 80 cents.