YouTube Scraper (search, channels, Shorts, playlists, stats)
Pricing
from $0.60 / 1,000 video (list row)s
YouTube Scraper (search, channels, Shorts, playlists, stats)
Scrape YouTube search results, channel videos, Shorts and live streams, and playlists: title, views, publish date, duration, channel and subscribers. Optional full details: likes, comments count, description, category, tags. No login, no API key, no empty rows. Pay only per video delivered.
Pricing
from $0.60 / 1,000 video (list row)s
Rating
0.0
(0)
Developer
ScrapeMole
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a minute ago
Last modified
Categories
Share
YouTube Scraper: videos, channels, Shorts and playlists
Scrape YouTube search results, channel videos, Shorts, live streams and playlists without an API key or quota. Every row has the title, link, channel, views, upload time, duration and thumbnail. Channel rows also carry the subscriber count. Turn on full details to add likes, comment count, exact publish date, category, description and tags.
You only pay for videos delivered. Channels, playlists or videos that don't exist, invalid links and rate-limited requests are reported as clear error rows and never charged.
Why this YouTube scraper doesn't stall or come back empty
- Reads the same JSON the YouTube website loads (no headless browser), so it is fast: a 100-result search takes about 4 seconds, and 150 playlist videos take under 2 seconds.
- Pages correctly. It follows the continuation that belongs to the list you asked for, not to sidebars or comment panels, which is the usual reason scrapers stop at 20 or 30 results.
- Filters you can trust. Search filters (upload date, length, sort) are applied by YouTube and then checked again against each result, and shelves of older "related" videos are skipped. In our live tests, 281 of 281 filtered results respected the filter.
- Retries with backoff and a fresh IP on rate limits, switches to residential IPs if needed, and makes a second, slower pass for anything still rate-limited.
- Clear errors:
NOT_FOUND(channel, playlist or video doesn't exist or is private),NO_DATA(for example, a channel with no Shorts tab),INVALID_INPUT(not a YouTube link),BLOCKED(rate-limited after all retries).
What you get
| Field | Description |
|---|---|
videoId, url, title | The video (Shorts get a /shorts/ link) |
channelName, channelHandle, channelId, channelUrl | Who published it |
channelSubscribers, channelVideoCountText, channelDescription | Channel sources only |
viewCount, viewCountText | Views as a number and as shown |
publishedText, publishedAtApprox | "3 weeks ago" as shown, and the date it implies |
durationSeconds, durationText, isShort, isLive, badges | Length and format |
position, sourceType, searchQuery, playlistTitle, playlistVideoCount, channelTab | Where the video was found |
likeCount, commentCount, publishDate, uploadDate, category, description, keywords | Full details mode |
descriptionSnippet, thumbnailUrl | Snippet (search results) and best thumbnail |
E-mail addresses in descriptions are replaced with [email removed]: we don't collect personal data.
How to scrape YouTube
- Add search keywords, channels (
@handle, channel URL or ID), playlists or single videos. You can mix them, or paste any YouTube links into Any YouTube URLs. - Set Max videos per search, playlist or channel tab (default 50).
- Optional: search Shorts only (Search type: Shorts), sort and filter searches by upload date or length, choose channel tabs (Videos, Shorts, Live), keep only videos newer than N days, or turn on Full video details.
- Click Start and download JSON, CSV or Excel, or use the API.
Input example
{"searchQueries": ["espresso machine review"],"channels": ["@mkbhd"],"channelContent": ["videos", "shorts"],"playlists": ["https://www.youtube.com/playlist?list=PLRqwX-V7Uu6ZiZxtDDRCi6uhfTH4FilpH"],"maxResultsPerSource": 100,"newerThanDays": 30}
Output example (search, full details)
{"status": "ok","sourceType": "search","searchQuery": "espresso machine review","position": 1,"videoId": "mAYbmcqPphc","url": "https://www.youtube.com/watch?v=mAYbmcqPphc","title": "The Fellow ES1 Espresso Machine Review","channelName": "James Hoffmann","channelHandle": "@jameshoffmann","viewCount": 804647,"likeCount": 13733,"commentCount": 1000,"publishDate": "2026-08-13T08:23:20-07:00","durationSeconds": 2056,"category": "Entertainment","isShort": false}
Monitoring channels for new uploads
Add the channels, set Only videos newer than (days) to 1 or 7 and schedule the Actor daily. Channel tabs are newest first, so the run stops at the first older video: you pay only for new uploads.
Switching from another YouTube Actor
Already calling streamers/youtube-scraper from code, a schedule or Make/Zapier? Change the Actor ID and keep your input JSON: this Actor accepts the same field names.
| Their input | Here |
|---|---|
searchQueries, startUrls | Same |
maxResults / maxResultsShorts / maxResultStreams | Same: sets results per source and which channel tabs are read (videos, shorts, streams); Shorts-only means a Shorts search |
sortingOrder (relevance, rating, date, views) | Same values (sortBy) |
dateFilter (hour, today, week, month, year) | Same values (uploadDate) |
lengthFilter (under4, between420, plus20) | Same values (duration) |
oldestPostDate (2026-01-01 or 7 days) | Same (newerThanDays) |
| Transcripts, subtitles, AI summaries, the feature-flag booleans | Ignored; use the ScrapeMole YouTube Transcript Scraper for transcripts |
Pricing
Pay per event, no start fee:
| Event | Free | Starter (Bronze) | Scale (Silver) | Business (Gold) |
|---|---|---|---|---|
video: video from a search, channel or playlist | $0.0015 | $0.001 | $0.0008 | $0.0006 |
video-details: video with full details | $0.003 | $0.002 | $0.0016 | $0.0012 |
1,000 videos from searches cost $1.00 on the Starter plan, about a quarter of the most-used YouTube scraper. Errors and duplicates are free. Set a maximum cost per run and the Actor stops cleanly at that budget.
Use cases
- Market and competitor research: what ranks for your keywords, who publishes it, how it performs.
- Influencer discovery: channels in a niche, with subscriber counts and recent views.
- Content monitoring: new uploads from a list of channels every day.
- Datasets for AI: titles, descriptions, tags and engagement for training or RAG. Pair with the ScrapeMole YouTube Transcript Scraper for the spoken text.
API, Python and AI agents
from apify_client import ApifyClientclient = ApifyClient("<APIFY_TOKEN>")run = client.actor("scrapemole/youtube-video-channel-scraper").call(run_input={"searchQueries": ["espresso machine review"], "maxResultsPerSource": 100})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item.get("viewCount"))
Works with schedules, webhooks, Make, Zapier, n8n and Apify's MCP server for AI agents.
Test results
Live tests on 8 Oct 2026 from a single server IP without any proxy: 10 searches with mixed sort, date and length filters, plus channels and videos discovered by those searches (not hand-picked) and 5 public playlists.
| Measure | Result |
|---|---|
| Runs finished OK | 40/40 (2 sessions of 20) |
| Searches, channels and playlists returning videos | 40/40 |
| Videos delivered from lists | 2,321 |
| Full-details lookups | 144/144 |
| Results respecting the requested filters | 694/694 |
| Likes / comment count found (details) | 72/72 / 71/72 (latest session) |
| Billing matched delivered results | Yes, every run |
| Not-found channel, playlist and video + invalid URL | All reported, nothing charged |
| Budget cap (7 of 50) | Stopped at exactly 7 |
FAQ
Do I need a YouTube API key? No key and no quota.
How many results can a search return? YouTube itself usually stops at around 500–600 results per query. Split big topics into several keywords.
Why is publishedText null for some rows? YouTube doesn't show an upload time for Shorts in channel lists. Use full details for exact dates.
Is this legal? The Actor collects publicly available video data and no personal data. You are responsible for how you use the data; check YouTube's terms and the laws that apply to you.
More from ScrapeMole
ScrapeMole builds focused, reliable scrapers for public data: pay per result, no start fees, clear error rows that are never charged, and a RUN_SUMMARY on every run.
- YouTube Transcript & Subtitles Scraper
- Google Trends Scraper
- YouTube Comments Scraper
- Telegram Channel Scraper
- Amazon Product & Search Scraper
Building an AI agent with its own wallet? The YouTube and Google Trends data is also sold per call over x402 (USDC on Base, no account): see scrapemole.pages.dev. Questions or a missing field? Open an issue on this Actor. ScrapeMole is the maker of this Actor.