YouTube Scraper — Videos, Channels, Shorts & Search
Pricing
from $0.90 / 1,000 results
YouTube Scraper — Videos, Channels, Shorts & Search
Scrape YouTube search results (with filters), channel info, a channel's videos, Shorts and live streams, playlists and full video details (likes, tags, chapters, exact date). No API key. From $1.50 per 1,000 results.
Pricing
from $0.90 / 1,000 results
Rating
0.0
(0)
Developer
Zee Lex
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape public YouTube data without an API key or quota. The scraper covers:
- search results, with YouTube's own filters
- channel info: subscribers, total views, joined date, country, links
- a channel's videos, Shorts and live streams
- playlists
- full video details: description, tags, exact publish date, likes, comment count, chapters and captions
It uses plain HTTP and YouTube's own InnerTube API, with no browser, so it is fast and runs at 512 MB.
What you get
Item type | When | Main fields |
|---|---|---|
video / short | search, channel tabs, playlists, video URLs | title, channel (name, ID, handle, verified), views, duration, published time + date, thumbnail, live/upcoming/members-only flags, badges, snippet, source, position |
| same + details | includeVideoDetails: true | description, likeCount, commentCount, tags, keywords, category, chapters, isFamilySafe, availableCountriesCount, hasCaptions; exact publishedAt |
channel | channel URLs (includeChannelInfo), channel search | handle, title, description, subscribers, total videos, total views, joined date, country, verified, avatar, banner, links, keywords |
playlist | playlist URLs, playlist search | title, channel, video count, thumbnail |
status (free) | inputs that can't be scraped | not_found, private, unavailable (terminated, members-only), age_restricted, error |
Each run also stores a RUN_SUMMARY record. For every source it gives items saved, pages, blocks, proxy escalations, status and why paging stopped. It also gives totals by type, the percentage of each field that came back empty, and an overall status of ok, partial, no_results or failed.
Input examples
Search with filters: long, HD videos from this month, most viewed first
{"searchQueries": ["home espresso setup", "latte art tutorial"],"searchType": "video","uploadDate": "month","duration": "long","sortBy": "views","features": ["hd"],"maxResultsPerQuery": 100}
A channel's videos and Shorts, with channel info and only uploads from the last 30 days
{"startUrls": ["https://www.youtube.com/@mkbhd"],"channelTabs": ["videos", "shorts"],"maxVideosPerChannel": 50,"includeChannelInfo": true,"publishedAfter": "2026-09-28"}
A playlist
{"startUrls": ["https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi"],"maxVideosPerPlaylist": 200}
A single video with full details
{"startUrls": ["https://www.youtube.com/watch?v=aircAruvnKk"],"includeVideoDetails": true}
startUrls accepts any mix of the following:
- video URLs:
watch?v=,youtu.be/,/shorts/,/live/and/embed/ - channel URLs:
@handle,/channel/UC…,/c/…and/user/…. Add/videos,/shortsor/streamsto scrape just that tab. - playlist URLs
- YouTube search-result URLs, which keep their own
sp=filters - bare video, playlist or channel IDs, and bare @handles
Output samples
Video with details (includeVideoDetails: true)
{"type": "video","videoId": "aircAruvnKk","url": "https://www.youtube.com/watch?v=aircAruvnKk","title": "But what is a neural network? | Deep learning chapter 1","channelName": "3Blue1Brown","channelId": "UCYO_jab_esuFRV4b17AJtAw","channelUrl": "https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw","channelHandle": "@3blue1brown","isVerifiedChannel": true,"viewCount": 21034567,"durationSeconds": 1120,"durationText": "18:40","publishedTimeText": "8 years ago","publishedAt": "2017-10-05T15:00:01.000Z","publishedAtIsApproximate": false,"thumbnailUrl": "https://i.ytimg.com/vi/aircAruvnKk/hqdefault.jpg","isLive": false,"isUpcoming": false,"isMembersOnly": false,"badges": ["4K", "CC"],"descriptionSnippet": "What are the neurons, why are there layers, and what is the math","source": "search: neural networks","position": 1,"scrapedAt": "2026-10-28T09:53:33.224Z","description": "Home page: https://www.3blue1brown.com …","likeCount": 312456,"commentCount": 12000,"tags": ["neural networks", "deep learning", "3blue1brown"],"keywords": "neural networks, deep learning, 3blue1brown","category": "Education","chapters": [{ "title": "Introduction", "startSeconds": 0 }, { "title": "What are neurons?", "startSeconds": 194 }],"isFamilySafe": true,"availableCountriesCount": 3,"hasCaptions": true}
Channel
{"type": "channel","channelId": "UCYO_jab_esuFRV4b17AJtAw","url": "https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw","handle": "@3blue1brown","title": "3Blue1Brown","description": "3Blue1Brown, by Grant Sanderson, is some combination of math and entertainment…","subscriberCount": 7230000,"videoCount": 212,"viewCount": 612345678,"joinedAt": "2015-03-04","country": "United States","isVerified": true,"avatarUrl": "https://yt3.googleusercontent.com/…","bannerUrl": "https://yt3.googleusercontent.com/…","links": [{ "title": "Patreon", "url": "https://www.patreon.com/3blue1brown" }],"keywords": ["Mathematics", "linear algebra", "calculus"]}
Playlist and status items
{ "type": "playlist", "playlistId": "PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi", "url": "https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi", "title": "Neural networks", "channelName": "3Blue1Brown", "channelId": "UCYO_jab_esuFRV4b17AJtAw", "videoCount": 8, "thumbnailUrl": "https://i.ytimg.com/vi/aircAruvnKk/hqdefault.jpg" }{ "type": "status", "input": "https://www.youtube.com/@doesnotexist", "status": "not_found", "message": "Channel not found (HTTP 404)." }
Use cases
- Influencer research: search a niche with
searchType: "channel", then pull subscribers, views, country and links for each channel. - Competitor tracking: schedule a weekly run on competitors' channels with
publishedAfterso you only get new uploads, Shorts and streams. - Content strategy: compare titles, durations, views and upload times across the top results for your keywords.
- Lead lists: export channel handles, countries and the business and social links from the About panel.
- AI datasets: collect titles, descriptions, tags and chapters at scale, deduplicated by video ID.
Limitations
- Only public data is collected. Private, members-only, age-restricted and removed videos come back as free
statusitems when you give them directly. In lists they are skipped or flagged withisMembersOnly. - List dates are approximate. Search results, channel tabs and playlists only show "3 weeks ago", so
publishedAtis estimated andpublishedAtIsApproximateistrue. Turn onincludeVideoDetailsto get the exact date. - How
publishedAfterbehaves depends on where the video comes from:- Channel tabs: paging stops at the first older video.
- Searches: older videos are only filtered out. Paging gives up after 3 pages in a row with nothing new.
- Shorts: lists show no date, so Shorts are only filtered when
includeVideoDetailsis on. - Playlists and direct video URLs: the filter isn't applied.
- Duration filter: YouTube's buckets are under 3 minutes, 3–20 minutes and over 20 minutes.
- Sorting: YouTube search now only supports Relevance and Popularity (view count). For the newest videos, use the
uploadDatefilter (last hour, today, this week…). maxVideosPerChannelapplies per tab. Videos plus Shorts can give up to twice that number per channel.- Shorts in lists have no duration or date. Live streams show concurrent viewers instead of total views.
- YouTube changes its page layout often. All layout knowledge is kept in
src/mappings.ts, so a change usually needs a small edit to that one file. - Blocking: heavy runs can trigger YouTube's bot check. Blocked requests are retried on a fresh session with exponential backoff. From the second retry they move to RESIDENTIAL proxy, up to 4 retries. If RUN_SUMMARY shows many blocks, lower
maxConcurrency.
Pricing
Pay per event, with lower prices on higher Apify plans:
| Event | Free | Bronze | Silver | Gold+ |
|---|---|---|---|---|
result: per 1,000 videos, Shorts, channels or playlists | $1.50 | $1.30 | $1.10 | $0.90 |
video-details: per 1,000 videos enriched from the watch page (only with includeVideoDetails) | $1.00 | $0.90 | $0.80 | $0.70 |
statusitems are free (private, removed, not found).- Example: 1,000 search results cost $1.50; with full details, $2.50. That is cheaper than most YouTube scrapers on the Store.
- The run stops cleanly once your maximum charge is reached.