scraping-tiktok-profile-data

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Scraping TikTok Profile Data

抓取TikTok主页数据

Bulk account-level statistics for any set of TikTok usernames. Returns follower counts, engagement totals, bio, and video count.
批量获取任意TikTok用户名的账号级统计数据。返回内容包括粉丝数、互动总量、个人简介及视频数量。

Prerequisites

前提条件

  • APIFY_TOKEN
    environment variable set
  • Optional: Apify MCP server installed
  • 已设置
    APIFY_TOKEN
    环境变量
  • 可选:已安装Apify MCP服务器

Inputs

输入参数

ParameterTypeRequiredDefaultNotes
startUrls
arrayOptional
[]
TikTok profile URLs
usernames
arrayOptional
[]
TikTok usernames (without @)
since
stringOptionalReturn posts after this date (YYYY-MM-DD)
until
stringOptionalReturn posts before this date (YYYY-MM-DD)
maxItems
numberOptionalUnlimitedMaximum posts to return
customMapFunction
stringOptionalJavaScript function to transform each output object
参数类型是否必填默认值说明
startUrls
数组可选
[]
TikTok主页URL
usernames
数组可选
[]
TikTok用户名(不含@)
since
字符串可选返回该日期之后的帖子(格式:YYYY-MM-DD)
until
字符串可选返回该日期之前的帖子(格式:YYYY-MM-DD)
maxItems
数字可选无限制返回的最大帖子数量
customMapFunction
字符串可选用于转换每个输出对象的JavaScript函数

Workflow

工作流程

Progress:
- [ ] Step 1: Normalize username list
- [ ] Step 2: Run tiktok-profile-scraper
- [ ] Step 3: Poll for SUCCEEDED
- [ ] Step 4: Deliver profile dataset
Progress:
- [ ] Step 1: Normalize username list
- [ ] Step 2: Run tiktok-profile-scraper
- [ ] Step 3: Poll for SUCCEEDED
- [ ] Step 4: Deliver profile dataset

Step 2: Run the Actor

Step 2: Run the Actor

Recommended — run_actor.js (handles waiting, output, and file saving automatically):
bash
undefined
推荐方式 — run_actor.js(自动处理等待、输出及文件保存):
bash
undefined

Quick answer (prints table to chat)

Quick answer (prints table to chat)

node scripts/run_actor.js
--actor "apidojo~tiktok-profile-scraper"
--input '{"param": "value"}'
node scripts/run_actor.js
--actor "apidojo~tiktok-profile-scraper"
--input '{"param": "value"}'

Save as CSV

Save as CSV

node scripts/run_actor.js
--actor "apidojo~tiktok-profile-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.csv --format csv
node scripts/run_actor.js
--actor "apidojo~tiktok-profile-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.csv --format csv

Save as JSON

Save as JSON

node scripts/run_actor.js
--actor "apidojo~tiktok-profile-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-profile-scraper" Input: { "usernames": ["creator1", "creator2"] }

**REST API fallback:**
```bash
curl -X POST \
  "https://api.apify.com/v2/acts/apidojo~tiktok-profile-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"usernames": ["creator1", "creator2"]}'
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"
node scripts/run_actor.js
--actor "apidojo~tiktok-profile-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.json --format json
> `APIFY_TOKEN` must be set in environment or `.env` file.

**若Apify MCP可用:**
Tool: apify:run-actor Actor: "apidojo~tiktok-profile-scraper" Input: { "usernames": ["creator1", "creator2"] }

**REST API备选方案:**
```bash
curl -X POST \
  "https://api.apify.com/v2/acts/apidojo~tiktok-profile-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"usernames": ["creator1", "creator2"]}'
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 3: Handle Edge Cases

步骤3:处理边缘情况

  • Account not found: Username banned, deleted, or changed. Flag in output.
  • Private account: Returns 0 video count with profile metadata — mark
    isPrivate: true
    .
  • Batch > 500: Split into smaller batches for reliability.
  • 账号未找到:用户名已被封禁、删除或更改。在输出中标记。
  • 私密账号:返回0视频数量及主页元数据 — 标记
    isPrivate: true
  • 批量数量>500:拆分为更小的批次以保证可靠性。

Output Format

输出格式

undefined
undefined

TikTok Profile Dataset

TikTok Profile Dataset

Accounts requested: N | Returned: N | Not found: N
UsernameFollowersFollowingTotal LikesVideosBio (truncated)Verified
.....................
Available fields: username, nickname, followerCount, followingCount, heartCount, videoCount, signature, verified, bioLink, avatarUrl
undefined
Accounts requested: N | Returned: N | Not found: N
UsernameFollowersFollowingTotal LikesVideosBio (truncated)Verified
.....................
Available fields: username, nickname, followerCount, followingCount, heartCount, videoCount, signature, verified, bioLink, avatarUrl
undefined

Troubleshooting

故障排除

Missing accounts: Username may have changed — verify on TikTok directly. Stale follower counts: TikTok data may lag 24–48 hours; re-run for fresh data.
账号缺失:用户名可能已更改 — 直接在TikTok上验证。 粉丝数过时:TikTok数据可能存在24–48小时的延迟;重新运行以获取最新数据。