Tiktok Comments Scraper
Pricing
$19.99/month + usage
Tiktok Comments Scraper
💬 TikTok Comments Scraper extracts video comments at scale—usernames, timestamps, likes, replies & IDs. 🔍 Ideal for social listening, sentiment, UGC mining & competitor analysis. 📦 Export CSV/JSON. ⚡ Fast, reliable & scalable for brands, analysts & creators.
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
Scrapium
Actor stats
0
Bookmarked
2
Total users
0
Monthly active users
14 days ago
Last modified
Categories
Share
Tiktok Comments Scraper
The Tiktok Comments Scraper is a production-ready Apify actor that scrapes comments (and optional replies) from TikTok videos at scale. It solves the pain of manual comment collection by programmatically extracting comment text, likes, timestamps, mentions, and user identifiers from either direct video URLs or profile-driven video lists. Built for marketers, developers, data analysts, and researchers, this tiktok comments scraper lets you scrape TikTok comments reliably and export structured results for analysis, reporting, or enrichment.
What data / output can you get?
Below are the exact fields this tiktok comments extractor pushes to the Apify dataset. Each item represents a single comment. Top-level comments may include a nested replies array (each reply object has the same fields except it does not include a nested replies array).
| Data field | Description | Example value |
|---|---|---|
| videoWebUrl | Canonical video URL (resolved, without query params) | https://www.tiktok.com/@mrbeast/video/7578547467189374239 |
| submittedVideoUrl | Submitted video URL normalized to canonical form | https://www.tiktok.com/@mrbeast/video/7578547467189374239 |
| input | The original input URL for this record | https://www.tiktok.com/@mrbeast/video/7578547467189374239 |
| cid | Comment ID | 7578605549794034443 |
| createTime | Unix timestamp (seconds) of the comment | 1732995615 |
| createTimeISO | ISO timestamp of the comment | 2025-11-30T19:40:15.000Z |
| text | Comment text | mr beast are you ok ? |
| diggCount | Number of likes on the comment | 7633 |
| likedByAuthor | Whether the video author liked the comment | false |
| pinnedByAuthor | Whether the video author pinned the comment | false |
| repliesToId | Parent comment ID (null for top-level) | null |
| replyCommentTotal | Total replies count reported by TikTok | 100 |
| uid | Commenter’s numeric user ID | 7516601022924489733 |
| uniqueId | Commenter’s username (unique_id) | amin.hrizi4 |
| avatarThumbnail | Commenter’s avatar thumbnail URL | https://p16-sign-va.tiktokcdn.com/... |
| mentions | Array of @usernames parsed from text and text_extra | ["brand_handle"] |
| detailedMentions | Array of mention objects with positions/IDs | [{"user_unique_id":"brand_handle","start":0,"end":12}] |
| replies | Array of reply objects (same shape, without nested replies) | [] |
Notes:
- Reply objects contain the same keys as comments except they do not include the nested replies array.
- You can export results to JSON or CSV directly from the Apify dataset.
Key features
-
🚦 Smart proxy fallback & rotation
Built-in proxy manager that starts with no proxy, falls back to datacenter proxy on blocks, then switches to residential proxies with up to 3 rotations. Once residential works, it sticks to it for the remaining requests. -
📦 Bulk inputs: video URLs or profiles
Supply direct video URLs via postURLs or generate video URLs from profiles with resultsPerPage, profileScrapeSections ("videos" or "reposts"), sorting, and date filters. -
🧭 Flexible profile selection & sorting
Scrape profile sections ("videos", "reposts") with sorting options "latest", "oldest", or "popular". For profile discovery, the actor relies on Playwright to capture TikTok API responses reliably. -
🗓️ Date filters & pin controls
Limit profile video selection by oldestPostDateUnified and newestPostDate, and optionally excludePinnedPosts to skip pinned content. -
💬 Replies and mentions extraction
Control how many replies to fetch per comment with maxRepliesPerComment and automatically extract mentions both from text and TikTok’s text_extra metadata. -
🔗 Short-link resolver
Handles vm.tiktok.com and vt.tiktok.com redirects to extract canonical video IDs and URLs seamlessly. -
🧾 Structured JSON output
Clean, consistent fields for straightforward analysis and transformation. Export to JSON/CSV from the dataset. -
⚙️ Developer-friendly & scalable
Asynchronous scraping with sensible concurrency and timeouts. Optional sid_tt cookie support via environment variable TIKTOK_SID_TT improves profile/repost reliability where needed.
How to use Tiktok Comments Scraper - step by step
- Sign in to Apify and open the Tiktok Comments Scraper actor.
- Decide your input strategy:
- To scrape specific videos, add their URLs to postURLs.
- To discover videos from profiles, add usernames to profiles and set discovery options.
- Configure input fields:
- commentsPerPost to cap comments per video.
- maxRepliesPerComment to include replies (0 disables replies).
- For profile-driven discovery: resultsPerPage, profileScrapeSections ("videos", "reposts"), profileSorting ("latest", "popular", "oldest"), oldestPostDateUnified and newestPostDate, and excludePinnedPosts as needed.
- proxyConfiguration to control proxy usage (the actor will auto-fallback when blocked).
- Start the run. The actor logs which proxy mode is active and switches automatically if TikTok blocks requests.
- Monitor progress in the run logs. You’ll see per-video counters and proxy events.
- When finished, go to the Dataset tab to view results.
- Export your data to JSON or CSV for downstream workflows.
Pro Tip: Set TIKTOK_SID_TT as an environment variable for the run if your use case benefits from an authenticated session (e.g., improved stability for profile/repost discovery). Keep credentials out of source code and use Apify secrets where appropriate.
Use cases
| Use case | Description |
|---|---|
| Social listening & sentiment | Analyze comment sentiment and themes on creator or brand videos to inform content strategy. |
| UGC mining for marketing | Identify authentic user quotes and feedback for campaigns and product pages. |
| Competitor analysis | Track engagement patterns and audience reactions on competitor content. |
| Campaign reporting | Measure comment volume, likes, and reply threads as part of campaign KPIs. |
| Academic & social research | Study discourse, topic diffusion, or moderation at scale using structured comments data. |
| Data enrichment pipelines | Feed structured comment datasets into BI tools, dashboards, or ML pipelines. |
| Customer support insights | Surface recurring questions, complaints, or product mentions in replies and threads. |
| Trend tracking | Monitor spikes in comment activity across profile sections and date ranges. |
Why choose Tiktok Comments Scraper?
The scraper is engineered for precision, resilience, and large-scale workflows.
- 🎯 Structured & accurate output: Clean fields for comments, replies, mentions, and commenter metadata.
- 🛡️ Robust blocking strategy: Automatic fallback from no proxy → datacenter → residential with logged proxy events and rotations.
- 📈 Scale ready: Bulk inputs, concurrent requests, and efficient pagination to handle large datasets.
- 👨💻 Dev-friendly: Works seamlessly on Apify with async architecture and dataset exports to JSON/CSV.
- 🔒 Public-only by design: Targets publicly available endpoints and supports optional cookie usage via environment variables.
- 💸 Reliable alternative: Avoid the fragility of browser extensions with a production-ready, server-side actor.
Bottom line: If you need a reliable tiktok comments scraping tool that can export tiktok comments to CSV or JSON for analysis, this actor is built for the job.
Is it legal / ethical to use Tiktok Comments Scraper?
Yes—when used responsibly. This actor is designed to collect data from publicly available content and does not access private accounts or password‑protected areas.
Guidelines for responsible use:
- Scrape only public TikTok content and respect platform terms.
- Ensure compliance with applicable data protection laws (e.g., GDPR, CCPA).
- Avoid spam and abusive practices with the collected data.
- Consult your legal team for edge cases or jurisdiction-specific requirements.
Input parameters & output format
Example input JSON
{"postURLs": ["https://www.tiktok.com/@mrbeast/video/7578547467189374239"],"commentsPerPost": 100,"maxRepliesPerComment": 3,"profiles": ["mrbeast"],"resultsPerPage": 10,"profileScrapeSections": ["videos", "reposts"],"profileSorting": "latest","oldestPostDateUnified": "2025-01-01","newestPostDate": "2025-12-31","excludePinnedPosts": false,"proxyConfiguration": {"useApifyProxy": false}}
Input fields (all are optional unless stated otherwise):
- postURLs (array): Add the video URLs you want to extract comments from. If provided, this takes priority over profiles. Default: none. Required: no.
- commentsPerPost (integer): Maximum comments extracted per video. Minimum: 1. Default: 100. Required: no.
- maxRepliesPerComment (integer): Maximum replies to fetch per comment. Minimum: 0. Default: 3. Required: no.
- profiles (array): TikTok usernames (without @) to discover videos from. Default: none. Required: no.
- resultsPerPage (integer): Number of videos per profile to include. Min: 1, Max: 1,000,000. Default: 10. Required: no.
- profileScrapeSections (array): Sections to scrape from a profile. Allowed values: "videos", "reposts". Default: ["videos"]. Required: no.
- profileSorting (string): Sorting for profile videos. Allowed values: "latest", "popular", "oldest". Default: "latest". Required: no.
- oldestPostDateUnified (string): Scrape videos uploaded after/on this date. Supports YYYY-MM-DD or relative (e.g., "5 days", "2 weeks"). Required: no.
- newestPostDate (string): Scrape videos uploaded before/on this date. Supports YYYY-MM-DD or relative (e.g., "5 days", "2 weeks"). Required: no.
- excludePinnedPosts (boolean): Exclude pinned posts when discovering profile videos. Default: false. Required: no.
- proxyConfiguration (object): Choose proxies to use. If blocked, automatically fall back to datacenter, then residential with 3 retries. Prefill: {"useApifyProxy": false}. Required: no.
Example output JSON
[{"videoWebUrl": "https://www.tiktok.com/@mrbeast/video/7578547467189374239","submittedVideoUrl": "https://www.tiktok.com/@mrbeast/video/7578547467189374239","input": "https://www.tiktok.com/@mrbeast/video/7578547467189374239","cid": "7578605549794034443","createTime": 1732995615,"createTimeISO": "2025-11-30T19:40:15.000Z","text": "mr beast are you ok ?","diggCount": 7633,"likedByAuthor": false,"pinnedByAuthor": false,"repliesToId": null,"replyCommentTotal": 100,"uid": "7516601022924489733","uniqueId": "amin.hrizi4","avatarThumbnail": "https://p16-sign-va.tiktokcdn.com/...","mentions": [],"detailedMentions": [],"replies": []}]
Notes:
- reply objects carry the same keys as comments except they don’t include a nested replies array.
- mentions and detailedMentions may be empty if no @users are present or detectable in a comment.
FAQ
How many comments can I scrape per video?
You control the limit via commentsPerPost. Set your desired maximum per video; the actor paginates in batches up to that cap. Due to TikTok limitations, the actual number may be lower for posts with very large threads.
Can I scrape replies to comments?
Yes. Set maxRepliesPerComment to a non-zero value to fetch replies for comments that have them. The actor limits replies per comment to your configured maximum.
Can I scrape comments from multiple videos at once?
Yes. Add multiple items to postURLs. Alternatively, provide profiles and the actor will discover video URLs from the specified profile sections.
Does it work with TikTok short links (vm.tiktok.com / vt.tiktok.com)?
Yes. The actor resolves vm/vt redirects to extract the canonical video ID and URL before scraping.
What happens if TikTok blocks my requests?
The actor starts with no proxy. If blocked, it auto-switches to datacenter proxy; if still blocked, it switches to residential proxies and rotates up to 3 times. Once residential works, it stays in residential mode for the rest of the run.
How are videos selected when using profiles?
Use resultsPerPage to control how many videos per profile, profileScrapeSections to target "videos" and/or "reposts", profileSorting to set "latest", "oldest", or "popular", and optional date filters (oldestPostDateUnified, newestPostDate). You can also excludePinnedPosts.
Do I need to log in to TikTok?
No. The actor works without login. Optionally, you can provide the sid_tt cookie as an environment variable (TIKTOK_SID_TT) to improve stability for certain profile/repost scenarios.
How do I export results?
Open the run’s Dataset in Apify and export to JSON or CSV. This is a simple way to download tiktok comments CSV for analysis.
Closing thoughts
The Tiktok Comments Scraper is built for fast, reliable extraction of TikTok comment threads with clean structure and robust proxy handling. It helps marketers, analysts, researchers, and developers scrape comments from TikTok videos, include replies, and export data to CSV/JSON for downstream use. Developers can incorporate it into automated pipelines on Apify with ease. Start extracting structured insights from TikTok comments at scale today.