analyzing-competitor-tiktok-content-strategy

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Analyzing Competitor TikTok Content Strategy

分析竞争对手的TikTok内容策略

Scrapes a competitor's TikTok profile to pull their recent videos, engagement data, posting patterns, and hashtag usage. Reverse-engineers what's working for them so you can learn from it or differentiate against it.
借助爬虫获取竞争对手的TikTok主页数据,包括其近期视频、互动数据、发布规律及话题标签使用情况。逆向拆解其成功模式,以便从中学习或打造差异化策略。

Prerequisites

前提条件

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

Inputs

输入参数

ParameterTypeRequiredDefaultNotes
startUrls
arrayOptional
[]
TikTok URLs — user profiles, hashtags, music pages, search, locations
keywords
arrayOptional
[]
Search keywords/terms to find posts
sortType
stringOptional
RELEVANCE
Sort order for keyword results:
RELEVANCE
,
MOST_LIKED
,
DATE_POSTED
location
stringOptionalISO 3166-1 alpha-2 country code for regional filtering (e.g.
US
,
GB
)
maxItems
numberOptionalUnlimitedMaximum posts to return across the run
includeSearchKeywords
booleanOptional
false
Add the matched search keyword field to each post
customMapFunction
stringOptionalJavaScript function to transform each output object
参数类型是否必填默认值说明
startUrls
数组可选
[]
TikTok链接 — 用户主页、话题标签、音乐页面、搜索结果、地点页面
keywords
数组可选
[]
用于查找帖子的搜索关键词/术语
sortType
字符串可选
RELEVANCE
关键词搜索结果的排序方式:
RELEVANCE
(相关性)、
MOST_LIKED
(点赞最多)、
DATE_POSTED
(发布日期)
location
字符串可选用于区域筛选的ISO 3166-1 alpha-2国家代码(例如
US
GB
maxItems
数字可选无限制本次运行返回的最大帖子数量
includeSearchKeywords
布尔值可选
false
为每个帖子添加匹配的搜索关键词字段
customMapFunction
字符串可选用于转换每个输出对象的JavaScript函数

Workflow

工作流程

Progress:
- [ ] Step 1: Get competitor TikTok handle(s)
- [ ] Step 2: Pull profile stats with tiktok-profile-scraper
- [ ] Step 3: Pull recent videos with tiktok-scraper
- [ ] Step 4: Identify top-performing content patterns
- [ ] Step 5: Deliver content strategy analysis
进度:
- [ ] 步骤1:获取竞争对手的TikTok账号ID
- [ ] 步骤2:使用tiktok-profile-scraper获取主页统计数据
- [ ] 步骤3:使用tiktok-scraper获取近期视频
- [ ] 步骤4:识别表现最佳的内容模式
- [ ] 步骤5:输出内容策略分析报告

Step 1: Clarify Parameters

步骤1:明确参数

Ask the user for:
  • Competitor TikTok handle(s) — up to 5 accounts (without @)
  • Number of recent videos to analyze (default: 50 — last 2-3 months of content)
  • Analysis focus — top content, posting cadence, hashtag strategy, or all three
向用户确认:
  • 竞争对手的TikTok账号ID — 最多5个(无需@前缀)
  • 待分析的近期视频数量(默认:50条 — 涵盖过去2-3个月的内容)
  • 分析重点 — 优质内容、发布节奏、话题标签策略,或三者兼顾

Step 2: Pull Profile Stats

步骤2:获取主页统计数据

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

Quick answer (prints table to chat)

快速输出(在聊天窗口打印表格)

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

Save as CSV

保存为CSV文件

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

Save as JSON

保存为JSON文件

node scripts/run_actor.js
--actor "apidojo~tiktok-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": ["[handle1]", "[handle2]"] }

**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": ["[handle1]", "[handle2]"]}'
Extract:
fans
,
heart
(total likes),
video
count,
following
, bio text.
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可用:**
工具:apify:run-actor Actor:"apidojo~tiktok-profile-scraper" 输入: { "usernames": ["[handle1]", "[handle2]"] }

**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": ["[handle1]", "[handle2]"]}'
提取数据:
fans
(粉丝数)、
heart
(总点赞数)、
video
(视频数量)、
following
(关注数)、个人简介文本。

Step 3: Pull Recent Videos

步骤3:获取近期视频

If Apify MCP is available:
Tool: apify:run-actor
Actor: "apidojo~tiktok-scraper"
Input:
{
  "profiles": ["https://www.tiktok.com/@[handle1]", "https://www.tiktok.com/@[handle2]"]
}
REST API fallback:
bash
curl -X POST \
  "https://api.apify.com/v2/acts/apidojo~tiktok-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "profiles": ["https://www.tiktok.com/@[handle1]"]
  }'
若Apify MCP可用:
工具:apify:run-actor
Actor:"apidojo~tiktok-scraper"
输入:
{
  "profiles": ["https://www.tiktok.com/@[handle1]", "https://www.tiktok.com/@[handle2]"]
}
REST API备选方案:
bash
curl -X POST \
  "https://api.apify.com/v2/acts/apidojo~tiktok-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "profiles": ["https://www.tiktok.com/@[handle1]"]
  }'

Step 4: Analyze Content Patterns

步骤4:分析内容模式

From the video dataset, extract:
Top 10 videos by play count:
  • Title/caption, views, likes, comments, shares, date, hashtags
Posting frequency:
dates = [video.createTimeISO for each video]
days_covered = max(dates) - min(dates)
posting_rate = total_videos / days_covered (posts per day)
Hashtag analysis: Extract all hashtags across videos. Count frequency. Top 10 = their core hashtag strategy.
Content format patterns: From captions, classify videos into buckets:
  • Educational/Tutorial (contains: "how to", "tips", "learn", numbers like "5 ways")
  • Entertainment/Humor (reactions, trends, dances)
  • Promotional (product mentions, CTAs, "link in bio")
  • Behind-the-scenes (BTS, day-in-life, founder story)
  • UGC/Response (reply to comment format)
Hook patterns in top videos: Look at the first line of captions in the top 10 videos. What do they have in common?
从视频数据集中提取以下信息:
按播放量排名的前10条视频:
  • 标题/文案、浏览量、点赞数、评论数、分享数、发布日期、话题标签
发布频率:
dates = [video.createTimeISO for each video]
days_covered = max(dates) - min(dates)
posting_rate = total_videos / days_covered (每日发布量)
话题标签分析: 提取所有视频中的话题标签,统计使用频率。排名前10的标签即为其核心话题策略。
内容格式分类: 根据文案将视频分为以下类别:
  • 教育/教程类(包含:“how to”、“tips”、“learn”、“5 ways”等数字类表述)
  • 娱乐/幽默类(反应视频、潮流、舞蹈)
  • 推广类(提及产品、行动号召、“link in bio”)
  • 幕后类(BTS、日常记录、创始人故事)
  • 用户生成内容/互动类(回复评论格式)
优质视频的开头模式: 查看前10条视频文案的第一句,总结其共性。

Step 5: Format Analysis

步骤5:格式化分析结果

Output Format

输出格式

undefined
undefined

TikTok Content Strategy Analysis: @[COMPETITOR]

TikTok内容策略分析:@[COMPETITOR]

Videos analyzed: [N] | Period: [start]–[end] | Date: [DATE]
分析视频数量:[N] | 时间范围:[start]–[end] | 分析日期:[DATE]

Account Overview

账号概况

Followers: [N] | Total likes: [N] | Videos posted: [N] | Avg likes per video: [N] Overall engagement rate: [X.X%]
粉丝数:[N] | 总点赞数:[N] | 已发布视频数:[N] | 单视频平均点赞数:[N] 整体互动率:[X.X%]

Posting Pattern

发布规律

  • Frequency: [X] videos per week
  • Best-performing days: [day], [day] (based on publish date of top videos)
  • Average video length: [X] seconds (if available)
  • 发布频率:每周[X]条视频
  • 最佳发布日:[day]、[day](基于优质视频的发布日期)
  • 平均视频时长:[X]秒(若数据可用)

Top 5 Videos (by Views)

播放量Top5视频

#Caption ExcerptViewsLikesCommentsHashtagsDate
1"[caption]"[N][N][N][tags][date]
#文案摘要浏览量点赞数评论数话题标签发布日期
1"[caption]"[N][N][N][tags][date]

Content Mix

内容分布

Format% of VideosAvg Views
Educational[X%][N]
Entertainment[X%][N]
Promotional[X%][N]
BTS/Story[X%][N]
格式占比平均浏览量
教育类[X%][N]
娱乐类[X%][N]
推广类[X%][N]
幕后/故事类[X%][N]

Top Hashtags Used

高频使用话题标签

  1. #[tag] — used in [N] of [total] videos
  2. #[tag] — [N] videos
  3. #[tag] — [N] videos
  1. #[tag] — 在[总视频数]条视频中使用了[N]次
  2. #[tag] — [N]条视频使用
  3. #[tag] — [N]条视频使用

Hook Patterns in Top Content

优质内容的开头模式

  • Top performing hooks start with: [pattern — e.g., questions, numbers, bold claims]
  • Example: "[first line of top video]"
  • 表现最佳的开头类型:[模式 — 例如提问、数字、大胆断言]
  • 示例:"[优质视频的第一句文案]"

What's Working for Them

其成功经验

  1. [Insight 1 — specific, actionable]
  2. [Insight 2]
  3. [Insight 3]
  1. [洞察1 — 具体、可落地]
  2. [洞察2]
  3. [洞察3]

Gap / Differentiation Opportunity

差距/差异化机会

[What they're NOT doing that could be a strategic opening]
undefined
[竞争对手未涉足的领域,可作为战略突破口]
undefined

Troubleshooting

故障排查

Profile scraper returns no videos: The account may have few posts or have gone inactive. Check the handle. Top videos all very old: Account may have slowed down. Note this in the analysis. Hashtags missing from results: Some captions don't use hashtags. Analyze caption text for topic signals instead.
主页爬虫未返回视频: 该账号可能帖子很少或已停止更新,请检查账号ID是否正确。 优质视频均为旧内容: 该账号可能已放缓更新节奏,请在分析报告中注明此情况。 结果中缺少话题标签: 部分文案未使用话题标签,可转而分析文案文本中的主题信号。