
创作者研究悄无声息地吞噬了整个下午。浏览TikTok、YouTube和Instagram,把观看次数复制到表格里,然后却弄丢了真正重要的那一条帖子。
每周收到创作者研究邮件会破坏这种习惯。
演员表 抓取公开的创作者帖子,以及 n8n 自动化工作流程 对每篇帖子进行评分,标记异常值并提出问题 AI 模型用于识别钩型。
然后,每周同一天,您都会在 Gmail 中收到一份简洁明了的摘要,在您喝第一杯咖啡之前就可以阅读了。
以下是从 Actor 输入开始,逐节点构建的完整过程: 参与度评分逻辑 至 AI 内容摘要 以及错误警报。没有理论,只有一个可以复制的系统。
爱莫乔's 快速判决
每周你的收件箱里都有哪些内容
在修改节点之前,请锁定输出。只有当每封邮件都按相同顺序回答相同问题时,研究收件箱才能有效运作。
| 摘要部分 | 它显示了什么 | 源节点 |
|---|---|---|
| 顶级异常值 | 浏览量最高的帖子与创作者's 通常中位数 | 评分代码节点 |
| 参与领导者 | 浏览量最高的点赞、评论和分享次数最多的帖子 | 评分代码节点 |
| 模式注释 | 获奖文章中反复出现的标题、格式和主题 | 基本LLM链 |
| 内容创意 | 你的团队本周可以测试的三个想法 | 基本LLM链 |
| 原始日志链接 | 包含所有抓取帖子的 Google 表格,以便后续筛选 | Google Sheets 节点 |
广告公司用它来向客户进行简报,品牌团队用它来寻找合适的网红合作伙伴,独立创作者用它来追踪竞争对手,而无需打开任何应用程序。
数据流保持简单:
选择 Apify Actor 以获取创作者数据

Apify Store 提供名为 Actors 的现成爬虫。其中三个 Actors 可以满足大多数创作者研究需求,并且每个 Actors 都提供日期筛选功能,以确保每周抓取的数据量精简。
| 演员 | 关键输入字段 | 值得保留的输出字段 |
|---|---|---|
| YouTube 数据抓取器streamers/youtube-scraper | startUrls、maxResults、maxResultsShorts、maxResultStreams、sortVideosBy、oldestPostDate | 标题、网址、日期、浏览量、点赞数、评论数、频道名称、订阅者数量 |
| 抖音爬虫时钟/抖音抓取器 | 个人资料、每页结果数、个人资料排序、排除置顶帖子、最早帖子日期统一 | 文本、视频网址、创建时间 ISO、播放次数、Digg 计数、评论计数、分享计数、收集计数、作者元数据粉丝数 |
| Instagram刮板apify/instagram-scraper | directUrls、resultsType、resultsLimit、onlyPostsNewerThan | 标题、网址、短代码、时间戳、点赞数、评论数、视频观看次数、所有者用户名 |
这里有些细节很重要。YouTube 数据抓取器's 日期范围仅适用于频道 URL,将任何类型的限制设置为 0 将完全跳过该格式。
TikTok Scraper 的个人资料排序功能支持最新、最热门或最旧三种排序方式。其日期筛选器在“演员”页面上被标记为收费筛选器,因此请在启用前查看。
需要获取 Instagram 的粉丝数量和个人简介吗?添加Instagram Profile Scraper (apify/instagram-profile-scraper) 并传入一个用户名数组即可。它会返回粉丝数量、个人简介、已验证状态和最新帖子。
文字稿是可选的附加功能。YouTube 抓取工具's transcriptionAndSubtitle 和 TikTok 抓取器's downloadSubtitlesOptions 会调用语音钩子,这使得 AI 音符更加尖锐。
n8n 官方 Apify 节点内部

Apify 提供了一个经过验证的社区节点,@apify/n8n-nodes-apify。在n8n Cloud 上,请在节点面板中搜索“Apify”并安装它,前提是管理面板允许安装经过验证的社区节点。

在自托管的 n8n 服务器上,打开“设置”>“社区节点”,粘贴软件包名称并进行安装。该节点需要 n8n 1.57.0 或更高版本。
| 更多相关资源 | 可用操作 | 在本版本中使用 |
|---|---|---|
| 演员 | 执行一个 Actor,执行一个 Actor 并获取其数据集,Web 获取,获取最新执行情况 | 主要刮削步骤 |
| 演员任务 | 执行任务,执行任务并获取其数据集 | Apify 中保存了更清晰的输入。 |
| 演员处决 | 获取一个,获取多个,中止 | 调试和清理 |
| 存放 | 获取数据集项,获取键值存储记录 | 按默认数据集 ID 提取结果 |
| 触发端口 | 发生新的 Apify 事件(成功、失败、中止、超时、任何) | 大型阵容的分屏版收件箱 |
身份验证有两种方式。Apify API凭证使用来自 Apify 控制台的 API 令牌,而Apify OAuth2 API仅可通过在 n8n Cloud 上单击一下进行连接。
Actor 操作还公开了自定义输入(JSON)、超时时间(秒)、内存使用量(兆字节)、构建标签和等待完成。
如果将自定义输入留空,Actor 将使用其保存的默认输入。
每周创作者研究工作流程分步指南
第一步:在 Google 表格中设置创作者名单
创建一个名为“创建者名册”的工作表,包含以下列。团队成员可以直接在工作表中添加或暂停创建者,而无需打开 n8n。
添加一个名为“帖子日志”的第二个标签页。所有评分后的帖子都会记录在这里,方便你随着时间的推移积累历史记录,从而建立更好的基准线。
步骤 2:将每个爬虫保存为 Apify Actor 任务

在 Apify 控制台中打开每个 Actor,设置合理的限制,然后单击“另存为新任务”。
Apify Actor 任务存储输入、超时和内存,因此 n8n 端保持整洁。
务必关闭所有下载选项。视频文件、封面和头像会增加文件大小,对研究并无帮助。
步骤 3:连接 Apify、Google Sheets 和 Gmail 凭据

安装 Apify 节点,然后在 n8n 中添加三个凭据:Apify API、Google Sheets OAuth2和Gmail OAuth2。在进行后续构建之前,请先测试每个凭据。
工作流程进行到一半时,如果凭证失效,就会浪费抓取工作,因此这项检查是值得的。
步骤 4:配置 n8n 计划触发器
插入一个带有以下设置的“计划触发器”节点:
| 呸ld | 价值 |
|---|---|
| 触发间隔 | 周 |
| 触发间隔数周 | 1 |
| 工作日触发 | 星期一 |
| 每小时触发 | 上午7 |
| 触发时间:分钟 | 0 |
在工作流设置中设置时区。如果没有设置时区,n8n 将回退到实例时区,自托管安装默认使用 America/New_York 时区。
更喜欢使用 cron?请使用自定义(Cron)并设置 0 7 * * 1。无论哪种方式,n8n 计划触发器都只会在工作流保存并发布后触发。
步骤 5:使用代码节点构建平台输入
添加一个 Google Sheets 节点(获取行,选项卡“创建者名册”),然后再添加一个代码节点。该代码节点会将名册行转换为每个平台一个输入对象。
const rows = $input.all().map(i => i.json).filter(r => r.active === 'yes');
const since = $now.minus({ days: 7 }).toFormat('yyyy-MM-dd');
const pick = p => rows.filter(r => r.platform === p);
return [{ json: {
youtube: {
startUrls: pick('youtube').map(r => ({ url: r.profile_url })),
maxResults: 15, maxResultsShorts: 15, maxResultStreams: 0,
sortVideosBy: 'NEWEST', oldestPostDate: since
},
tiktok: {
profiles: pick('tiktok').map(r => r.handle),
resultsPerPage: 20, profileSorting: 'latest',
excludePinnedPosts: true, oldestPostDateUnified: since
},
instagram: {
directUrls: pick('instagram').map(r => r.profile_url),
resultsType: 'posts', resultsLimit: 20, onlyPostsNewerThan: since
}
}}];
$now 是 n8n's 内置 Luxon 日期功能,因此每周都会自动向前滚动七天。无需手动编辑日期。
步骤 6:并行执行三个 Apify Actor
将代码节点分支成三个 Apify 节点。选择 Actor Tasks 资源,并执行执行任务的操作,该操作会返回其数据集项。
在自定义输入中,将匹配的对象作为表达式传递:
{{ JSON.stringify($json.youtube) }}
对 $json.tiktok 和 $json.instagram 重复上述步骤。自定义输入会覆盖已保存的任务输入,而超时和内存使用情况仍然来自任务本身。
想要使用两个独立的节点?执行 Actor 时启用“等待完成”选项,然后添加“使用 {{ $json.defaultDatasetId }}获取数据集项”功能。两条路径返回的数据完全相同。

步骤 7:合并并规范化为一个模式
将所有三个 Apify 节点连接到设置为“追加”的 Merge节点。由于每个平台对字段的命名方式不同,因此需要使用 Code 节点将它们映射到一个共享的形状中。
const out = [];
for (const { json: p } of $input.all()) {
if (p.error) continue; // skip failed inputs
if (p.webVideoUrl) {
out.push({ platform: 'tiktok', post_id: p.id, creator: p.authorMeta?.name,
url: p.webVideoUrl, caption: p.text, published: p.createTimeISO,
views: p.playCount, likes: p.diggCount, comments: p.commentCount,
shares: p.shareCount });
} else if (p.shortCode) {
out.push({ platform: 'instagram', post_id: p.shortCode, creator: p.ownerUsername,
url: p.url, caption: p.caption, published: p.timestamp,
views: p.videoViewCount ?? null, likes: p.likesCount,
comments: p.commentsCount, shares: null });
} else if (p.viewCount !== undefined) {
out.push({ platform: 'youtube', post_id: p.id, creator: p.channelName,
url: p.url, caption: p.title, published: p.date,
views: p.viewCount, likes: p.likes, comments: p.commentsCount,
shares: null });
}
}
return out.map(json => ({ json }));
YouTube Scraper会针对已删除的视频或缺失的频道写入错误条目。p.error 检查会在这些错误条目影响评分之前将其删除。
步骤 8:使用异常值和互动率数学方法对每个帖子进行评分
原始浏览量会夸大大号的流量。创作者异常值评分会将每篇帖子与该创作者自身的中位数进行比较,因此小频道的超高浏览量会更加突出。
| 米制 | 公式 | 它告诉你什么 |
|---|---|---|
| 异常值得分 | 帖子浏览量 ÷ 创建者平均浏览量 | 帖子比自身基线高出多少 |
| *粉丝互动率 | (点赞数 + 评论数 + 分享数)÷ 浏览量 × 100 | 观众反应有多强烈 |
| Instagram 备用方案 | 帖子点赞数 ÷ 创建者点赞数中位数 | 适用于浏览量为零的图片帖子 |
const items = $input.all().map(i => i.json);
const base = it => it.views || it.likes || 0;
const groups = {};
for (const it of items) (groups[it.creator] ??= []).push(base(it));
const median = a => { const s = [...a].sort((x, y) => x - y), m = Math.floor(s.length / 2);
return s.length % 2 ? s[m] : (s[m - 1] + s[m]) / 2; };
return items.map(it => {
const med = median(groups[it.creator]) || 1;
const eng = it.views ? ((it.likes || 0) + (it.comments || 0) + (it.shares || 0)) / it.views * 100 : null;
return { json: { ...it, outlier: +(base(it) / med).toFixed(2),
engagement: eng === null ? null : +eng.toFixed(2) } };
}).sort((a, b) => b.json.outlier - a.json.outlier);
一周的帖子数据只能提供粗略的基线。几周后,请查看“帖子日志”选项卡,并根据过往历史记录计算中位数。
步骤 9:使用“删除重复项”节点阻止重复项

在评分后添加一个“删除重复项”节点。将操作设置为“删除先前执行中处理过的项目,并保留值为新值的项目” 。
此持久性去重功能可防止手动重新触发发送操作,从而避免向相同的帖子发送两次电子邮件。“清除去重历史记录”功能会在测试期间重置此设置。
第 10 步:添加 AI 模式分析层
使用 Limit 节点保留前 15 个帖子,然后使用 Aggregate 节点将结果设置为“所有项目数据”。这样就将整个批次的数据传递给了目标节点。 AI 作为一件物品。

接下来,添加一个基本 LLM 链,其中包含您已经使用的任何聊天模型,例如 OpenAI、Anthropic 或 Gemini。
启用“需要特定输出格式”并附加结构化输出解析器。
您是一位短篇内容策略师。
以下是本周内容's 顶级创作者的帖子以 JSON 格式呈现,并按异常值得分排名。
返回包含以下内容的 JSON:
– “模式”: 3 个重复出现的钩子或格式,每个钩子或格式都引用帖子 URL
– “主题”:出现在两篇或以上获奖文章中的主题
– “创意”:我们团队本周可以拍摄的 3 个内容创意
只使用数据本身提供的证据。如果某种模式不明显,请明确指出。
{{ JSON.stringify($json.data) }}
单靠字幕无法抓住短视频的重点,而重点往往在于语音,这通常是决定短视频成败的关键。's 命运。
在 YouTube 或 TikTok 任务中启用字幕后,将字幕文本的开头几行复制到规范化项目中。
将文本截取到大约前 300 个字符。然后,模型会比较获胜者的真实开场白,并且使用量也保持在较低水平。
“仅使用证据”这条原则很重要。它保持了…… AI 内容 基于真实帖子而非泛泛的趋势讨论进行模式分析。
步骤 11:组装 HTML 摘要并通过 Gmail 发送
最终的代码节点将得分帖子与 AI 输出并构建电子邮件正文:
const posts = $('Limit').all().map(i => i.json);
const ai = ('BasicLLMChain').first().json.output;constrows=posts.map(p=>`<tr><td>{p.platform}</td><td>p.creator</td><td><ahref="{p.url}">(p.caption||'').slice(0,70)</a></td><td>{p.outlier}x</td><td>p.engagement??'–'%</td></tr>`).join('');consthtml=`<h2>TopOutliers</h2><tableborder="1"cellpadding="6">{rows}</table>
<h2>Patterns</h2><ul>${ai.patterns.map(x => `<li>${x}</li>`).join('')}</ul>
<h2>Ideas</h2><ul>${ai.ideas.map(x => `<li>${x}</li>`).join('')}</ul>`;
return [{ json: { html } }];const items = $input.all().map(i => i.json);
const base = it => it.views || it.likes || 0;
const groups = {};
for (const it of items) (groups[it.creator] ??= []).push(base(it));
const median = a => { const s = [...a].sort((x, y) => x - y), m = Math.floor(s.length / 2);
return s.length % 2 ? s[m] : (s[m - 1] + s[m]) / 2; };
return items.map(it => {
const med = median(groups[it.creator]) || 1;
const eng = it.views ? ((it.likes || 0) + (it.comments || 0) + (it.shares || 0)) / it.views * 100 : null;
return { json: { ...it, outlier: +(base(it) / med).toFixed(2),
engagement: eng === null ? null : +eng.toFixed(2) } };
}).sort((a, b) => b.json.outlier - a.json.outlier);
然后添加一个具有以下设置的 Gmail 节点:

步骤 12:将帖子记录到 Google 表格并发布
从“删除重复项”节点分支到 Google 表格节点,使用“帖子日志”选项卡上的“追加行”或“更新行”功能。匹配 post_id,以便刷新后的统计数据覆盖旧行。
将映射设置为“自动映射”,因为规范化的字段名称已与列匹配。手动执行一次,检查电子邮件,然后发布工作流。
利用 Apify 的计划任务和事件触发器实现规模化扩展

单个定时工作流程适用于几十位创作者的团队。超过这个规模,长时间的抓取任务会使 n8n 进程持续运行数分钟,而一个运行缓慢的平台会拖慢其他平台的运行速度。
该修复方案在两个平台上均有效:
| 因素 | 单一工作流程 | 拆分工作流程 |
|---|---|---|
| 设置时间 | 更快 | 稍长 |
| 长时间刮削工作 | 执行等待贯穿整个过程。 | n8n 内无需等待 |
| 一个平台失败 | 可以阻断消化 | 其他人仍然会降落 |
| 自托管需求 | 无额外费用 | 触发器的公共 WEBHOOK_URL |
Apify 新创建的计划任务默认处于禁用状态,请在保存后启用您的计划任务。此外,如果计划任务启动失败,Apify 还会通过电子邮件通知您。
保持管道每周畅通
真正的敌人是那些悄无声息的失误。空空如也的收件箱看起来就像是平静的一周,所以从一开始就要设置提醒。
仅通过限制输入数据,就能有效控制使用量。严格的日期范围、每个个人资料的搜索结果数量上限以及仅在必要时提取成绩单,都保证了每周数据提取量较小。
创作者数据抓取真正遇到的局限性

每个自动化推销都会忽略这一部分,所以这里就直截了当地说明一下。
把收件箱当作研究助理,而不是预言家。最终,还是由人来决定哪些图案值得拍摄。
关于 Apify 和 n8n Creator Research 的快速解答
n8n 能否在不编写代码的情况下触发 Apify Actor?
官方 Apify 节点执行 Actor 或任务,等待结果并返回数据集项,所有这些都通过 n8n 中的字段进行配置。
此工作流程可以追踪哪些创作者?
任何公开的 YouTube 频道、TikTok 个人资料或 Instagram 帐户。替换为其他 Apify Store Actor 可添加更多平台。
Apify节点是否可以作为…… AI 代理工具?
添加 Apify 工具 在一个 AI 经纪人's 工具可以让模型根据聊天记录按需触发数据抓取。
结语
创作者研究奖励最先发现规律的人。手动滚动查找会占用大量时间,大多数团队几周后就会悄悄放弃。
Apify 和 n8n 将这项工作交给系统来完成。
商店参与者会拉取最新的公开帖子,代码节点会根据每个创建者的情况对它们进行评分。's 自身的基线,以及 AI 层 将数字转化为简报。
先从单一的定时工作流程开始,选择你已关注的五位创作者。如果这种推送方式行之有效,再增加关注者数量,并使用 Apify Schedules 进行拆分设置。
给它三到四周的日志历史记录。's 当异常值得分变得更加清晰,而你周一收到的邮件开始超越你所能购买的任何趋势报告时。
AiMojo 推荐:



