TikTok Comments Scraper — Threads, Replies, Sentiment-Ready
Under maintenancePricing
from $0.10 / 1,000 results
TikTok Comments Scraper — Threads, Replies, Sentiment-Ready
Under maintenanceExtract every comment from any TikTok video, including reply threads, author info, like counts, and timestamps. Pay-per-result $0.50 / 1K comments — the cheapest in the category. Sentiment-analysis and spam-detection ready. Callable as a tool via Apify MCP Server
Pricing
from $0.10 / 1,000 results
Rating
0.0
(0)
Developer
Coor Yu
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share
TikTok Comments Scraper · Apify Actor
Extract every comment from any TikTok video — including reply threads, author info, like counts, pinned status, and timestamps. Sentiment-analysis and spam-detection ready.
$0.50 / 1,000 comments — cheapest in the category (head actor: $0.50–$0.70 / 1K). Pay-per-result, failed requests are free.
中文说明
输入一个或多个 TikTok 视频链接,抓取每条视频的全部评论(含回复线程、作者信息、点赞数、置顶状态、时间戳)。
工作原理(可靠的签名翻页):用真实浏览器打开视频页,让 TikTok 自身先成功发出一次 API 请求以预热 msToken/会话;随后捕获或构造 comment/list 请求模板,每页只换 cursor,用页面内置签名函数 byted_acrawler.frontierSign 重新签名(X-Bogus),跟随 has_more 翻页。回复线程通过把模板改写为 comment/list/reply 接口(换 item_id+comment_id)同样签名翻页。默认使用 Apify Proxy DEFAULT 非住宅代理池,不会自动切到住宅代理;如果用户手动选择 RESIDENTIAL,则尊重该输入。
输入:videoUrls(视频链接,必填)、commentsPerVideo(每视频最多评论数,0=全部)、includeReplies(是否抓回复)、repliesPerComment、proxy(默认 Apify Proxy DEFAULT 非住宅池)、maxConcurrency、maxRequestRetries。
输出:每行一条评论(顶层或回复),含 commentId/text/author/diggCount/replyCount/isReply/parentCommentId/isPinned/createTimeISO 等。
计费:按结果 $0.50 / 1000 条;失败请求不收费。
Why this actor
| Feature | This actor | Typical alternatives |
|---|---|---|
| Extraction surface | Signed API pagination — re-signs each /api/comment/list/* request with TikTok's own in-page signer | Reverse-engineering rotating signatures every week |
| Reply threads | Yes (configurable depth + per-thread cap) | Often top-level only |
| Output fields | 18 (incl. isAuthorLiked, isPinned, mentionedUsers, depth) | 8–12 |
| MCP-compatible | Yes — discoverable via mcp.apify.com | Most are not |
| Pricing | $0.50 / 1K comments | $0.50–$0.70 / 1K |
| Proxy | Non-residential DEFAULT proxy by default; explicit RESIDENTIAL is respected | Often residential-only or datacenter-only |
Input
{"videoUrls": ["https://www.tiktok.com/@khaby.lame/video/7321234567890123456","https://www.tiktok.com/@charlidamelio/video/7345678901234567890"],"commentsPerVideo": 200,"includeReplies": true,"repliesPerComment": 20,"proxy": {"useApifyProxy": true},"maxConcurrency": 2,"maxRequestRetries": 2}
Full schema → ./.actor/input_schema.json.
Output (one row per comment)
{"commentId": "7398234567890","videoId": "7321234567890123456","videoUrl": "https://www.tiktok.com/@khaby.lame/video/7321234567890123456","text": "lmao 💀 you nailed it","createTimeISO": "2026-05-12T15:01:22.000Z","isReply": false,"parentCommentId": null,"depth": 0,"diggCount": 4231,"replyCount": 12,"isAuthorLiked": true,"isPinned": false,"author": {"id": "6912345678","uniqueId": "fan_name","nickname": "Fan Name","verified": false,"avatar": "https://...","isVideoAuthor": false},"mentionedUsers": [],"scrapedAt": "2026-05-19T07:34:18.012Z"}
Replies appear in the same dataset with isReply=true and parentCommentId populated.
Full schema → ./.actor/dataset_schema.json.
Pricing — Pay per result
| Event | Charge |
|---|---|
comment-scraped | $0.50 / 1,000 comments (top-level OR reply) |
Failed requests and retries are free.
How it works (extraction strategy)
- Open the video page with Playwright using fingerprint randomisation + Apify Proxy DEFAULT non-residential pool by default.
- Sniff XHR responses that match
/api/comment/list/*— these are TikTok's own signed requests, so we never need to computeX-Bogus/msTokenourselves. - Scroll briefly or build a synthetic comment template when the page never fires its own comment request.
- (Optional) click "View replies" affordances so reply-thread XHRs fire too.
- De-dup → trim to limits → push → charge.
This is the same architecture used by the top-rated TikTok scrapers — robust to weekly signature rotations, since the page does the signing for us.
Local dev & deploy
npm installmkdir -p storage/key_value_stores/defaultcat > storage/key_value_stores/default/INPUT.json <<'JSON'{"videoUrls": ["https://www.tiktok.com/@khaby.lame/video/7321234567890123456"],"commentsPerVideo": 50}JSONnpm start
Push to Apify:
npm install -g apify-cliapify logincd apify-tiktok-comments-scraperapify push
After upload, set monetization to Pay per result → bind comment-scraped event → $0.50 / 1K.
Using this actor via MCP (Claude / Cursor / ChatGPT)
The actor is auto-exposed as a tool by Apify MCP Server at https://mcp.apify.com/.
Cursor / Claude Desktop config
{"mcpServers": {"apify": {"url": "https://mcp.apify.com/","transport": "streamable-http","headers": {"Authorization": "Bearer apify_api_xxxxxxxx"}}}}
Then, in chat:
"Use the tiktok-comments-scraper actor to grab the 200 most-liked comments on https://www.tiktok.com/@khaby.lame/video/7321234567890123456 — include replies."
Apify MCP Server reads the input_schema.json to build the tool definition and the
dataset_schema.json to advertise the output shape to the LLM, so the agent knows
what fields to expect back.
License & disclaimer
MIT. Scrape only public data and respect TikTok's terms. You are responsible for compliance with applicable laws and platform policies.