mcpField
E
extracting-tiktok-comments-for-research

extracting-tiktok-comments-for-research

github.com/apidojo-ioData & databases1779 installsUpdated 24w ago
Repository

About extracting-tiktok-comments-for-research

A skill for collecting and analyzing public TikTok video comments. It guides research workflows for sentiment, product feedback, audience questions, and top reactions using Apify’s comment scraper.

Key features

  1. 01Scrape public video comments
  2. 02Optionally include replies
  3. 03Clean and filter comment data
  4. 04Analyze sentiment and product feedback
  5. 05Rank comments by likes

Use cases

  1. 01Measure reactions to a product launch
  2. 02Find recurring audience questions
  3. 03Compare sentiment across videos

MCP support

When Apify MCP is available, the skill runs the `apidojo~tiktok-comments-scraper` actor through `apify:run-actor`.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/apidojo-io/apidojo-skills --skill extracting-tiktok-comments-for-research

After installing, type/extracting-tiktok-comments-for-researchin Claude Code to confirm it loaded.

Details

From the project README

Extracting TikTok Comments for Research

Pulls all public comments from TikTok videos for audience sentiment analysis, product research, or competitive intelligence. Comments are the rawest form of consumer voice — unfiltered reactions at scale.

Prerequisites

  • APIFY_TOKEN environment variable set
  • Optional: Apify MCP server installed

Inputs

ParameterTypeRequiredDefaultNotes
startUrlsarray✅[]TikTok video URLs to scrape comments from
includeRepliesbooleanOptionalfalseInclude reply comments (nested)
maxItemsnumberOptionalUnlimitedMaximum comments to return
customMapFunctionstringOptional—JavaScript function to transform each output object

Workflow

Progress:
- [ ] Step 1: Identify target video(s) and research goal
- [ ] Step 2: Run tiktok-comments-scraper
- [ ] Step 3: Fetch and clean comment dataset
- [ ] Step 4: Analyze themes, sentiment, and top comments
- [ ] Step 5: Deliver research output
Step 1: Clarify Parameters

Ask the user for:

  • TikTok video URL(s) — direct links to specific videos (e.g., https://www.tiktok.com/@creator/video/[ID]) OR
  • Creator handle — pull comments from their most recent/viral videos
  • Max comments per video (default: 500; max: ~3,000)
  • Research goal — sentiment analysis, product feedback, audience profiling, or competitive intel
  • Date filter (optional — focus on recent comments only)

Tip for best research: Use 3-5 videos from the same creator or about the same topic for a reliable dataset.

Step 2: Run the Actor

Recommended — run_actor.js (handles waiting, output, and file saving automatically):

# Quick answer (prints table to chat)
node scripts/run_actor.js \
  --actor "apidojo~tiktok-comments-scraper" \
  --input '{"param": "value"}'

# Save as CSV
node scripts/run_actor.js \
  --actor "apidojo~tiktok-comments-scraper" \
  --input '{"param": "value"}' \
  --output YYYY-MM-DD_results.csv --format csv

# Save as JSON
node scripts/run_actor.js \
  --actor "apidojo~tiktok-comments-scraper" \
  --input '{"param": "value"}' \
  --output YYYY-MM-DD_results.json --format json

APIFY_TOKEN must be set in environment or .env file.

If Apify MCP is available:

Tool: apify:run-actor
Actor: "apidojo~tiktok-comments-scraper"
Input:
{
  "postURLs": [
    "https://www.tiktok.com/@[handle]/video/[VIDEO_ID_1]",
    "https://www.tiktok.com/@[handle]/video/[VIDEO_ID_2]"
  ],
  "maxCommentsPerPost": 500,
  "includeReplies": false
}

REST API fallback:

curl -X POST \
  "https://api.apify.com/v2/acts/apidojo~tiktok-comments-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "postURLs": [
      "https://www.tiktok.com/@[handle]/video/[VIDEO_ID]"
    ],
    "maxCommentsPerPost": 500,
    "includeReplies": false
  }'

Wait for SUCCEEDED. Fetch dataset.

Step 3: Clean Comment Dataset

From raw dataset, extract per comment:

  • text — the comment text
  • author.uniqueId — commenter username
  • diggCount — likes on the comment
  • replyCommentTotal — how many replies this comment received
  • createTime — timestamp

Clean:

  • Remove empty or emoji-only comments (if doing text analysis)
  • Remove spam patterns (repeated text, links, self-promotions)
  • Remove the creator's own replies (identified by matching author.uniqueId)
Step 4: Analyze by Goal

Goal: Sentiment analysis Classify each comment as Positive / Negative / Neutral (use the same lexical method as the Twitter sentiment skill). Weight by diggCount — a liked comment reflects community agreement.

Goal: Product feedback Look for:

  • Feature requests: "I wish", "you should", "would be better if", "needs"
  • Pain points: "why doesn't it", "can't believe", "problem with", "doesn't work"
  • Specific product mentions: nouns that repeat across multiple comments

Goal: Audience profiling From commenter bios (if available) and comment language:

  • Identify audience demographics signals (age signals, geographic signals, interest signals)
  • Find what questions the audience asks most

Goal: Top comments Simply sort by diggCount descending. Top-liked comments represent the community's most agreed-upon reactions.

Step 5: Format Output

Output Format

# TikTok Comment Analysis
Video(s): [N] | Total comments analyzed: [N] | Date: [DATE]

## Source Videos
| Video | Creator | Views | Comments Extracted |
|-------|---------|-------|-------------------|
| [url] | @[handle] | [N] | [N] |

## Sentiment Distribution (if goal = sentiment)
Positive: [X%] ([N] comments) | Negative: [X%] | Neutral: [X%]
Weighted by likes — Positive: [X%] | Negative: [X%]

## Top 10 Most-Liked Comments
| # | Comment | Likes | Replies |
|---|---------|-------|---------|
| 1 | "[comment text]" | [N] | [N] |

## Key Themes in Comments
| Theme | Frequency | Avg Likes per Comment |
|-------|-----------|----------------------|
| [Theme 1] | [N] | [N] |
| [Theme 2] | [N] | [N] |

## Most Asked Questions
1. "[question text]" — asked by [N] commenters
2. "[question text]" — [N] commenters

## Common Complaints / Pain Points
1. "[pain point]" — [N] comments, [N] total likes

## Audience Signals
- Age/demographic indicators: [summary]
- Geographic signals: [summary]
- Interest signals: [summary]

Troubleshooting

Few comments returned: Video may have comments disabled or be relatively new. Try a different video. All comments in non-English: Add a language filter post-processing, or adjust the search to English-language TikTok creators. Spam dominates results: Apply a filter: remove comments shorter than 5 words AND with 0 likes, which tend to be bots.

Comments

Markdown supported