YouTube Scraper (search, channels, Shorts, playlists, stats) avatar

YouTube Scraper (search, channels, Shorts, playlists, stats)

Pricing

from $0.60 / 1,000 video (list row)s

Go to Apify Store
YouTube Scraper (search, channels, Shorts, playlists, stats)

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

ScrapeMole

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a minute ago

Last modified

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

FieldDescription
videoId, url, titleThe video (Shorts get a /shorts/ link)
channelName, channelHandle, channelId, channelUrlWho published it
channelSubscribers, channelVideoCountText, channelDescriptionChannel sources only
viewCount, viewCountTextViews as a number and as shown
publishedText, publishedAtApprox"3 weeks ago" as shown, and the date it implies
durationSeconds, durationText, isShort, isLive, badgesLength and format
position, sourceType, searchQuery, playlistTitle, playlistVideoCount, channelTabWhere the video was found
likeCount, commentCount, publishDate, uploadDate, category, description, keywordsFull details mode
descriptionSnippet, thumbnailUrlSnippet (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

  1. 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.
  2. Set Max videos per search, playlist or channel tab (default 50).
  3. 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.
  4. 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 inputHere
searchQueries, startUrlsSame
maxResults / maxResultsShorts / maxResultStreamsSame: 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 booleansIgnored; use the ScrapeMole YouTube Transcript Scraper for transcripts

Pricing

Pay per event, no start fee:

EventFreeStarter (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 ApifyClient
client = 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.

MeasureResult
Runs finished OK40/40 (2 sessions of 20)
Searches, channels and playlists returning videos40/40
Videos delivered from lists2,321
Full-details lookups144/144
Results respecting the requested filters694/694
Likes / comment count found (details)72/72 / 71/72 (latest session)
Billing matched delivered resultsYes, every run
Not-found channel, playlist and video + invalid URLAll 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.

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.