YouTube Scraper avatar

YouTube Scraper

Pricing

Pay per usage

Go to Apify Store
YouTube Scraper

YouTube Scraper

Search YouTube by keyword and collect video metadata, comments, and threaded replies. No YouTube API key required. Export structured results to JSON, CSV, or Excel.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Hapy Co

Hapy Co

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Share

Search YouTube by keyword and collect video metadata, comments, and threaded replies. Start with search queries, video URLs, or video IDs. No YouTube Data API key or YouTube login is required.

Use the results for brand monitoring, customer feedback research, competitor research, and content analysis. Search covers multiple channels, including third-party channels.

Quick start

  1. Enter a search query or video URLs.
  2. Set video, comment, and reply limits.
  3. Keep residential proxies enabled for larger runs.
  4. Start the Actor.
  5. Open the results or export them as JSON, CSV, or Excel.

Start with a small run:

{
"searchQueries": ["wireless headphones review"],
"maxResultsPerSearch": 5,
"maxVideos": 5,
"maxComments": 20,
"maxReplies": 10,
"maxItems": 200,
"maxRequests": 300,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

For known videos, replace searchQueries with videoUrls. Watch URLs, Shorts URLs, youtu.be URLs, and 11-character video IDs are supported. English, Arabic, and other Unicode queries are supported. Query language does not filter comment language.

Results

The default dataset contains two record types:

TypeContents
videoID, URL, title, description, channel details, available dates, duration, engagement, thumbnails, and matching queries.
commentID, text, author details, engagement, source publication text, and video details. Replies also have isReply: true and parentCommentId.

Use the Overview, Videos, Comments, and Replies views to select result columns. These views do not filter rows. Use type and isReply to identify record types. Optional values can be null. Missing dates and counts are not invented. publishedTimeText preserves source text such as “2 weeks ago”; it is not an exact timestamp.

The key-value store contains:

  • OUTPUT: final collection report, limits, request counts, and errors.
  • PROGRESS: outcomes saved after each video.
  • SEARCH: queries and discovered video IDs when keyword search is used.
  • STATE: search, completed videos, and cumulative request limits used when the same run resumes.
  • RAW_*: website responses saved before parsing.

A stopped run can have partial dataset rows and no final report. Check run status and the report before treating collection as complete.

Limits and coverage

  • Search uses YouTube's video search index. It does not guarantee every spoken keyword mention.
  • Transcripts, captions, channel enumeration, and media downloads are not supported.
  • Enter up to 25 queries or 1,000 known video URLs per input. Search discovery has no fixed video count ceiling.
  • Set a count limit to 0 for no count limit: maxVideos, maxResultsPerSearch, maxItems, maxComments, maxReplies, and maxRequests. Collection stops when results end or the two-hour run limit is reached. Checkpoints are saved before shutdown.
  • Top-level comments and replies have separate per-video limits. maxReplies is a total per video, not per thread. Disable includeCommentReplies to skip replies.
  • Set commentsSortBy to newest or top. Collection stops at the configured limits.
  • Deleted, private, restricted, or unavailable content may fail to load. YouTube can block requests or change its website.
  • Larger direct runs can encounter IP blocks. Residential proxies are recommended.
  • Resurrect the same interrupted run to resume from its checkpoints. Completed videos are skipped, saved dataset rows are deduplicated, and the request and item limits still apply. A new run starts a new collection.
  • To split a large collection, set maxVideosPerBatch. A paused segment has resumeAvailable: true in OUTPUT and a failed run status to keep incomplete collection visible. Resurrect it to collect the next segment. The Actor does not automatically start more paid segments.
  • Empty comments pages are recorded as unavailable. Individual video errors appear in OUTPUT as warnings. Fatal errors, paused segments, and runs where every attempted collection fails retain a failed status.
  • Use 1 GB for larger runs. The default timeout is two hours. More memory does not increase this collector's concurrency.

API and scheduling

Use the API tab for authenticated request examples. Run the Actor by name, hapyco/youtube-scraper, or its Actor ID. Apify tasks and schedules can repeat the configured input. Keep API credentials in authorization headers.

Pricing

This Actor has no additional Actor fee, per-result fee, or monthly rental. You pay Apify's standard resource charges, including compute, proxies, storage, and data transfer. Residential proxy traffic can be the main cost. The Pricing tab is the source of truth for current charges. Start with a small collection and limit videos, comments, replies, and requests to control usage.

Support

Use the Issues tab. Include the run ID, expected result, and observed result. Remove credentials and private information before sharing examples.