Tiktok Comment Scraper avatar

Tiktok Comment Scraper

Pricing

from $2.40 / 1,000 result scrapeds

Go to Apify Store
Tiktok Comment Scraper

Tiktok Comment Scraper

TikTok Comment Scraper extracts comments from TikTok videos, including text, author details, likes, reply counts, mentions, hashtags, and timestamps. Ideal for audience research, sentiment analysis, moderation, trend tracking, and AI-powered comment insights.

Pricing

from $2.40 / 1,000 result scrapeds

Rating

0.0

(0)

Developer

Delowar Munna

Delowar Munna

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Share

Extract comments, replies, and author metadata from any TikTok video — ~38 structured fields including comment text, engagement metrics, author profiles, reply threads, and AI-ready analytics. Export in JSON, CSV, or Excel.

TikTok Comment Scraper


Key Features

  • ~38 Structured Fields per record — comments, replies, authors, analytics
  • Reply Threads — full reply chains linked to parent comments via parentCommentId
  • Replies After Parent — in the dataset, each comment's replies appear right after it
  • Author Metadata — username, nickname, verified status, private account flag, avatar
  • Comment Analytics — language detection, word/emoji counts, hashtag/mention extraction
  • Video Context (optional) — video caption, views, likes, shares, duration, music info
  • Sorting — top comments or newest first
  • 3 Dataset Views — Overview, Authors, Replies on Apify
  • Proxy Support — Apify residential proxy integration for reliable scraping
  • Pay-Per-Result — only pay for results you get

Best for: Sentiment analysis, brand monitoring, content research, AI training data, moderation analysis


At a Glance

FeatureDetails
Output Fields~38 structured fields per record
Dataset Views3 tabs (Overview, Authors, Replies)
InputOne or more TikTok video URLs
Max CommentsUp to 10,000 per video
Reply ThreadsEnabled by default, linked via parentCommentId / replyId
ProxyOptional (residential recommended for large runs)

How It Works

  1. Provide Video URLs — enter one or more TikTok video URLs
  2. Session Warm-up — browser visits TikTok to establish session cookies
  3. Fetch Comments — calls TikTok's internal comment API with cursor-based pagination
  4. Fetch Replies — fetches reply threads for each comment via the reply API
  5. Normalize & Export — structures data into ~38 fields and pushes to dataset

Output

Comment Record

{
"commentId": "7482114472766325535",
"videoId": "7481695035033980190",
"videoUrl": "https://www.tiktok.com/@aaron.vankampen/video/7481695035033980190",
"commentText": "\u201cShe DIED\u201d \ud83e\udd19\ud83c\udffc\ud83e\udd19\ud83c\udffc\ud83e\udd19\ud83c\udffc\ud83d\ude02\ud83d\ude2d",
"createTime": "2025-03-15T19:05:59.000Z",
"likeCount": 1507,
"replyCount": 4,
"isPinned": false,
"commentPermalink": "https://www.tiktok.com/@aaron.vankampen/video/7481695035033980190?comment=7482114472766325535",
"scrapedAt": "2026-03-14T13:29:33.073Z",
"commentLanguage": "en",
"wordCount": 3,
"charCount": 27,
"emojiCount": 8,
"hashtags": [],
"mentions": [],
"authorId": "2904724",
"authorUsername": "nellyyybaby",
"authorNickname": "baby J\ud83d\udc8b",
"authorVerified": false,
"authorPrivateAccount": false,
"authorAvatar": "https://p16-common-sign.tiktokcdn-us.com/..."
}

Reply Record (appears right after its parent comment)

{
"parentCommentId": "7482114472766325535",
"replyId": "7482124949542011655",
"videoId": "7481695035033980190",
"videoUrl": "https://www.tiktok.com/@aaron.vankampen/video/7481695035033980190",
"replyText": "\"So now aiiii got da crib!!\" \ud83d\ude03",
"replyLikeCount": 32,
"replyCreateTime": "2025-03-15T19:46:40.000Z",
"replyAuthorId": "6812290091522016262",
"replyAuthorUsername": "tony6ixx",
"replyAuthorVerified": false,
"commentLanguage": "en",
"wordCount": 7,
"charCount": 31,
"emojiCount": 1,
"hashtags": [],
"mentions": [],
"scrapedAt": "2026-03-14T13:29:33.329Z",
"replyAuthorNickname": "Tony \ud83c\udde6\ud83c\uddf1",
"replyAuthorAvatar": "https://p19-common-sign.tiktokcdn-us.com/..."
}

Output — All Fields with Replies (Table View)


Output Schema (~38 Fields)

Core Comment (10 fields)

FieldTypeDescription
commentIdStringUnique comment ID
videoIdStringVideo identifier
videoUrlStringTikTok video URL
commentTextStringFull comment text
createTimeStringISO 8601 timestamp
likeCountIntegerNumber of likes
replyCountIntegerNumber of replies
isPinnedBooleanPinned by creator
commentPermalinkStringDirect link to comment
scrapedAtStringScraping timestamp

Comment Analytics (6 fields)

FieldTypeDescription
commentLanguageStringDetected language code (e.g. en, zh, ja)
wordCountIntegerWord count
charCountIntegerCharacter count
emojiCountIntegerNumber of emojis
hashtagsArrayExtracted #hashtags
mentionsArrayExtracted @mentions

Author Metadata (6 fields)

Included when Include Author Info is enabled (default: on).

FieldTypeDescription
authorIdStringAuthor's TikTok user ID
authorUsernameStringAuthor's @username
authorNicknameStringDisplay name
authorVerifiedBooleanVerified badge
authorPrivateAccountBooleanPrivate account
authorAvatarStringProfile image URL

Reply Fields (10 fields)

Included when Include Replies is enabled (default: on). Each reply is a separate dataset row linked to its parent via parentCommentId.

FieldTypeDescription
parentCommentIdStringParent comment's ID
replyIdStringReply's unique ID
replyTextStringReply text
replyLikeCountIntegerReply likes
replyCreateTimeStringISO 8601 timestamp
replyAuthorIdStringReply author's user ID
replyAuthorUsernameStringReply author's username
replyAuthorVerifiedBooleanReply author verified
replyAuthorNicknameStringReply author's display name
replyAuthorAvatarStringReply author's avatar URL

Reply records also include analytics fields (commentLanguage, wordCount, charCount, emojiCount, hashtags, mentions) computed on the reply text, plus videoId, videoUrl, and scrapedAt.

Video Metadata (10 fields, optional)

Included when Include Video Info is enabled (default: off). Extracted from TikTok's embedded page data.

FieldTypeDescription
videoDescriptionStringVideo caption
videoCreateTimeStringPublish timestamp
videoLikeCountIntegerVideo likes
videoCommentCountIntegerVideo comment count
videoShareCountIntegerVideo shares
videoViewCountIntegerVideo views
videoDurationIntegerDuration in seconds
videoRegionStringRegion code
musicTitleStringBackground music title
musicAuthorStringMusic creator

Input Parameters

ParameterTypeDefaultRequiredDescription
videoUrlsArrayYesTikTok video URLs to scrape
maxCommentsInteger100NoMax comments per video (1–10,000)
includeRepliesBooleantrueNoInclude reply threads
maxRepliesPerCommentInteger50NoMax replies per comment (1–500)
sortString"top"NoSort order: top or new
includeAuthorInfoBooleantrueNoInclude author metadata
includeVideoInfoBooleanfalseNoInclude video metadata
proxyConfigurationObjectNoApify proxy settings

Quick Start

Example 1: Single video with replies

{
"videoUrls": [
"https://www.tiktok.com/@aaron.vankampen/video/7481695035033980190"
],
"maxComments": 100,
"includeReplies": true,
"maxRepliesPerComment": 50,
"sort": "top",
"includeAuthorInfo": true
}

Example 2: Multiple videos, comments only

{
"videoUrls": [
"https://www.tiktok.com/@aaron.vankampen/video/7481695035033980190",
"https://www.tiktok.com/@aaron.vankampen/video/7546661132002413854"
],
"maxComments": 100,
"includeReplies": false,
"sort": "top",
"includeAuthorInfo": true
}

Example 3: Full extraction with proxy

{
"videoUrls": [
"https://www.tiktok.com/@creator/video/7234567890123456789"
],
"maxComments": 1000,
"includeReplies": true,
"includeAuthorInfo": true,
"includeVideoInfo": true,
"sort": "new",
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Dataset Views

The output is organized into 3 focused tabs on the Apify platform:

Overview

Shows comments and replies together with key fields.

{
"commentId": "7481802613793686318",
"videoId": "7481695035033980190",
"commentText": "YOU FOUND CODY!!!",
"authorUsername": "duncanstanko",
"likeCount": 489,
"replyCount": 1,
"isPinned": false,
"createTime": "2025-03-14T22:55:34.000Z",
"scrapedAt": "2026-03-14T13:29:31.670Z"
}

Authors

Focused view on commenter profiles.

{
"commentId": "7481802613793686318",
"authorId": "7158470338833777710",
"authorUsername": "duncanstanko",
"authorNickname": "Duncan Stanko",
"authorVerified": false,
"authorPrivateAccount": false,
"authorAvatar": "https://p16-common-sign.tiktokcdn-us.com/..."
}

Replies

Focused view on reply threads with parent-child linking.

{
"parentCommentId": "7482422764545753902",
"replyId": "7482493179494253342",
"replyText": "He is a comedian. Calm down lol",
"replyAuthorUsername": "wizrd.618",
"replyLikeCount": 107,
"replyCreateTime": "2025-03-16T19:35:28.000Z"
}

Use Cases

Sentiment Analysis

Export comments for sentiment scoring and reaction analysis. Use commentLanguage, wordCount, and emojiCount for NLP preprocessing.

Brand Monitoring

Track public feedback on brand campaigns. Filter by video URL and analyze comment engagement patterns.

Content Research

Study audience reactions to viral content. Compare top comments vs. newest to understand engagement dynamics.

AI Training Data

Collect structured comment datasets for training text classification, sentiment, or moderation models.

Moderation Analysis

Identify patterns in toxic comments, spam, or abuse. Use author metadata to detect bot-like accounts.


Performance

MetricValue
Concurrency1 request at a time
Request timeout120 seconds
Navigation timeout60 seconds
RetriesUp to 4 per request (exponential backoff)
Session pooling5 sessions, 20 uses each

Data Export

Supported formats via Apify platform:

  • JSON
  • CSV
  • Excel
  • HTML

Tips

  • Residential proxy recommended for reliable scraping at scale. Use { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }.
  • Replies appear after their parent in the dataset output — look for parentCommentId to match them.
  • Each reply is its own row with a flat structure, making it easy to filter comments vs. replies.
  • commentPermalink links directly to the comment on TikTok.
  • Language detection uses Unicode script analysis — returns null for ambiguous text.

Pricing

This actor uses Apify's Pay-Per-Event model — you only pay for results you get.

EventTriggerDescription
result-scrapedEach comment or reply extractedCharged once per record pushed to dataset

Event price is configured in the Apify Console. Platform compute and proxy costs (if enabled) are billed separately to your Apify account.


Compliance

  • Collects only publicly available TikTok comment data
  • Does not bypass CAPTCHAs or access gated content
  • Does not collect private account data
  • Intended for legitimate research, analytics, and business intelligence
  • Users are responsible for compliance with applicable laws in their jurisdiction

Support

  • Issues: Report via GitHub or Apify support
  • Feature requests: Open an issue with your use case

Built by Coregent Digital Studio — Production-ready TikTok comment extraction