YouTube Comments Scraper — Public Comments & Replies avatar

YouTube Comments Scraper — Public Comments & Replies

Under maintenance

Pricing

from $0.50 / 1,000 results

Go to Apify Store
YouTube Comments Scraper — Public Comments & Replies

YouTube Comments Scraper — Public Comments & Replies

Under maintenance

Under maintenance. Designed to export public YouTube comments and selected replies with text, authors, approximate likes, relative publication text, and available pinned/heart flags. Retrieval may currently fail.

Pricing

from $0.50 / 1,000 results

Rating

0.0

(0)

Developer

Coor Yu

Coor Yu

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 hours ago

Last modified

Categories

Share

UNDER MAINTENANCE: This Actor currently carries the UNDER_MAINTENANCE notice. Public comment retrieval may fail or return incomplete results. Do not depend on it for production collection until the maintainer confirms recovery. A successful build does not prove working YouTube extraction. Startup and Apify usage charges can still apply to failed or empty runs.

YouTube Comments Scraper is designed to export public YouTube top-level comments and selected reply threads, with comment text, author-channel information, likes, relative publication text, and available pinned/creator-heart flags. Use it for discussion research, subject to the warning above.

The implementation uses public YouTube page data and HTTP continuations with a bounded Python curl-cffi helper, not a browser or configured proxy. No YouTube login/Data API key is supplied; public client configuration and response cookies are acquired internally. Apify API authentication is separate and needs an Apify token.

Supported modes

  • Top comments: sortBy: "top" follows YouTube's exposed top-comment ordering.
  • Newest first: sortBy: "newest" requests its newest continuation; the video fails if YouTube does not expose one.
  • Replies: includeReplies: true fetches available reply continuations for the selected top-level comments, up to the separate per-parent bound.

Supported inputs are public YouTube watch, youtu.be, Shorts, embed, and live video URLs. This Actor does not discover channel videos, retrieve private discussions, or export live-chat messages.

Small test input

If you choose to test during maintenance, use a small request and inspect both the dataset and run logs:

{
"videoUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],
"commentsPerVideo": 5,
"includeReplies": false,
"repliesPerComment": 20,
"sortBy": "top",
"maxConcurrency": 2
}

Illustrative input, not verified live output. Save as input.json for an Apify API test:

curl -X POST \
'https://api.apify.com/v2/acts/funny_ground~youtube-comments-scraper/run-sync-get-dataset-items' \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H 'Content-Type: application/json' \
--data-binary @input.json

Calling this endpoint starts a billable run; the maintenance notice remains applicable.

Input fields

FieldDefaultScope and range
videoUrls[]Required nonempty array of public video URLs. Repeated identical trimmed URL strings are removed.
commentsPerVideo100Top-level maximum per video; 0–100000. 0 removes the requested row bound, not pagination or access limits.
includeRepliesfalseRetrieve reply threads only for selected top-level comments with exposed reply tokens.
repliesPerComment20Reply maximum per selected parent; 0–10000. 0 removes the requested reply-row bound.
sortBy"top""top" or "newest".
maxConcurrency6Global concurrent HTTP requests across videos/replies; 1–20.
maxRequestRetries2Request retries; 0–5.
requestTimeoutSecs20Per-request timeout; 5–120 seconds.

Both top-level and reply feeds have a 10,000-page safety bound and stop on repeated continuation tokens. Requested counts are upper bounds, not promises of complete discussions. Reply rows are additional to commentsPerVideo.

Developer Free-plan preview: at most 50 saved rows globally per run, including replies. Only the first 50 input URLs are used, and requested top-level/reply bounds are each capped at 50; on this plan 0 is also converted to 50. Top-level rows are placed before replies in a video's output, so the global preview cap can leave no room for replies. Paid plans remove this developer cap, not source or pagination constraints. FREE-tier events are not zero-priced.

Dataset and billing unit

Each saved row represents one top-level comment or one reply. Fields include commentId, videoId, videoUrl, text, publishedTimeText, likeCount, likeCountText, replyCount, isReply, optional parentCommentId, depth, isPinned, isHearted, author, and collection time scrapedAt. The nested author object can contain channelId, name, avatarUrl, verified, and isCreator.

  • publishedTimeText is YouTube's localized/relative text, not an exact publication timestamp. scrapedAt is the collection timestamp.
  • Abbreviated likes and replies are parsed into approximate numbers. Missing/unparseable count text becomes 0; it should not be interpreted as an independently verified zero. likeCountText preserves the original displayed like text.
  • Badge/heart booleans depend on available source fields; false is not independent proof that a badge or heart is absent.
  • Reply rows use depth: 1; top-level comments use depth: 0. This is not a reconstruction of arbitrary nested conversation depth.

IDs are deduplicated within a video's top-level feed and within each reply feed. There is no run-wide video-ID deduplication across different URL forms of the same video, so watch and short-link aliases can cause repeat collection and result charges.

Billing uses the configured apify-default-dataset-item event for saved dataset rows, not HTTP requests or a custom thread event. A video's rows are pushed only after its top-level and optional reply collection finishes. A pagination or reply-fetch exception can therefore discard that video's earlier collected rows; other completed videos may still be saved. Unsaved rows are not result events, but startup/platform usage remains payable.

Current pricing

Apify planPer saved comment/reply eventPer 1,000 events
FREE$0.0025$2.50
BRONZE, SILVER, GOLD, PLATINUM, DIAMOND$0.0005$0.50

apify-actor-start costs $0.005 per GB of allocated memory, minimum one event per run, not one universal fixed startup fee. Apify compute, transfer, and storage are separately billed to the running user, including possible failed/empty-run costs. No downstream Actor or separate per-request charge event is configured.

See the Pricing tab for current effective charges. A maximum event budget does not guarantee a full export or cover all platform usage.

Reliability, availability, and FAQs

Is the Actor currently confirmed operational? No. It is under maintenance; this documentation describes implemented behavior, not a live-service guarantee. The run fails when no video produces valid comment records, while some video failures can coexist with saved output from others. Inspect saved rows rather than relying solely on logged counts.

Do zero limits retrieve every comment? No guarantee. Public availability, 10,000-page bounds, continuation changes, request errors, Free-plan policy, and budgets still apply. Replies are limited to selected parents with reachable reply continuations.

Does no YouTube API key mean free or unauthenticated Apify access? No. You do not provide YouTube credentials, but Apify API runs need an Apify token and incur event/start/platform costs.

Deleted, held-for-review, private, members-only, disabled, restricted, or otherwise inaccessible comments may not be returned. The Actor does not bypass authentication or access controls. Collect and process public discussion data only for lawful purposes and in accordance with platform terms and privacy requirements.

Complementary Actors

  • YouTube Scraper — channel videos, Shorts, playlists, searches, and video metadata, rather than comment text.
  • YouTube Influencer Finder — public creator discovery rather than comment-thread collection.