TikTok Comment Exporter & Scraper by Username avatar

TikTok Comment Exporter & Scraper by Username

Pricing

from $0.35 / 1,000 comment scrapeds

Go to Apify Store
TikTok Comment Exporter & Scraper by Username

TikTok Comment Exporter & Scraper by Username

Find and export TikTok comments by username. Auto-discovers all videos from a profile and loads every comment into a spreadsheet. CSV or JSON, replies included, no limit.

Pricing

from $0.35 / 1,000 comment scrapeds

Rating

0.0

(0)

Developer

Thodor

Thodor

Maintained by Community

Actor stats

0

Bookmarked

13

Total users

6

Monthly active users

3 days ago

Last modified

Share

A TikTok comment finder tool that works by username. Find and export TikTok comments by username, auto-discover all videos from a profile, and load all comments into a spreadsheet. CSV or JSON, replies included, no limit.

  1. You input a profile (or direct video URLs).
  2. All videos are discovered automatically.
  3. Every comment and reply is extracted to your preferred format.

How to load all TikTok comments into a spreadsheet

To load all TikTok comments into a spreadsheet with this TikTok comment exporter: run this actor with a profile username, then download the dataset as CSV or Excel from the Storage tab of your run. You can get TikTok comments in the following formats:

  • CSV or Excel: Perfect for loading directly into a spreadsheet for sorting, filtering, and analysis.
  • JSON: Ideal for developers feeding the data into other apps or databases.

Find TikTok comments by username, not by video URL

Most TikTok comment scrapers only accept video URLs as input, meaning you need to manually find each video yourself. This TikTok comment scraper accepts a profile username and handles the rest. It is the easiest way to find TikTok comments by username, it discovers all videos from the profile and scrapes comments across all of them in one run.

FeatureThis actorTypical alternatives
Input a profile usernameYesNo (video URLs only)
Auto-discover all videosYesManual
Comment limitNoneOften capped at 5,000
Reply threadsFull depthVaries
Image commentsExtractedOften skipped

Input

FieldTypeDefaultDescription
profileUrlsstring[][]TikTok profile URLs or usernames (e.g. @kingconnah or https://www.tiktok.com/@kingconnah)
videoUrlsstring[][]Direct video URLs: combined with any videos discovered from profiles
maxCommentsPerVideointeger0 (all)Maximum comments per video. 0 = no limit
includeRepliesbooleanfalseFetch reply threads for each comment

Scrape all comments from a profile

{
"profileUrls": ["kingconnah"],
"includeReplies": true
}

Scrape specific videos

{
"videoUrls": [
"https://www.tiktok.com/@username/video/7622233769231142165"
],
"maxCommentsPerVideo": 1000,
"includeReplies": true
}

Profile + extra videos

{
"profileUrls": ["kingconnah"],
"videoUrls": [
"https://www.tiktok.com/@other/video/7622233769231142165"
]
}

Output

Each comment is one flat row in the dataset. Replies are separate rows linked to their parent via parent_comment_id.

Output fields

FieldTypeDescription
video_urlstringThe video this comment belongs to
comment_idstringUnique comment ID
parent_comment_idstringParent comment ID (empty for top-level)
reply_to_reply_idstringID of the specific reply being responded to within a thread
depthinteger0 = top-level, 1 = reply
commentstringComment text (empty for image-only comments)
comment_image_urlstringImage URL for image-only comments
likesintegerLike count
reply_countintegerNumber of replies
created_atstringISO 8601 timestamp (UTC)
author_usernamestringCommenter's @username
author_display_namestringCommenter's display name
author_idstringTikTok numeric user ID
reply_to_usernamestringUsername being replied to
liked_by_video_creatorbooleanCreator liked this comment
pinnedbooleanCreator pinned this comment
purchase_intentbooleanTikTok's flag for buying intent (e.g. "Where can I buy this?")
comment_languagestringLanguage code ("un" = undetermined)
share_urlstringDirect share link

Example output

Top-level comment:

{
"video_url": "https://www.tiktok.com/@txmfitt/video/7613032455011945748",
"comment_id": "7616086972566078230",
"parent_comment_id": "",
"reply_to_reply_id": "",
"depth": 0,
"comment": "how many did you do in an hour? I once did 500",
"comment_image_url": "",
"likes": 62,
"reply_count": 3,
"created_at": "2026-03-11T19:47:22+00:00",
"author_username": "alanas698",
"author_display_name": "2027",
"author_id": "6765931488842613766",
"reply_to_username": "",
"liked_by_video_creator": true,
"pinned": false,
"purchase_intent": false,
"comment_language": "en",
"share_url": "https://m.tiktok.com/v/7613032455011945748.html?..."
}

Reply:

{
"video_url": "https://www.tiktok.com/@txmfitt/video/7613032455011945748",
"comment_id": "7617031854978024193",
"parent_comment_id": "7616086972566078230",
"reply_to_reply_id": "",
"depth": 1,
"comment": "i did 1,017",
"comment_image_url": "",
"likes": 45,
"reply_count": 0,
"created_at": "2026-03-14T08:54:01+00:00",
"author_username": "txmfitt",
"author_display_name": "Toby",
"author_id": "7193948041925403654",
"reply_to_username": "",
"liked_by_video_creator": false,
"pinned": false,
"purchase_intent": false,
"comment_language": "en",
"share_url": ""
}

Image-only comment:

{
"video_url": "https://www.tiktok.com/@txmfitt/video/7613032455011945748",
"comment_id": "7615909607940588310",
"parent_comment_id": "7614996613496390408",
"reply_to_reply_id": "",
"depth": 1,
"comment": "",
"comment_image_url": "https://p16-comment-sign-no.tiktokcdn-eu.com/tos-no1a-i-jj85edgx6n-no/b5efb28ad8934663aa1831ef422142d7~tplv-jj85edgx6n-image-origin.image?...",
"likes": 4,
"reply_count": 0,
"created_at": "2026-03-11T08:19:24+00:00",
"author_username": "unicukornis",
"author_display_name": "Unicukornis",
"author_id": "6845319934780654598",
"reply_to_username": "",
"liked_by_video_creator": false,
"pinned": false,
"purchase_intent": false,
"comment_language": "un",
"share_url": "https://m.tiktok.com/v/7613032455011945748.html?..."
}

Understanding threading

For most use cases, parent_comment_id + depth is all you need:

  • Top-level comments: depth == 0
  • Find replies: filter by parent_comment_id
  • Full threads: group by parent_comment_id, sort by created_at

The reply_to_reply_id field shows which specific reply within a thread someone responded to, which is useful for conversation analysis.

FAQ

How do I search and view TikTok comments from a profile? Run this actor with a username to view all TikTok comments from every video on the profile in one dataset. Once exported to CSV or Excel, you can search TikTok comments by author, keyword, date, or engagement using your spreadsheet's filter and search tools.

Can I export TikTok comments to CSV? Yes. After the actor finishes, open the Storage tab of your run and download the dataset as CSV. Excel (XLSX), JSON, JSONL, XML, and HTML are also available from the same page or via the Apify API.

Can I use this as a TikTok comment tracker? Yes. Because you can input a specific username, you can schedule this actor to run daily or weekly to monitor new comments and engagement on a specific profile. It functions as a reliable TikTok comment tracker.

How does the comment limit work with replies enabled? When includeReplies is on, both comments and replies count toward maxCommentsPerVideo. The actor processes comments page by page. For each page, it first extracts the top-level comments, then fetches their replies before moving to the next page. This means the final output is a mix of comments and replies. If you need all top-level comments first, run once without replies, then run again with replies enabled.

What happens if a proxy gets blocked? The actor automatically retries with a fresh proxy. You will see a "rotating proxy" warning in the logs but scraping continues from where it left off. No data is lost.

Are there duplicate comments in the output? No. Every comment and reply is deduplicated by ID before being added to the dataset. You only pay for unique results.

Can I find TikTok comments by username free? Yes. When you sign up for Apify, you automatically get free monthly usage credits on their free tier. You can use these platform credits to run this actor and extract comments completely free of charge. No credit card is required to start.