TikTok Comments Scraper (Text, Likes, Replies, Users)
Pricing
from $0.35 / 1,000 comment scrapeds
TikTok Comments Scraper (Text, Likes, Replies, Users)
Paste TikTok video URLs and get all their comments: text, likes, reply count, date, language, pinned or liked by the creator, and the commenter's username. Replies optional. No login. Export to Excel, CSV or JSON.
Pricing
from $0.35 / 1,000 comment scrapeds
Rating
0.0
(0)
Developer
Julio Barcellos Rangel
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 hours ago
Last modified
Categories
Share
TikTok Comments Scraper takes TikTok video links and returns their comments in one table: text, likes, number of replies, date, language, whether the creator pinned or liked the comment, and who wrote it. Turn on replies to get the conversation under each comment too. It is made for marketers, brands, agencies and researchers who need a TikTok comments scraper to export TikTok comments to Excel, CSV or JSON for sentiment analysis, product feedback or giveaways. No login, no cookies and no browser are needed.
What does TikTok Comments Scraper do?
You paste TikTok videos and the scraper reads their public comment sections, page by page, in TikTok's own order (most relevant first), until it reaches your limit or the end of the comments.
It accepts:
- Video links:
https://www.tiktok.com/@charlidamelio/video/7137423965982592302 - Short links:
https://vm.tiktok.com/...(the scraper follows the link to find the video) - Video IDs:
7137423965982592302
Every comment becomes one row with its text, like count, reply count, date, language, creator flags (pinned or liked by the creator), mentions and the commenter's username, nickname, IDs, profile link and avatar. With Include replies on, the scraper also loads the replies under each comment that has any, and returns each reply as its own row with isReply: true and the ID of the parent comment.
What data can you extract?
| Field | What it means | Example |
|---|---|---|
input | The video link or ID you entered | https://www.tiktok.com/@charlidamelio/video/7137423965982592302 |
videoId | TikTok video ID | 7137423965982592302 |
videoUrl | Video link (your link without parameters, or a link built from the ID) | https://www.tiktok.com/@charlidamelio/video/7137423965982592302 |
commentId | Comment ID | 7137439588637852422 |
text | Comment text | alguien sabe el nombre de ese estilo de color en el labial?… |
createdAt | When the comment was posted (ISO 8601) | 2022-08-29T23:11:24.000Z |
likes | Number of likes on the comment | 2277 |
replyCount | Number of replies TikTok reports for the comment | 29 |
language | Language code TikTok gives the comment | es |
isReply | true for replies, false for top-level comments | false |
parentCommentId | For replies: the ID of the comment it answers | 7137510823549272878 |
pinnedByAuthor | true when the video creator pinned the comment | false |
likedByAuthor | true when the video creator liked the comment | false |
mentions | Users tagged in the comment | ["example_user"] |
username | Commenter's username | example_user |
nickname | Commenter's display name | example_user |
userId | Commenter's numeric user ID | 7042472163… |
secUid | Commenter's secure user ID | MS4wLjABAAAA… |
profileUrl | Commenter's profile link | https://www.tiktok.com/@example_user |
avatarUrl | Commenter's avatar image URL | https://p16-common-sign.tiktokcdn-us.com/… |
videoCommentTotal | Total comment count TikTok reports for the video | 19489 |
scrapedAt | When the comment was scraped (ISO 8601) | 2026-10-12T20:23:32.168Z |
error | Only on error rows: why no comments came back | Not a TikTok video URL or ID |
How to use TikTok Comments Scraper
- Open TikTok Comments Scraper in Apify Console.
- Paste video links, short links or video IDs into Videos, one per line.
- Set Max comments per video (default 100).
- Optional: turn on Include replies and set Max replies per comment (default 20).
- Click Start and wait for the run to finish.
- Open the Output tab and export the comments as JSON, CSV, Excel or HTML.
Input
| Field | Type | Default | What it does |
|---|---|---|---|
videos | list of text (required) | ["https://www.tiktok.com/@charlidamelio/video/7137423965982592302"] | TikTok video URLs (tiktok.com/@user/video/...), short links (vm.tiktok.com/...) or video IDs. |
maxCommentsPerVideo | integer | 100 | Top-level comments to return for each video, in TikTok's order (most relevant first). From 1 to 100,000. |
includeReplies | true/false | false | Also returns the replies under each comment. Each reply is one result. |
maxRepliesPerComment | integer | 20 | Maximum replies for each comment, from 1 to 10,000. Only used when replies are included. |
proxy | object | { "useApifyProxy": true } | Apify Proxy settings. The default works for most runs. |
maxCommentsPerVideo counts only top-level comments. Replies come on top of it, so with 100 comments and up to 20 replies each, one video can return up to 2,100 rows.
Example input:
{"videos": ["https://www.tiktok.com/@charlidamelio/video/7137423965982592302"],"maxCommentsPerVideo": 500,"includeReplies": true,"maxRepliesPerComment": 20,"proxy": { "useApifyProxy": true }}
Output example
One real comment from a recent run. The commenter is a private person, so the username, nickname and IDs are replaced or trimmed:
{"input": "https://www.tiktok.com/@charlidamelio/video/7137423965982592302","videoId": "7137423965982592302","videoUrl": "https://www.tiktok.com/@charlidamelio/video/7137423965982592302","commentId": "7137439588637852422","text": "alguien sabe el nombre de ese estilo de color en el labial? es que quiero hacerlo pero no sé cómo 😓","createdAt": "2022-08-29T23:11:24.000Z","likes": 2277,"replyCount": 29,"language": "es","isReply": false,"parentCommentId": null,"pinnedByAuthor": false,"likedByAuthor": false,"mentions": [],"username": "example_user","nickname": "example_user","userId": "7042472163…","secUid": "MS4wLjABAAAA…","profileUrl": "https://www.tiktok.com/@example_user","avatarUrl": "https://p16-common-sign.tiktokcdn-us.com/…","videoCommentTotal": 19489,"scrapedAt": "2026-10-12T20:23:32.168Z"}
How much does it cost?
TikTok Comments Scraper uses pay-per-event pricing. You pay $0.50 per 1,000 comments ($0.0005 per comment) on the Free plan. Replies count as comments. Apify platform usage is included in the price.
| Plan | Price per 1,000 comments |
|---|---|
| Free | $0.50 |
| Bronze (-10%) | $0.45 |
| Silver (-20%) | $0.40 |
| Gold and higher (-30%) | $0.35 |
Worked examples on the Free plan:
- 100 comments from one video = $0.05
- 10,000 comments = $5.00
- 50 videos with 1,000 comments each, plus 30,000 replies = 80,000 comments = $40.00
What you are not charged for:
- Error rows: entries that are not a TikTok video, videos with no comments (deleted, private or comments turned off), and videos where TikTok did not answer.
- Duplicate comments: a comment seen twice while paging is returned once.
- Duplicate entries: the same text entered twice in Videos is scraped once.
Use cases
- Audience research: read what viewers really think of a product, ad, song or creator.
- Sentiment analysis: send the comment text to an AI model or a spreadsheet to tag positive, negative and neutral comments, or split them by
language. - Product feedback: collect questions and complaints under your own videos or competitors' videos.
- Lead finding: spot people asking where to buy something or how to get a service.
- Giveaways: export every comment on a giveaway video and pick a winner from the list.
- Creator vetting: check whether a creator's comments are real conversations before you sponsor them.
- Community management: find the comments the creator pinned or liked, and the ones with the most replies.
Tips and limits
- Order: comments come in TikTok's order (most relevant first), not by date. Sort by
createdAtin your spreadsheet if you need a timeline. - Replies are extra rows: with Include replies on, replies are added on top of
maxCommentsPerVideo, up tomaxRepliesPerCommentfor each comment. Only comments with at least one reply are opened. - Comment totals:
videoCommentTotalis the number TikTok reports for the whole video. Use it to see how much of the comment section you collected. - Partial results: if TikTok stops answering in the middle of a video, the comments collected so far are kept and the scraper moves on to the next video. If replies of one comment cannot be loaded, that comment's replies are skipped.
- Short links: the scraper follows
vm.tiktok.comlinks to find the video ID. If the link does not lead to a video, you get an error row. - Same video twice: entries are merged only when the text is identical, so a video link and the same video's ID are scraped (and charged) twice.
- Avatar links expire:
avatarUrlis a signed TikTok link that stops working after some time. Download avatars soon if you need them. - Error rows:
Not a TikTok video URL or ID,No comments found (video deleted, private or comments turned off)andTikTok did not answer. They containinput,errorand, when known,videoId. Error rows are free.
Use it from the API, Python or JavaScript
You can run the scraper and read the comments with the official Apify clients. Replace YOUR_TOKEN with your Apify API token.
JavaScript (Node.js):
const { ApifyClient } = require('apify-client');const client = new ApifyClient({ token: 'YOUR_TOKEN' });const input = {videos: ['https://www.tiktok.com/@charlidamelio/video/7137423965982592302'],maxCommentsPerVideo: 500,includeReplies: true,};const run = await client.actor('juliob.rangel/tiktok-comments-scraper-fast').call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python:
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')input = {'videos': ['https://www.tiktok.com/@charlidamelio/video/7137423965982592302'],'maxCommentsPerVideo': 500,'includeReplies': True,}run = client.actor('juliob.rangel/tiktok-comments-scraper-fast').call(run_input=input)items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
The scraper also works with Make, Zapier and n8n, can export results to Google Sheets, can call your webhook when a run finishes, and can be used by AI agents through the Apify MCP server.
FAQ
Do I need a TikTok login or cookies? No. The scraper reads public comment sections without logging in, so your own account is never used.
Can I export TikTok comments to Excel or CSV? Yes. Open the Output tab after the run and download the dataset as Excel, CSV, JSON or HTML, or send it to Google Sheets.
How many comments can I get? Up to 100,000 top-level comments per video, plus up to 10,000 replies per comment, limited by how many comments the video has.
Are replies included? Only when you turn on Include replies. Each reply is one row and costs the same as a comment.
Can I scrape comments of private or deleted videos?
No. Those videos return an error row (No comments found…) and are not charged.
Is it legal to scrape TikTok comments? The scraper only collects publicly available data. You are responsible for complying with TikTok's terms and with privacy laws such as GDPR and LGPD. Comments and commenter usernames are personal data, so you need a legitimate reason to collect them, and you should store only what you need.
Why did I get an error row? The entry was not a TikTok video link or ID, the video has no public comments, or TikTok did not answer after several tries. Error rows are not charged.
Related scrapers
- TikTok Video Scraper (Views, Likes, Comments, Shares)
- TikTok Profile Stats Scraper (Followers, Likes, Bio)
- YouTube Comments Scraper (Fast & Cheap)
- Instagram Posts Scraper (Reels, Likes, Views, Captions)
- Threads Scraper (Profiles, Posts, Search)
Extrator de Comentários do TikTok (PT-BR)
Cole links de vídeos do TikTok e receba os comentários: texto, curtidas, número de respostas, data, idioma, se o criador fixou ou curtiu, e quem escreveu. Respostas opcionais. Sem login. Você paga só por comentário retornado.