Skip to main content
tiktok_comments collects the comments on TikTok videos, and their replies if you ask. One result is one comment or one reply. Rows have the same fields as Instagram comments, so one parser reads both.

Run it

Inputs

Send directUrls, handles, or both, in config. A video found through both is collected once.
Always set maxComments. It is your cost ceiling. Without it, credit is reserved for maxPosts × maxCommentsPerPost comments (twice that with replies) when the job is created, also for directUrls.
enrichCommenterProfiles is accepted (as JSON true or false only) but does nothing on TikTok. With true, the job reports scraper_metadata.enrichment: {"enabled": false, "reason": "disabled_for_tiktok"} and adds a warning to its log.

Output

One row per comment or reply. Every field is always present. A real row from a job on @duolingo’s videos; the commenter’s handle, name, ids and picture are replaced with placeholders here:

What logged-out means here

You get: comments and replies on public videos, with the commenter’s handle, name, picture and verified badge. Not available:
  • Comments on deleted, private or region-blocked videos, or videos with comments turned off. These count in posts_unavailable and return no rows.
  • Whether a commenter’s account is private.
  • Videos of private, deleted, banned or blocked accounts given as handles. They are skipped without a per-handle report; if no video is found at all, the job fails.

Completeness

scraper_metadata.completeness: