apidojo-io/apidojo-skills

extracting-tiktok-comments-for-research

Extracts and analyzes TikTok comments from any video or creator using apidojo's TikTok Comments scraper on Apify.

소스 보기
원본 Skill 문서

원본 저장소의 제목, 예시, 코드, 표, 링크, 이미지를 유지해 표시합니다.

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):

bash
# 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:

bash
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.

같은 저장소의 Skills

더 많은 Skills

모든 Skills
apidojo-io
커뮤니티

scraping-instagram-comments

Extracts comments from Instagram posts using apidojo's Instagram Comments Scraper on Apify. Triggers when the user asks to: get all comments on an Instagram post, scrape Instagram comment data, export comments from an Instagram URL, fetch comment text and engagement from Instagram posts, collect commenter usernames from a post, or download audience reaction data from Instagram content. Returns comment text, like count, reply count, commenter username, verified status, and timestamp. Ideal for se

설치 수
5
GitHub Stars
1
업데이트
5월 13일
apidojo-io
커뮤니티

scraping-youtube-channel-data

Scrapes YouTube channel statistics and video catalog for any list of channels using apidojo's YouTube scraper on Apify. Triggers when the user asks to: get YouTube channel stats, fetch subscriber count and video count for YouTube channels, scrape channel metadata in bulk, export YouTube channel information by URL or handle, get all videos from a YouTube channel, or check channel growth data for a list of creators. Returns channel name, subscriber count, total views, video count, and recent video

설치 수
3
GitHub Stars
1
업데이트
5월 13일
apidojo-io
커뮤니티

scraping-tweets-by-keyword

Scrapes tweets matching any keyword, hashtag, phrase, or boolean query using apidojo's Twitter Search scraper on Apify. Triggers when the user asks to: scrape tweets about a topic, fetch tweets containing a keyword or hashtag, export Twitter search results to a dataset, get all tweets mentioning a phrase, pull recent tweets for a search term, or collect tweet data for analysis or research. Returns tweet text, author, likes, retweets, replies, timestamp, and tweet URL per result. Ideal for resear

설치 수
2
GitHub Stars
1
업데이트
5월 13일
apidojo-io
커뮤니티

tracking-competitor-social-media-growth

Tracks and compares competitor follower growth across social platforms using apidojo's scrapers on Apify. Triggers when the user asks to: compare competitor social media growth, track how fast a competitor is growing on Twitter, TikTok, or Instagram, benchmark social media performance against competitors, monitor competitor follower counts over time, analyze a competitor's social media strategy, build a competitive social media analysis report, or see which competitor is winning on social. Retur

설치 수
2
GitHub Stars
1
업데이트
5월 13일