# TikTok Comments Scraper

happy\_b/tiktok-comments-scraper

Scrape TikTok video comments and replies with exact like counts, ISO timestamps, language detection, and 18 fields per comment.

## Pricing

from $0.25 / 1,000 results

## Rating

5.0 (1)

## Developer

[Happy B](https://apify.com/happy_b)

## What is TikTok Comments Scraper?

TikTok Comments Scraper extracts comments and replies from TikTok videos with **exact numbers, ISO 8601 timestamps, and 18 fields per comment** — ready for spreadsheets, dashboards, and analysis pipelines.

Every number is an exact integer. Every date is ISO 8601. No "1.2K" guesses, no "2 months ago" approximations.

### Data points extracted per comment

| Field | Description | Example |
| --- | --- | --- |
| `commentId` | Comment ID | `7617943801550832402` |
| `content` | Comment text | `This is hilarious 😂` |
| `publishedAt` | ISO 8601 timestamp | `2026-03-16T19:52:57.000Z` |
| `likeCount` | Exact like count | `3998` |
| `replyCount` | Number of replies | `20` |
| `replyLevel` | 0 = comment, 1 = reply | `0` |
| `parentCommentId` | Parent comment (for replies) | `7617943801550832402` |
| `commentLanguage` | Detected language | `en` |
| `isPinned` | Pinned by creator | `true` |
| `isCreatorLiked` | Liked by creator | `true` |
| `authorUniqueId` | TikTok handle | `khaby.lame` |
| `authorNickname` | Display name | `Khabane lame` |
| `authorUid` | Numeric user ID | `6881060737370096641` |
| `authorAvatarUrl` | Profile picture URL | `https://p16-common-sign...` |
| `authorSecUid` | Secure user ID | `MS4wLjABAAAA...` |
| `videoId` | TikTok video ID | `7617913537561693470` |
| `videoUrl` | Full video URL | `https://www.tiktok.com/@/video/...` |
| `scrapeTimestamp` | When data was collected | `2026-04-03T03:35:09.177Z` |

## Why use this scraper?

### Replies that actually work

Other TikTok comment scrapers have known issues with reply fetching. Our scraper returns complete reply threads with `parentCommentId` linking each reply to its parent — so you can reconstruct the full conversation tree.

### Fields you won't find elsewhere

- **`commentLanguage`** — filter comments by language without running your own detection
- **`isCreatorLiked`** — identify which comments the creator engaged with
- **`isPinned`** — find creator-highlighted comments instantly
- **`authorSecUid`** — cross-reference commenters with profile data from other scrapers

### Exact data, not approximations

Every like count is an exact integer (`3998`, not `4K`). Every timestamp is ISO 8601 (`2026-03-16T19:52:57.000Z`, not `2 months ago`). Download to CSV and your data is ready for analysis — no parsing, no guessing.

## Use cases

- **Sentiment analysis** — extract comments with language detection to analyze audience reactions across regions and languages.
- **Influencer analytics** — identify which comments creators engage with via `isCreatorLiked` and `isPinned` fields.
- **Competitive research** — compare comment volumes, engagement rates, and audience sentiment across competing creators.
- **Community management** — monitor reply threads for brand mentions, complaints, or opportunities to engage.
- **ML training data** — structured JSON with 18 fields per comment, ready for classification, sentiment models, or recommendation systems.
- **Trend detection** — track comment volume and sentiment on trending videos to identify emerging topics.

## How much does it cost?

Each comment or reply counts as one item.

| Plan | Price per 1,000 items |
| --- | --- |
| Free | $0.65 |
| Starter | $0.50 |
| Scale | $0.40 |
| Business | $0.25 |

## Input

| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| `videoUrls` | string\[\] | _required_ | TikTok video URLs or video IDs to scrape comments from. |
| `maxCommentsPerVideo` | integer | 500 | Maximum number of top-level comments to fetch per video. |
| `includeReplies` | boolean | false | Fetch replies to comments. Each reply counts as a separate item. |
| `maxRepliesPerComment` | integer | 50 | Maximum replies per comment (only used when Include Replies is on). |

## Output example

Each item in the dataset is a single comment or reply:

```json
{
  "commentId": "7617943801550832402",
  "content": "[Sticker] here's the entire cars movie",
  "publishedAt": "2026-03-16T19:52:57.000Z",
  "likeCount": 3998,
  "replyCount": 20,
  "replyLevel": 0,
  "parentCommentId": "",
  "commentLanguage": "en",
  "isPinned": false,
  "isCreatorLiked": false,
  "authorUniqueId": "nadlaufer22",
  "authorNickname": "TheRealNadav9",
  "authorUid": "7421046488249271301",
  "authorAvatarUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/...
}
```

## Good to know

**Replies are fetched per comment.** When Include Replies is on, the scraper fetches reply threads for each comment that has replies. This makes runs slower but gives you complete conversation data. A video with 500 comments and heavy reply threads may take 2-3 minutes.

**Multiple videos in one run.** Pass an array of video URLs or IDs and get all comments in a single dataset. Each comment includes `videoId` so you can filter by video.

**Video IDs accepted.** You can pass full TikTok URLs (`https://www.tiktok.com/@user/video/123...`) or just the numeric video ID (`7617913537561693470`).

## Legal and personal data

This actor extracts publicly available data from TikTok. You should ensure your use of the extracted data complies with TikTok's [Terms of Service](https://www.tiktok.com/legal/terms-of-service), applicable data protection laws (GDPR, CCPA), and your jurisdiction's regulations regarding web scraping and data processing.

Comments and user information are public content visible to anyone on TikTok.

## Support

Found a bug or have a feature request? Open an issue on the [Issues tab](https://apify.com/happy_b/tiktok-comments-scraper/issues/open) or contact us through Apify messaging.
