scraping-tiktok-user-data — Claude Code skill: how to install
Scrapes a TikTok creator's video history and engagement metrics through Apify. Built for auditing competitor feeds and collecting view counts or comments.
npx skills add apidojo-io/apidojo-skills --skill scraping-tiktok-user-data -a claude-codeWhat scraping-tiktok-user-data does
The skill queries the apidojo/tiktok-user-scraper actor on Apify to extract video history from a profile link. It collects individual video metrics such as views, likes, comments, shares, duration, and hashtags.
Execution happens through run_actor.js, the Apify MCP server, or standard curl calls. Datasets can be saved directly as CSV or JSON files. The scraper can also pull follower and following lists when needed.
You must configure the APIFY_TOKEN environment variable before running it. The actor uses pay-per-result pricing. Pass maxVideos to control API expenses. Private accounts always return zero videos.
What it helps with
- extract video history and engagement stats from a TikTok profile
- export TikTok post metrics directly to CSV or JSON files
- track view counts and comment totals across a creator feed
- retrieve follower and following lists for a given handle
Example prompts for the agent
- Fetch the latest 50 videos from TikTok user @creator and save the metrics to a CSV file
- Scrape all posts and view counts for this TikTok profile URL
How to install scraping-tiktok-user-data
1Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill scraping-tiktok-user-data -a claude-code2Manually: put the files in place
~/.claude/skills/scraping-tiktok-user-data/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/scraping-tiktok-user-data/
1Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill scraping-tiktok-user-data -a codex2Manually: put the files in place
.agents/skills/scraping-tiktok-user-data/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill scraping-tiktok-user-data -a cursor2Manually: put the files in place
.cursor/skills/scraping-tiktok-user-data/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install apidojo-io/apidojo-skills scraping-tiktok-user-data2Manually: put the files in place
.github/skills/scraping-tiktok-user-data/SKILL.md1Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill scraping-tiktok-user-data -a gemini-cli2Platform CLI
gemini skills install https://github.com/apidojo-io/apidojo-skills --path skills/primitives/scraping-tiktok-user-dataManually: put the files in place
.devin/skills/scraping-tiktok-user-data/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add apidojo-io/apidojo-skills --skill scraping-tiktok-user-data -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about scraping-tiktok-user-data
How do I install scraping-tiktok-user-data in Claude Code?
Run npx skills add apidojo-io/apidojo-skills --skill scraping-tiktok-user-data -a claude-code. The skill file installs to ~/.claude/skills/scraping-tiktok-user-data/SKILL.md.
What does scraping-tiktok-user-data do?
It runs the apidojo/tiktok-user-scraper actor on Apify to gather a creator's video feed alongside engagement metrics for every post.
What setup is required before scraping?
Set the APIFY_TOKEN environment variable. To avoid extra costs under Apify pay-per-result billing, set the maxVideos parameter.
Source text
SKILL.md · Apache-2.0
---
name: scraping-tiktok-user-data
description: >
Scrapes detailed TikTok user data and recent video history using apidojo's TikTok User
scraper on Apify. Triggers when the user asks to: get all videos from a TikTok account,
fetch a TikTok creator's recent posts and stats, export a TikTok user's video history,
scrape all TikTok content from a specific creator, get TikTok post data by username,
or collect video-level metrics from a TikTok profile. Returns per-video view count,
likes, comments, shares, captions, and timestamps for a given account.
Ideal for creator analysis, content auditing, and competitive benchmarking.
license: Apache-2.0
metadata:
author: apidojo
version: "1.0"
apify-actor: apidojo/tiktok-user-scraper
---
# Scraping TikTok User Data
Exports a creator's full video history with per-video engagement metrics. Complements `scraping-tiktok-profile-data` (account-level) with video-level detail.
## Prerequisites
- `APIFY_TOKEN` environment variable set
- Optional: Apify MCP server installed
## Inputs
| Parameter | Type | Required | Default | Notes |
|-----------|------|----------|---------|-------|
| `startUrls` | array | ✅ | `[]` | TikTok profile URLs or video URLs (extracts author from videos) |
| `getFollowers` | boolean | Optional | `false` | Also extract complete follower lists |
| `getFollowing` | boolean | Optional | `false` | Also extract complete following lists |
| `maxItems` | number | Optional | Unlimited | Maximum users to return |
| `customMapFunction` | string | Optional | — | JavaScript function to transform each output object |
## Workflow
```
Progress:
- [ ] Step 1: Run tiktok-user-scraper
- [ ] Step 2: Poll for SUCCEEDED
- [ ] Step 3: Deliver video dataset
```
### Step 1: 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-user-scraper" \
--input '{"param": "value"}'
# Save as CSV
node scripts/run_actor.js \
--actor "apidojo~tiktok-user-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.csv --format csv
# Save as JSON
node scripts/run_actor.js \
--actor "apidojo~tiktok-user-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-user-scraper"
Input:
{
"username": "<handle>",
"maxVideos": 50
}
```
**REST API fallback:**
```bash
curl -X POST \
"https://api.apify.com/v2/acts/apidojo~tiktok-user-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"username": "<handle>", "maxVideos": 50}'
```
Save `id` as `RUN_ID`. Poll until `status = SUCCEEDED`:
```bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID?token=$APIFY_TOKEN" | grep '"status"'
```
Fetch results:
```bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN&format=json"
```
### Step 2: Handle Edge Cases
- **Private account**: Returns 0 videos. Inform user.
- **Account with < requested videos**: Return all available; note count in output.
- **Deleted videos in feed**: Skip entries with missing `playCount` fields.
## Output Format
```
# TikTok Video History: @<username>
Videos collected: N
| Video ID | Caption (truncated) | Views | Likes | Comments | Shares | Duration | Posted |
|----------|---------------------|-------|-------|----------|--------|----------|--------|
| ... | ... | ... | ... | ... | ... | ... | ... |
Available fields: videoId, desc, playCount, diggCount, commentCount, shareCount,
duration, createTime, videoUrl, musicTitle, hashtags
```
## Troubleshooting
**0 videos returned:** Account is private or username incorrect.
**Pay-per-result billing:** This actor uses pay-per-result pricing — set `maxVideos` to control cost.
© apidojo · Apache-2.0 · apidojo-io/apidojo-skills