How to scrape TikTok Comments
TikTok comments and replies from public videos: comment text, likes, reply count, date, commenter username, nickname, user ID, avatar, pinned and liked-by-creator flags, reply threading. Paste video URLs. Plain HTTP, no login, no browser.
Open TikTok Comments Scraper on Apify
Turn any public TikTok video into a clean table of its comments: comment text, likes, number of replies, date, commenter username, display name, user ID, avatar, pinned and liked-by-creator flags, and optionally the replies under each comment, threaded by parent ID. Paste video URLs. Plain HTTP, no browser, no login, no cookies.
- In short: TikTok Comments Scraper (Apify actor
transparent_meteorite/tiktok-comments-scraper) reads the public comments and replies of TikTok videos and returns one row per comment. - Who it is for: brand and community managers, social listening and sentiment analysis, agencies reporting on campaigns, creators finding their most engaged fans, researchers.
- Input: video URLs (short links and bare IDs too); comments per video; replies per comment; skip pinned; date and minimum-likes filters; max rows; monitor mode; proxy.
- Output: 20+ fields per comment: cid, text, diggCount, replyCommentTotal, createTimeISO, uniqueId, nickname, uid, avatarThumbnail, repliesToId, isPinned, authorLiked, videoWebUrl, commentUrl. JSON, CSV or Excel.
- Pricing: pay per event. Per comment delivered: $0.00087 free plan, $0.0007 Bronze, $0.00052 Silver, $0.00015 Gold, Platinum and Diamond.
- Limits: only what TikTok shows logged-out visitors; comments the creator hid or TikTok filtered are not returned.
What it outputs
| Field | Meaning |
|---|---|
cid |
Comment ID |
text |
Comment text |
diggCount |
Likes on the comment |
replyCommentTotal |
Number of replies (top-level comments) |
createTime, createTimeISO |
When it was posted |
uniqueId, nickname, uid, secUid |
Commenter username, display name and IDs |
avatarThumbnail, profileUrl |
Commenter avatar and profile link |
isReply, repliesToId, replyToReplyId |
Reply threading |
isPinned, authorLiked |
Pinned by the creator, liked by the creator |
commentLanguage, mentions |
Detected language, @mentions in the text |
awemeId, videoWebUrl, commentUrl |
Video ID, video link, link that opens the video at this comment |
input, scrapedAt |
The input URL, read time |
Sample row:
Example input
{
"postURLs": ["https://www.tiktok.com/@tiktok/video/7106594312292453675"],
"commentsPerPost": 50,
"maxRepliesPerComment": 0
}Sample output
{
"cid": "7106606555949433646",
"text": "15?",
"diggCount": 156,
"replyCommentTotal": 4,
"createTimeISO": "2022-06-07T21:03:06.000Z",
"uniqueId": "0_.preppy._.vids._0",
"isReply": false,
"repliesToId": null,
"isPinned": false,
"authorLiked": false,
"awemeId": "7106594312292453675",
"videoWebUrl": "https://www.tiktok.com/@tiktok/video/7106594312292453675"
}Sample taken from the actor's README; values shown as placeholders there are placeholders.
FAQ
Do I need a TikTok account or cookies?
No.
Does it get replies?
Yes: set maxRepliesPerComment. Each reply is its own row with isReply: true and repliesToId pointing at the parent comment.
How fast is it?
About 50 comments per request; 100 comments usually take a few seconds, and three videos are read in parallel.
Can I watch a video for new comments?
Yes: turn on monitor mode and schedule the actor. Each run returns only comments it has not delivered before.
What does a failed video cost?
Nothing. Only delivered comments are charged.
Where do I run it?
On Apify: https://apify.com/transparent_meteorite/tiktok-comments-scraper. Check the Pricing tab there for current prices.