YouTube Channel Scraper - Videos, Shorts, Views & Channel Stats
Pricing
from $0.55 / 1,000 videos
YouTube Channel Scraper - Videos, Shorts, Views & Channel Stats
YouTube channel scraper and YouTube Data API alternative: list a channel's videos, Shorts or live streams with exact view counts, duration and publish date, plus subscribers, video count, total views and country. Accepts @handles, URLs and channel ids, no API key or login.
Pricing
from $0.55 / 1,000 videos
Rating
0.0
(0)
Developer
CrawlKit
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
List the videos, Shorts or live streams of one or more YouTube channels. Each video comes as one flat JSON row with its title, URL, view count, duration, publish time and thumbnail, plus the channel's subscriber count, video count, total views, country and join date.
What it does
- Takes YouTube channels in any common form:
https://www.youtube.com/@TED,@TED,TED,https://www.youtube.com/channel/UC..., a bare channel idUC..., or legacy/c/...and/user/...URLs. - Reads one tab per run: Videos, Shorts or Live (past and current live streams), sorted like on YouTube: latest, popular (most viewed) or oldest.
- Follows YouTube's pagination (about 30 videos per page, 48 for Shorts) until
maxItemsvideos per channel or the end of the tab. - Returns the exact view count for regular videos and past live streams.
- Adds the channel's About panel data to every row: country, exact video count, total views, join date, description.
- Removes duplicates: a video is returned once per run, and a channel given twice (for example as a handle and as an id) is scraped once.
- Uses YouTube's public web API (the one the mobile site calls). No login, no API key, no browser.
Input
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
channels | array of strings | Yes | — | Channel URLs, handles (@TED) or channel ids (UC...), one per line |
contentType | string | No | videos | videos, shorts or streams (Live tab) |
sortBy | string | No | latest | latest, popular (most viewed first) or oldest |
maxItems | integer | No | 20 | Maximum videos per channel (1 to 10,000) |
Example:
{"channels": ["https://www.youtube.com/@TED", "@MrBeast"],"contentType": "videos","sortBy": "popular","maxItems": 100}
Output
One dataset row per video. Real example (TED, Videos tab, 28 October 2026; channelDescription shortened here):
{"videoId": "tu6tF-lVDJI","url": "https://www.youtube.com/watch?v=tu6tF-lVDJI","title": "Why You Should Share a Recipe with a Stranger | Anuj Gupta | TED","contentType": "video","position": 1,"viewCount": 32423,"viewCountText": "32K views","publishedTimeText": "15 hours ago","publishedAt": "2026-10-27T15:57:20+00:00","durationSeconds": 233,"durationText": "3:53","thumbnailUrl": "https://i.ytimg.com/vi/tu6tF-lVDJI/hq720.jpg?sqp=-oaymwEcCK4FEIIDSEbyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLARb81KrPx9W4bT0yxksh9b0687Hw&usqp=CBQ","isLive": false,"isUpcoming": false,"isShort": false,"channelId": "UCAuUUnT6oDeKwE6v1NGQxug","channelName": "TED","channelHandle": "@TED","channelUrl": "https://www.youtube.com/@TED","channelSubscriberCount": 27900000,"channelVideoCount": 5872,"channelTotalViews": 3265605072,"channelCountry": "United States","channelJoinedDate": "2006-12-06","channelDescription": "The TED Talks channel features the best talks and performances from the TED Conference, where the world's leading thinke...","channelAvatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_koIFcCOrvh0KThLNOiazAIDu6hcs8bjkGNwe1f6A_OYm8=s900-c-k-c0x00ffffff-no-rj","channelInput": "https://www.youtube.com/@TED","scrapedAt": "2026-10-28T06:57:20+00:00"}
| Field | Notes |
|---|---|
viewCount | Exact for videos and past streams; rounded by YouTube for Shorts (5.8K gives 5800); null for streams that are live now or upcoming (see viewCountText, e.g. 2.4K watching) |
publishedAt | Approximate, computed from publishedTimeText (15 hours ago, Streamed 6 months ago); a month counts as 30 days and a year as 365 days, so precision is the unit YouTube shows |
durationSeconds | null for Shorts and live-now streams |
channelSubscriberCount | Number, rounded by YouTube (27.9M gives 27900000) |
channelVideoCount, channelTotalViews, channelCountry, channelJoinedDate | From the channel's About panel; channelCountry is null when the channel did not set one |
position | Rank of the video in the tab for the chosen sort |
Pricing
Pay-per-event, no start fee: $0.91 per 1,000 videos on the Apify Free plan, lower on paid plans. One VIDEO event is charged per dataset row; channel data is included.
| Event | Free | Starter | Scale | Business | Enterprise |
|---|---|---|---|---|---|
Video (VIDEO) | $0.91 | $0.77 | $0.68 | $0.55 | $0.55 |
Prices in USD per 1,000 events.
The run stops cleanly when the "Maximum cost per run" you set is reached; the videos already returned are kept.
Limitations
- Shorts: YouTube's Shorts tab shows rounded view counts and no publish date or duration, so
viewCountis rounded andpublishedTimeText,publishedAtanddurationSecondsarenull. publishedAtis an estimate derived from relative text such as "1 year ago"; for an exact date, open the video page.- Subscriber counts are rounded by YouTube (3 significant digits); exact subscriber counts are not public.
- One tab per run. To get videos and Shorts of the same channel, run the Actor twice (or use two tasks).
- Only what the channel tab shows to a signed-out visitor is listed: private and unlisted videos are not returned.
- Very long tabs are read page by page (about 30 videos per request), so channels with thousands of videos take longer.
- If YouTube rejects the requests, the Actor retries on new proxy sessions (datacenter, then residential) and fails with an explicit message if every attempt is refused. Channels that do not exist or have no video in the chosen tab are reported in the run's status message.