TikTok Comment Exporter (CSV/Excel/API) avatar

TikTok Comment Exporter (CSV/Excel/API)

Pricing

from $0.35 / 1,000 comment scrapeds

Go to Apify Store
TikTok Comment Exporter (CSV/Excel/API)

TikTok Comment Exporter (CSV/Excel/API)

Export TikTok comments to CSV, Excel, or JSON from any video URL. No comment cap, handles 100k+ comments, replies included. Use it as a TikTok comment scraper, downloader, or straight from the API.

Pricing

from $0.35 / 1,000 comment scrapeds

Rating

0.0

(0)

Developer

Thodor

Thodor

Maintained by Community

Actor stats

2

Bookmarked

646

Total users

51

Monthly active users

0.9 hours

Issues response

3 days ago

Last modified

Share

TikTok Comment Exporter โ€“ Video URL to CSV & Excel

A TikTok comment exporter tool: paste a TikTok video URL and load all comments into a spreadsheet as CSV, Excel, or JSON. Every comment and reply, with likes, timestamps, and usernames. No comment cap, no login, no TikTok account.

A 10,000-comment export takes around a minute.

๐Ÿ“‹ How to export TikTok comments to Excel or CSV

  1. Paste video URLs into TikTok Video URLs.
  2. Want the replies too? Toggle Include replies on.
  3. Click Start.
  4. Open the Output tab and export as CSV, Excel, or JSON.

๐ŸŽ So what do you get?

๐Ÿ’ฌ Comment text๐Ÿงต Full reply threadsโค๏ธ Like counts
๐Ÿ‘ค Author & user ID๐Ÿ“… Timestamps๐Ÿ” Reply counts
๐Ÿ–ผ๏ธ Image comments๐Ÿ“Œ Pinned & creator-liked๐Ÿ›’ Purchase-intent flag

๐ŸŽฏ Three things people run this for

How
๐Ÿ”ฌ Sentiment & audience researchExport a campaign video's comment section and feed the CSV straight into your sentiment tool.
๐ŸŽฒ Giveaway pickingPull every entry comment into Excel and pick winners from the complete list.
๐ŸŽ“ Academic datasetsCollect comments from a batch of videos in one run, thread structure included.

๐Ÿ“ฅ Input

The simplest input that works:

{
"videoUrls": ["https://www.tiktok.com/@ishowspeed/video/7621300668329905422"]
}
  • videoUrls: the TikTok videos to export comments from. Full URLs, any number of them.
  • maxCommentsPerVideo: default 500. Set 0 to export every comment on the video.
  • includeReplies: default false. When on, replies count toward maxCommentsPerVideo.

โšก Everything from one viral video

{
"videoUrls": ["https://www.tiktok.com/@ishowspeed/video/7621300668329905422"],
"maxCommentsPerVideo": 0,
"includeReplies": true
}

๐Ÿ“ฆ A batch of videos, capped

{
"videoUrls": [
"https://www.tiktok.com/@brand/video/7622233769231142165",
"https://www.tiktok.com/@brand/video/7613032455011945748",
"https://www.tiktok.com/@brand/video/7615909607940588310"
],
"maxCommentsPerVideo": 1000
}

๐Ÿ“ค Output

One flat row per comment or reply, duplicates dropped. Results stream in while the run is going.

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

A reply row, same shape:

{
"comment_id": "7617031854978024193",
"parent_comment_id": "7616086972566078230",
"depth": 1,
"comment": "i did 1,017",
"author_username": "txmfitt"
// HIDDEN: same fields as above
}

โš ๏ธ Replies are rows, not nested objects. Filter depth == 0 for top-level comments, or group on parent_comment_id to rebuild threads.

Fields

FieldNotes
video_urlThe video this comment belongs to
comment_idUnique comment ID
parent_comment_idEmpty for top-level comments
reply_to_reply_idWhich reply inside the thread was answered
depth0 = top-level, 1 = reply
commentComment text, empty for image-only comments
comment_image_urlImage URL for image-only comments
likesLike count
reply_countNumber of replies
created_atISO 8601 timestamp, UTC
author_usernameCommenter's @username
author_display_nameCommenter's display name
author_idTikTok numeric user ID
reply_to_usernameUsername being replied to
liked_by_video_creatorCreator liked this comment
pinnedCreator pinned this comment
purchase_intentTikTok's flag for buying intent ("Where can I buy this?")
comment_languageLanguage code, "un" = undetermined
share_urlDirect share link

โš™๏ธ Use it as a TikTok comment API

Every run is an HTTP endpoint: POST the same JSON as the form and the comment rows come back in the response body.

Python

import requests
resp = requests.post(
"https://api.apify.com/v2/acts/thodor~tiktok-comments-scraper/run-sync-get-dataset-items",
params={"token": "<YOUR_APIFY_TOKEN>"},
json={"videoUrls": ["https://www.tiktok.com/@ishowspeed/video/7621300668329905422"]},
)
comments = resp.json()

Node.js

const axios = require("axios");
const { data: comments } = await axios.post(
"https://api.apify.com/v2/acts/thodor~tiktok-comments-scraper/run-sync-get-dataset-items",
{ videoUrls: ["https://www.tiktok.com/@ishowspeed/video/7621300668329905422"] },
{ params: { token: process.env.APIFY_TOKEN } }
);

curl

curl -X POST "https://api.apify.com/v2/acts/thodor~tiktok-comments-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"videoUrls": ["https://www.tiktok.com/@ishowspeed/video/7621300668329905422"]}'

Big video? Swap run-sync-get-dataset-items for runs to go async with a webhook. n8n, Make, and Zapier take the same input.

๐Ÿ’ก Tip: no need to write the JSON by hand. Fill in the form on the Input tab, switch the editor from Form to JSON, and copy the result into your code.

๐Ÿ’ฐ How much does it cost to export TikTok comments?

You pay per comment or reply pushed to the dataset, at the rate on the price card on this page. Retries, blocks, and duplicates cost nothing.

maxCommentsPerVideo is the cost cap. The default of 500 keeps a first run cheap.

โš ๏ธ A viral video can be a big bill. maxCommentsPerVideo: 0 with replies on against a 600,000-comment video bills all 600,000 rows.

โ“ FAQ

Is there a free tool that can scrape TikTok comments? Yes. Registering on Apify comes with $5 of free platform credit every month, no credit card needed. That covers around 10,000 comments.

Do I need a browser extension to export TikTok comments? No. This runs in the cloud: nothing to install, no tab to keep open, works from any device.

Is there an official TikTok comments API? TikTok's Research API is limited to vetted academic researchers, and the commercial Display API does not return comments. This actor works with any Apify account.

Can I export comments from a whole profile by username? No. Input is video URLs only; the old username mode was removed.

In what order do rows arrive when replies are on? Page by page: top-level comments first, then their replies, then the next page. For all top-level comments first, run once with replies off.

Why did a video return 0 comments? Some videos have comments switched off or simply none. Blocks retry automatically, so 0 means there was nothing to get.

Can I track new comments on a video over time? Yes. Put the actor on an Apify Schedule (daily or weekly) with the same URLs and compare runs on comment_id to see what is new.

Is it legal to scrape TikTok comments? The actor reads only publicly visible comments on public videos. Storing and using personal data is governed by rules like GDPR; check what applies to your project.

๐Ÿ›Ÿ Support

Something not working, or a field missing? Message me in the Issues tab and I'll look into it quickly. I'm a solo dev, so don't hesitate.

  • Thodor