mcpField
S
scraping-tiktok-videos-by-hashtag

scraping-tiktok-videos-by-hashtag

github.com/apidojo-io数据与数据库1775 次安装24 周前更新
代码仓库

关于 scraping-tiktok-videos-by-hashtag

用于调用 Apify TikTok scraper 的数据采集技能,可按标签、关键词或指定的 TikTok URL 获取视频元数据。

主要功能

  1. 01搜索关键词或提供的 TikTok URL
  2. 02按相关度、点赞数或日期排序
  3. 03按国家筛选结果
  4. 04返回视频元数据和互动指标
  5. 05支持限制结果数和转换输出

适用场景

  1. 01收集标签或关键词相关视频
  2. 02比较特定地区搜索结果的视频互动
  3. 03从 TikTok URL 构建限定数量的数据集

MCP 相关

如已安装 Apify MCP 服务,可通过其 run-actor 工具调用 Apify Actor。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/apidojo-io/apidojo-skills --skill scraping-tiktok-videos-by-hashtag

安装后在 Claude Code 中输入/scraping-tiktok-videos-by-hashtag确认已加载。

详细介绍

按话题标签抓取 TikTok 视频

适用于任意 TikTok 话题标签或关键词的原始视频数据集。返回完整的视频元数据,包括互动指标和作者信息。

前置条件

  • 已设置 APIFY_TOKEN 环境变量
  • 可选:已安装 Apify MCP 服务

输入

参数类型必填默认值备注
startUrls数组可选[]TikTok URL — 用户个人资料、话题标签、音乐页面、搜索、地点
keywords数组可选[]用于查找帖子的搜索关键词/词语
sortType字符串可选RELEVANCE关键词结果的排序方式:RELEVANCE、MOST_LIKED、DATE_POSTED
location字符串可选—用于区域筛选的 ISO 3166-1 alpha-2 国家代码(例如 US、GB)
maxItems数字可选不限本次运行最多返回的帖子数量
includeSearchKeywords布尔值可选false将匹配的搜索关键词字段添加到每条帖子中
customMapFunction字符串可选—用于转换每个输出对象的 JavaScript 函数

工作流

Progress:
- [ ] Step 1: Normalize hashtag list
- [ ] Step 2: Run tiktok-scraper
- [ ] Step 3: Poll for SUCCEEDED
- [ ] Step 4: Deliver video dataset
第 2 步:运行 Actor

推荐 — run_actor.js(自动处理等待、输出和文件保存):

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

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

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

必须在环境变量或 .env 文件中设置 APIFY_TOKEN。

如果 Apify MCP 可用:

Tool: apify:run-actor
Actor: "apidojo~tiktok-scraper"
Input:
{
  "keywords": ["tag1", "tag2"],
  "maxItems": 100
}

REST API 备用方案:

curl -X POST \
  "https://api.apify.com/v2/acts/apidojo~tiktok-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"keywords": ["tag1", "tag2"], "maxItems": 100}'

将 id 保存为 RUN_ID。轮询直到 status = SUCCEEDED:

curl "https://api.apify.com/v2/actor-runs/$RUN_ID?token=$APIFY_TOKEN" | grep '"status"'

获取结果:

curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN&format=json"
第 3 步:处理边缘情况
  • 话题标签返回 0 条结果:TikTok 可能已封禁该话题标签,或其拼写有误。尝试其他拼写。
  • 结果少于 20 条:该话题标签可能非常小众 — 告知用户,并返回现有结果。
  • 不同话题标签下的视频 ID 重复:按 videoId 字段去重。

输出格式

# TikTok Video Dataset: #<hashtag>
Videos collected: N | Hashtags queried: N

| Video ID | Author | Caption (truncated) | Views | Likes | Comments | Shares | Posted |
|----------|--------|---------------------|-------|-------|----------|--------|--------|
| ...      | ...    | ...                 | ...   | ...   | ...      | ...    | ...    |

Available fields: videoId, authorUsername, desc, playCount, diggCount, commentCount,
shareCount, createTime, videoUrl, musicTitle, hashtags, isAd

故障排除

被封禁的话题标签返回 0 条结果: TikTok 会限制某些话题标签 — 尝试使用其上级类别标签。 运行缓慢: TikTok 的速率限制很严格;每次运行将 maxItems 设为 200 是较安全的上限。

评论

支持 Markdown