analyzing-competitor-tiktok-content-strategy
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseAnalyzing 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
前提条件
- environment variable set
APIFY_TOKEN - Optional: Apify MCP server installed
- 已设置环境变量
APIFY_TOKEN - 可选:已安装Apify MCP服务器
Inputs
输入参数
| Parameter | Type | Required | Default | Notes |
|---|---|---|---|---|
| array | Optional | | TikTok URLs — user profiles, hashtags, music pages, search, locations |
| array | Optional | | Search keywords/terms to find posts |
| string | Optional | | Sort order for keyword results: |
| string | Optional | — | ISO 3166-1 alpha-2 country code for regional filtering (e.g. |
| number | Optional | Unlimited | Maximum posts to return across the run |
| boolean | Optional | | Add the matched search keyword field to each post |
| string | Optional | — | JavaScript function to transform each output object |
| 参数 | 类型 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|
| 数组 | 可选 | | TikTok链接 — 用户主页、话题标签、音乐页面、搜索结果、地点页面 |
| 数组 | 可选 | | 用于查找帖子的搜索关键词/术语 |
| 字符串 | 可选 | | 关键词搜索结果的排序方式: |
| 字符串 | 可选 | — | 用于区域筛选的ISO 3166-1 alpha-2国家代码(例如 |
| 数字 | 可选 | 无限制 | 本次运行返回的最大帖子数量 |
| 布尔值 | 可选 | | 为每个帖子添加匹配的搜索关键词字段 |
| 字符串 | 可选 | — | 用于转换每个输出对象的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
undefinedQuick answer (prints table to chat)
快速输出(在聊天窗口打印表格)
node scripts/run_actor.js
--actor "apidojo~tiktok-scraper"
--input '{"param": "value"}'
--actor "apidojo~tiktok-scraper"
--input '{"param": "value"}'
node scripts/run_actor.js
--actor "apidojo~tiktok-scraper"
--input '{"param": "value"}'
--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
--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
--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
--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: , (total likes), count, , bio text.
fansheartvideofollowingnode scripts/run_actor.js
--actor "apidojo~tiktok-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.json --format json
--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]"]}'提取数据:(粉丝数)、(总点赞数)、(视频数量)、(关注数)、个人简介文本。
fansheartvideofollowingStep 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
输出格式
undefinedundefinedTikTok 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 Excerpt | Views | Likes | Comments | Hashtags | Date |
|---|---|---|---|---|---|---|
| 1 | "[caption]" | [N] | [N] | [N] | [tags] | [date] |
| # | 文案摘要 | 浏览量 | 点赞数 | 评论数 | 话题标签 | 发布日期 |
|---|---|---|---|---|---|---|
| 1 | "[caption]" | [N] | [N] | [N] | [tags] | [date] |
Content Mix
内容分布
| Format | % of Videos | Avg 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
高频使用话题标签
- #[tag] — used in [N] of [total] videos
- #[tag] — [N] videos
- #[tag] — [N] videos
- #[tag] — 在[总视频数]条视频中使用了[N]次
- #[tag] — [N]条视频使用
- #[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
其成功经验
- [Insight 1 — specific, actionable]
- [Insight 2]
- [Insight 3]
- [洞察1 — 具体、可落地]
- [洞察2]
- [洞察3]
Gap / Differentiation Opportunity
差距/差异化机会
[What they're NOT doing that could be a strategic opening]
undefined[竞争对手未涉足的领域,可作为战略突破口]
undefinedTroubleshooting
故障排查
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是否正确。
优质视频均为旧内容: 该账号可能已放缓更新节奏,请在分析报告中注明此情况。
结果中缺少话题标签: 部分文案未使用话题标签,可转而分析文案文本中的主题信号。