YouTube Comments Scraper | Pay Per Result
Pricing
$1.50 / 1,000 results
YouTube Comments Scraper | Pay Per Result
Get a fast and reliable scraper that extracts details like CID, type, published time, comments, author, page URL, and more in seconds. Streamline your workflow, save time, and efficiently gather structured data for analysis, research, or business insights with ease and accuracy.
Pricing
$1.50 / 1,000 results
Rating
5.0
(1)
Developer

Alpha Scraper
Actor stats
0
Bookmarked
5
Total users
3
Monthly active users
20 hours ago
Last modified
Categories
Share
🎥 YouTube Comments Scraper
Quickly extract structured comment data from one or more YouTube videos — including comment text, author info, timestamps, votes, and raw fields.
Built to run as an Apify actor. This README shows a summary, inputs, outputs, examples, troubleshooting tips and proxy recommendations. 🔧
✨ Summary
This actor scrapes comments from YouTube video URLs and returns structured JSON objects per video, including:
- 💬 Comments (text, id, author, replies, likes/votes, timestamps)
- 👤 Author info (author name, author id, author url, avatar if available)
- 🧾 Video metadata (video id, video url, title, best-effort commentsCount)
- 📦 Raw payload — the original raw comment object is preserved for every comment so you don’t lose any fields.
Key points:
- Input: one or more YouTube video URLs (
startUrls). - Optional:
maxCommentsto limit how many comments per video are scraped. - Optional:
getAllCommentsto ignoremaxCommentsand fetch all available comments. - Optional:
sortBy—top(highest votes first) ornewest(most recent first).
🚀 Highlights
- ⚡ Fast, structured output — one JSON object per video run.
- 🧩 Preserves full
rawcomment object for custom fields. - 🎯 Exact
maxCommentssupport (whengetAllCommentsisfalse) andgetAllCommentstoggle. - 🌐 Proxy-aware (Apify Proxy recommended for stability) — use RESIDENTIAL for best results.
- 🔁 Supports sorting by
topornewest.
🛠️ Example Input
{"startUrls": ["https://www.youtube.com/watch?v=wT4HcYAeV5U","https://www.youtube.com/watch?v=H6l0q4l2NLo"],"maxComments": 100,"sortBy": "top",}
📤 Output
For every video the actor writes results both to the Apify dataset and to container files:
output_<videoId>.json— full JSON object for the video (includingcommentsarray).comments_<videoId>.jsonl— newline-delimited JSON with one comment per line (good for streaming).- Apify dataset entry for each video — downloadable from the Apify Console. ☁️
Example output (one video object)
{"videoUrl": "https://www.youtube.com/watch?v=wT4HcYAeV5U","videoId": "wT4HcYAeV5U","title": "YouTube","commentsCount": null,"comments": [{"cid": "Ugxl_IUyS2PaN9t-_wV4AaABAg","type": "comment","publishedTimeText": "7 hours ago","publishedTimeTs": 1759729079.617027,"comment": "Madhubanti + Rashmika = 🔥","author": "@maddockfilmsindia","authorId": null,"authorUrl": null,"authorThumbnail": null,"replyCount": 7,"voteCount": 5,"isHearted": false,"isEdited": false,"raw": {"cid": "Ugxl_IUyS2PaN9t-_wV4AaABAg","text": "Madhubanti + Rashmika = 🔥","time": "7 hours ago","author": "@maddockfilmsindia","channel": "UCGgi8DSEirlGCQ3B3bO5BsQ","votes": "5","replies": "7","photo": "https://yt3.ggpht.com/bhYAlBYCO9k-CfeGL42c3db-vBGi-3vLwQFgXWrQgHAstpaqE5LxHdIHDYdJ0RVje0-v5j7RLQ=s88-c-k-c0x00ffffff-no-rj","heart": false,"reply": false,"time_parsed": 1759729079.616943},"videoId": "H6l0q4l2NLo","pageUrl": "https://www.youtube.com/watch?v=H6l0q4l2NLo"},{"cid": "UgxR7iZmrx-cvVYyIZJ4AaABAg","type": "comment","publishedTimeText": "10 hours ago","publishedTimeTs": 1759718280.088529,"comment": "This song honestly has the soul of Aaj Ki Raat.\nFeels like Sachin–Jigar were asked to recreate that same vibe — and they pulled it off.\nJust try singing Aaj Ki Raat over this track and you’ll get exactly what I mean","author": "@saho_x","authorId": null,"authorUrl": null,"authorThumbnail": null,"replyCount": 1,"voteCount": 4,"isHearted": false,"isEdited": false,"raw": {"cid": "UgxR7iZmrx-cvVYyIZJ4AaABAg","text": "This song honestly has the soul of Aaj Ki Raat.\nFeels like Sachin–Jigar were asked to recreate that same vibe — and they pulled it off.\nJust try singing Aaj Ki Raat over this track and you’ll get exactly what I mean","time": "10 hours ago","author": "@saho_x","channel": "UCnVC00Vv0foM0EKkz6Y1iWQ","votes": "4","replies": "1","photo": "https://yt3.ggpht.com/TUTguFWKoy3k8SUTycBbxzhJ3T7B6enA0MGQqsE77VSCl8YeL4p8dK9iZu1QZ5gqGj_IWqN3=s88-c-k-c0x00ffffff-no-rj","heart": false,"reply": false,"time_parsed": 1759718280.088388},"videoId": "H6l0q4l2NLo","pageUrl": "https://www.youtube.com/watch?v=H6l0q4l2NLo"},{"cid": "UgyDoXT2Qt9yi8s_K0V4AaABAg","type": "comment","publishedTimeText": "16 hours ago","publishedTimeTs": 1759696680.562509,"comment": "Thama Massive Hit Hai 💯🔥","author": "@KAMALBOLTAHAI","authorId": null,"authorUrl": null,"authorThumbnail": null,"replyCount": 0,"voteCount": 2,"isHearted": false,"isEdited": false,"raw": {"cid": "UgyDoXT2Qt9yi8s_K0V4AaABAg","text": "Thama Massive Hit Hai 💯🔥","time": "16 hours ago","author": "@KAMALBOLTAHAI","channel": "UC7QK8aH2kx8kV3ZDb78gudg","votes": "2","replies": "","photo": "https://yt3.ggpht.com/-dSC3L4wVQlPFXaE1DQ0pa861J_1gJmKr0whQ_OBAVuC_du6rp3UNXtb9mIImMk2akwNfj1-=s88-c-k-c0x00ffffff-no-rj","heart": false,"reply": false,"time_parsed": 1759696680.562357},"videoId": "H6l0q4l2NLo","pageUrl": "https://www.youtube.com/watch?v=H6l0q4l2NLo"},{"cid": "UgxjmCCpexYiRfqxtOZ4AaABAg","type": "comment","publishedTimeText": "52 minutes ago","publishedTimeTs": 1759751159.068628,"comment": "🗿AAJ KI RAAT 2.0✅","author": "@SANJAY_GALAXY_369","authorId": null,"authorUrl": null,"authorThumbnail": null,"replyCount": 0,"voteCount": 1,"isHearted": false,"isEdited": false,"raw": {"cid": "UgxjmCCpexYiRfqxtOZ4AaABAg","text": "🗿AAJ KI RAAT 2.0✅","time": "52 minutes ago","author": "@SANJAY_GALAXY_369","channel": "UC1aOBn-22LWDKOXIEjWpaBQ","votes": "1","replies": "","photo": "https://yt3.ggpht.com/PgPHT8B88ib2qteQGAaQe_zQWPs5D4hQHM6xlyBijbL0paF_AUO6VPdj0eH49QCT5o_5JiVa=s88-c-k-c0x00ffffff-no-rj","heart": false,"reply": false,"time_parsed": 1759751159.068529},"videoId": "H6l0q4l2NLo","pageUrl": "https://www.youtube.com/watch?v=H6l0q4l2NLo"},{"cid": "UgxieB4nLFkp3lMGhY94AaABAg","type": "comment","publishedTimeText": "7 hours ago","publishedTimeTs": 1759729079.616322,"comment": "Aaj Ki Raat 2.0 ❤","author": "@maddockfilmsindia","authorId": null,"authorUrl": null,"authorThumbnail": null,"replyCount": 0,"voteCount": 1,"isHearted": false,"isEdited": false,"raw": {"cid": "UgxieB4nLFkp3lMGhY94AaABAg","text": "Aaj Ki Raat 2.0 ❤","time": "7 hours ago","author": "@maddockfilmsindia","channel": "UCGgi8DSEirlGCQ3B3bO5BsQ","votes": "1","replies": "","photo": "https://yt3.ggpht.com/bhYAlBYCO9k-CfeGL42c3db-vBGi-3vLwQFgXWrQgHAstpaqE5LxHdIHDYdJ0RVje0-v5j7RLQ=s88-c-k-c0x00ffffff-no-rj","heart": false,"reply": false,"time_parsed": 1759729079.616239},"videoId": "H6l0q4l2NLo","pageUrl": "https://www.youtube.com/watch?v=H6l0q4l2NLo"},]"scrapedCount": 1}
📑 Typical fields
| Field | Description |
|---|---|
videoUrl | Input video URL |
videoId | YouTube video ID |
title | Best-effort page title (if available) |
commentsCount | Best-effort comment count (may be null) |
comments | Array of comment objects |
comments[].cid | Comment unique id |
comments[].comment | Comment text |
comments[].author | Author display name |
comments[].authorId | Author channel id (if available) |
comments[].authorUrl | Author channel URL (if available) |
comments[].authorThumbnail | Author avatar URL (if available) |
comments[].publishedTimeText | Human readable time (e.g. "2 days ago") |
comments[].publishedTimeTs | Parsed timestamp (when parseable) |
comments[].replyCount | Number of replies |
comments[].voteCount | Likes / votes count (if available) |
comments[].isHearted | Whether channel owner hearted the comment |
comments[].isEdited | Whether the commenter edited the comment |
comments[].raw | Full raw object returned by underlying parser |
🧩 Troubleshooting
| Issue | Possible Cause | Fix / Tip |
|---|---|---|
| Empty dataset | Wrong video URL or comments disabled | Verify URLs and check video has comments; try another video. |
| Fewer comments than expected | maxComments limit or generator yielded fewer | Set getAllComments=true or increase maxComments |
commentsCount is null | Not present in page HTML | Use comments[].raw to inspect raw payload for count |
| Partial metadata | Fields hidden or loaded dynamically | Check raw field; consider retries with proxy |
| Rate limiting / 429 errors | Too many requests without proxy | Use Apify Proxy RESIDENTIAL or reduce concurrency |