# YouTube Comments Scraper: Likes, Dates and Filters

> YouTube Comments Scraper is an Apify actor (API) by CheapAPI Labs. Comments with likes, reply counts and dates, filtered by keyword or date range. It costs $0.35 per 1,000 comments on the Apify Free plan and $0.21 on Gold, billed through your Apify account with no API key. Compared with the most used YouTube comments actor (about 24,000 users): 5,000 comments from 50 videos on the Free plan costs $1.75 here and $10.00 there (Apify Store listing prices, checked September 2026). Apify platform usage is billed on top here. One smaller actor is cheaper for plain exports: $1.25 on Free and $1.00 on Gold.

- Page: https://cheapapilabs.com/actors/youtube-comments-scraper/
- Run on Apify: https://apify.com/cheapapi/youtube-comments-scraper
- Publisher: CheapAPI Labs (Apify username cheapapi)
- Main price: $0.35 per 1,000 comments on Free, $0.21 on Gold
- Our prices updated: 2026-10-30

## Prices per event (USD)

| Event | Free | Bronze | Silver | Gold |
|---|---:|---:|---:|---:|
| Comment | $0.00035 | $0.00035 | $0.00035 | $0.00021 |
| Page checked (minimum per page) | $0.0018 | $0.0018 | $0.0018 | $0.0018 |

Platinum and Diamond pay the Gold price. Apify platform usage: billed separately by Apify.

## Call it from code

```bash
curl -X POST "https://api.apify.com/v2/acts/cheapapi~youtube-comments-scraper/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \
  -d '{"videos":["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],"maxCommentsPerVideo":100}'
```

## Example output row

```json
{
  "id": "bc8ba623a3076ba9",
  "input": "https://youtu.be/vQXvyV0zIP4",
  "videoId": "vQXvyV0zIP4",
  "videoUrl": "https://www.youtube.com/watch?v=vQXvyV0zIP4",
  "videoTitle": "The first-ever BMW M5 CS.",
  "videoCommentsCount": 4958,
  "position": 4,
  "text": "And after 2 years, this is still my favorite car commercial",
  "likesCount": 1500,
  "replyCount": 10,
  "publishedAt": "2023-09-26T13:15:09.000Z",
  "publishedTimeText": "3 years ago",
  "authorName": "@Chaos7554",
  "authorHandle": "@Chaos7554",
  "authorChannelId": null,
  "authorChannelUrl": "https://www.youtube.com/@Chaos7554",
  "authorAvatarUrl": "https://yt3.ggpht.com/fPkVn5a60cUVN9e62d_L-nj26nnGVa6MgB9G_UmDZyuEMsJ6ajFwaWxemjbOO9PF-3kswUAB=s88-c-k-c0x00ffffff-no-rj",
  "country": "US",
  "language": "en",
  "scrapedAt": "2026-09-29T09:12:41.508Z"
}
```

## Fields

One row per top level comment:

| Field | Type | Example |
|---|---|---|
| `id` | string | `bc8ba623a3076ba9` (stable comment ID: same comment, same `id` in every run) |
| `input` | string | `https://youtu.be/vQXvyV0zIP4` (as you entered it) |
| `videoId` | string | `vQXvyV0zIP4` |
| `videoUrl` | string | `https://www.youtube.com/watch?v=vQXvyV0zIP4` |
| `videoTitle` | string | `The first-ever BMW M5 CS.` |
| `videoCommentsCount` | integer | `4958` (total comments on the video) |
| `position` | integer | `4` (rank in YouTube's "Top comments") |
| `text` | string | `And after 2 years, this is still my favorite car commercial` |
| `likesCount` | integer | `1500` |
| `replyCount` | integer | `10` (number of replies; reply text is not collected) |
| `publishedAt` | string (ISO date) | `2023-09-26T13:15:09.000Z` (approximate, see FAQ) |
| `publishedTimeText` | string | `3 years ago` (as YouTube shows it) |
| `country` | string | `US` |
| `language` | string | `en` |
| `scrapedAt` | string (ISO date) | `2026-09-29T09:12:41.508Z` |
| `authorName` * | string | `@Chaos7554` |
| `authorHandle` * | string | `@Chaos7554` |
| `authorChannelId` * | string or null | usually `null`, YouTube mostly links commenters by @handle; `UC…` only when the link contains the ID. Use `authorHandle` / `authorChannelUrl` to identify commenters |
| `authorChannelUrl` * | string | `https://www.youtube.com/@Chaos7554` |
| `authorAvatarUrl` * | string | `https://yt3.ggpht.com/…` |

\* Only when **Include commenter details (personal data)** is on.

## Compared with alternatives

Typical run: **50 videos × 100 comments = 5,000 comments**, all Actor fees included (start and per query fees too). For this Actor, Apify platform usage is billed separately by Apify on top of the prices shown ("+ usage"; at the default 256 MB usually a few tenths of a cent to a few cents per run).

| Alternative (Apify Store) | Free plan | Gold plan | Reply text | Built in filters |
|---|---|---|---|---|
| Most used YouTube comments Actor (~24,000 users), $2.00 / 1,000 on Free, $0.90 on Gold | $10.00 | $4.50 (Platinum $3.00, Diamond $1.50) | ✗ no replies option in its input (reply count; its sample output has a `replyToCid` field and a creator heart flag) | date |
| Second most used (~3,100 users), $0.001 per video (includes ~20 comments) + $0.0005 per further comment | $2.05 | $2.05 | ✓ (advertised option, reply threads billed as extra queries) | ✗ (sort only) |
| Third (~730 users), $2.00 / 1,000 on Free ($1.70 on Gold) + $0.0025 per video + $0.005 per run | ≈ $10.13 | ≈ $8.62 | ✗ (its FAQ: first level comments only) | date |
| Fourth (~570 users), $4.00 / 1,000 on Free, $0.40 on paid plans + $0.01 per run | $20.01 | $2.01 | ✓ (option, about 10 replies per comment) | ✗ |
| Fifth (~460 users), $0.25 / 1,000 ($0.20 on paid plans) + $0.0005 per run | **$1.25** | **$1.00** | ✗ not advertised (reply count) | ✗ |
| Tiered Actor with reply threads (~185 users), $0.35 / 1,000 on Free, $0.24 on Gold | $1.75 | $1.20 | ✓ (option) | ✗ |
| Actor sold "with replies" (~140 users), $0.40 / 1,000 + $0.005 per run | $2.01 | $2.01 | ✓ | date |
| **This Actor** | $1.75 + usage | $1.05 + usage | ✗ (reply count only) | likes, replies, keywords, date range, last N days, only new |

Prices from public Apify Store listings, checked September 2026 (per video fees counted once per video; with replies switched on, the alternatives that offer them charge for the extra reply rows or threads too). On the most used Actor the Platinum and Diamond prices are lower than its Gold price; our Platinum and Diamond price equals our Gold price ($1.05 here), still below both.

- **Reply text is not available here** (see the note at the top). The data source returns top level comments with a reply count only and has no option to fetch reply threads. At least four of the alternatives above offer replies (as an option or by default); the most used one lists a reply count and a creator heart flag but no option to collect replies, choose one of them if replies matter to you. The Actor with reply threads at ~185 users costs the same as this one on Free ($1.75) and a little more on Gold ($1.20 vs. $1.05).
- **One alternative is cheaper** for plain exports: $1.25 vs. $1.75 on the Free plan and $1.00 vs. $1.05 on Gold (plus our platform usage). What you get here in addition: likes and reply counts as real numbers (that Actor's sample output has text like `"5.3K"`), filters that you only pay for when a comment passes, an "only new since last run" mode, a stable comment `id`, and commenter data off by default. A few very new listings with only a handful of users advertise even lower prices.

## Not included

- **Reply text**, only `replyCount` (see above).
- **More than 700 comments per video**, or the full comment history of very busy videos. Filters, sorting and "only new" work on the top comments collected.
- **Playlist and channel links**, paste the video links. To collect video links for a topic or channel name, use [YouTube Search Scraper](https://cheapapilabs.com/actors/youtube-search-scraper/).
- **Video statistics** (views, duration, channel) beyond the title and comment count, [YouTube Search Scraper](https://cheapapilabs.com/actors/youtube-search-scraper/) returns those for search results.
- **Transcripts / subtitles**, use [YouTube Transcript Scraper](https://cheapapilabs.com/actors/youtube-transcript-scraper/).
- **Sentiment scores or translations**, export the text and run your own model; the output is ready for it.

## Limits

- Up to 700 top level comments per video per run, in YouTube's "Top comments" order; reply texts are not collected (only their count).
- Playlist and channel links are not expanded; paste video links.
- Publish dates, and therefore date filters, are approximate (derived from YouTube's relative dates).
- Sorting and filters apply to the collected comments, not to all comments of the video.
- Private, deleted, age restricted or comment disabled videos return no comments (no comment charges; one `page-checked` for the page that was checked).
- "Only new comments" compares with the comments delivered before, within the top comments collected per run.
- Commenter channel IDs are only present when YouTube links to the channel by ID; most links use the @handle.

## FAQ

**Is there a limit on the Apify Free plan?**
Yes: up to $0.25 of this Actor's results per calendar month, enough to try it. Apify pays developers nothing for Free plan usage while our data costs are real, so this keeps the Actor sustainable. Runs that reach the allowance stop cleanly and keep everything collected so far; the allowance resets on the 1st of the month. Any paid Apify plan has no limit.

**Is it legal to scrape YouTube comments?**
The Actor collects publicly visible comments only. Comments and commenter details can be personal data, which is why commenter fields are off by default. Make sure your use complies with GDPR, CCPA and other laws that apply to you, and with YouTube's terms.

**Is Apify platform usage included?**
No. Apify platform usage (compute) is billed separately by Apify, on top of the event fees. At the default 256 MB memory a small run typically uses about $0.001 to $0.005; long runs over many videos use more. Each run's usage is shown in Apify Console.

**How fresh is the data?**
Every run collects the comments live from YouTube at the time of the run, nothing is served from an old cache.

**Why did I get fewer results than "Max comments per video"?**
The video has fewer comments, comments are turned off, or your filters (likes, replies, keywords, dates) removed some. Filters work on the collected top comments; raise the maximum to find more matches. You're charged for comments delivered, plus the page minimum for pages that yielded too few (see Pricing).

**Are replies included?**
No. Each row is a top level comment with its `replyCount`; the data source has no option for reply threads. See Compared with alternatives for Actors that include replies.

**Can I scrape many videos at once?**
Yes, paste as many links as you like (one per line, or a whole spreadsheet column via **Bulk edit**). Videos are processed in batches of 50; duplicates are skipped.

**Can I paste a playlist or channel link?**
Not yet. Such links are skipped with a clear reason in the log and `RUN_SUMMARY`; paste the individual video links instead.

**How do I get only recent comments?**
Set **Only comments from the last N days** (`publishedWithinDays`), e.g. `30`. It is relative to each run, so it works well on schedules. To get only comments you have not received before, use `onlyNewComments`.

**How exact is `publishedAt`?**
YouTube only shows relative dates ("5 years ago"), so `publishedAt` is an estimate; the original text is in `publishedTimeText`.

**Why was I charged `page-checked`?**
A page of comments was fetched for a video but delivered too few comments to pay for itself, because the video has only a handful of comments or none, returned no data, or your filters / "only new comments" removed most of them. You pay $0.0018 per page not covered by the comments delivered (6 per page on Free, 9 on Gold). `RUN_SUMMARY` shows `pagesChecked`. To keep it low with filters, use a lower **Max comments per video** so fewer pages are checked.

**How do I control my budget?**
Set **Maximum cost per run** in the run options; the Actor never charges more and stops early when it's reached (noted in the log and `RUN_SUMMARY`).

**Which export formats are available?**
JSON, CSV, Excel, XML, HTML and RSS from the Output tab or the API.

**I found a problem or need a feature, who do I contact?**
Open an issue on the Actor's **Issues** tab in Apify Console; include the run link so we can help quickly.
