Apify + n8n 创建者研究工作流程:分步构建

使用 Apify 和 n8n 构建每周创作者研究收件箱

创作者研究悄无声息地吞噬了整个下午。浏览TikTok、YouTube和Instagram,把观看次数复制到表格里,然后却弄丢了真正重要的那一条帖子。

每周收到创作者研究邮件会破坏这种习惯。

演员表 抓取公开的创作者帖子,以及 n8n 自动化工作流程 对每篇帖子进行评分,标记异常值并提出问题 AI 模型用于识别钩型。

然后,每周同一天,您都会在 Gmail 中收到一份简洁明了的摘要,在您喝第一杯咖啡之前就可以阅读了。

以下是从 Actor 输入开始,逐节点构建的完整过程: 参与度评分逻辑 至 AI 内容摘要 以及错误警报。没有理论,只有一个可以复制的系统。

爱莫乔's 快速判决

最佳设置: Apify负责数据抓取,n8n负责调度和评分。 AI 分析 和交货。
建设工作: 一个下午的时间,使用了三个 Store Actor、两个 Code 节点和一个 Gmail 节点。
最大的胜利: an 每个创作者的异常值得分 Surfaces 的帖子数量超过了他们自己的基准线,而不仅仅是大账号。
主要限制: 仅提供公开数据。隐藏的点赞数和平台变更偶尔会导致数据出现空白。

每周你的收件箱里都有哪些内容

在修改节点之前,请锁定输出。只有当每封邮件都按相同顺序回答相同问题时,研究收件箱才能有效运作。

摘要部分它显示了什么源节点
顶级异常值浏览量最高的帖子与创作者's 通常中位数评分代码节点
参与领导者浏览量最高的点赞、评论和分享次数最多的帖子评分代码节点
模式注释获奖文章中反复出现的标题、格式和主题基本LLM链
内容创意你的团队本周可以测试的三个想法基本LLM链
原始日志链接包含所有抓取帖子的 Google 表格,以便后续筛选Google Sheets 节点

广告公司用它来向客户进行简报,品牌团队用它来寻找合适的网红合作伙伴,独立创作者用它来追踪竞争对手,而无需打开任何应用程序。

数据流保持简单:

Google表格 包含创作者名单。
阿皮菲 抓取每个平台最近七天的公开帖子。
n8n 合并、清理、评分、去重并汇总所有内容。
Gmail的 提供 HTML摘要 而 Sheets 则保留历史记录。

选择 Apify Actor 以获取创作者数据

Apify Store 提供名为 Actors 的现成爬虫。其中三个 Actors 可以满足大多数创作者研究需求,并且每个 Actors 都提供日期筛选功能,以确保每周抓取的数据量精简。

演员关键输入字段值得保留的输出字段
YouTube 数据抓取器streamers/youtube-scraperstartUrls、maxResults、maxResultsShorts、maxResultStreams、sortVideosBy、oldestPostDate标题、网址、日期、浏览量、点赞数、评论数、频道名称、订阅者数量
抖音爬虫时钟/抖音抓取器个人资料、每页结果数、个人资料排序、排除置顶帖子、最早帖子日期统一文本、视频网址、创建时间 ISO、播放次数、Digg 计数、评论计数、分享计数、收集计数、作者元数据粉丝数
Instagram刮板apify/instagram-scraperdirectUrls、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。

有价值观的平台,例如 YouTube、TikTok 或 Instagram
例如 mkbhd 这样的句柄,不带 @ 符号
profile_url,例如 https://www.youtube.com/@mkbhd/videos
壁龛 用于摘要内的分组
设置为“是”或“否”以暂停创建者

添加一个名为“帖子日志”的第二个标签页。所有评分后的帖子都会记录在这里,方便你随着时间的推移积累历史记录,从而建立更好的基准线。

步骤 2:将每个爬虫保存为 Apify Actor 任务

在 Apify 控制台中打开每个 Actor,设置合理的限制,然后单击“另存为新任务”。

Apify Actor 任务存储输入、超时和内存,因此 n8n 端保持整洁。

YouTube任务: maxResults 15,maxResultsShorts 15,maxResultStreams 0,sortVideosBy NEWEST
TikTok任务: 每页显示 20 条结果,按最新排序,排除置顶帖子
Instagram任务: resultsType posts, resultsLimit 20

务必关闭所有下载选项。视频文件、封面和头像会增加文件大小,对研究并无帮助。

步骤 3:连接 Apify、Google Sheets 和 Gmail 凭据

安装 Apify 节点,然后在 n8n 中添加三个凭据:Apify API、Google Sheets OAuth2和Gmail OAuth2。在进行后续构建之前,请先测试每个凭据。

工作流程进行到一半时,如果凭证失效,就会浪费抓取工作,因此这项检查是值得的。

步骤 4:配置 n8n 计划触发器

配置 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:使用“删除重复项”节点阻止重复项

在评分后添加一个“删除重复项”节点。将操作设置为“删除先前执行中处理过的项目,并保留值为新值的项目” 。

去重依据值: {{ $json.platform }}_{{ $json.post_id }}
范围: Node
历史规模: 默认值 10,000 对于大多数阵容来说都足够了。

此持久性去重功能可防止手动重新触发发送操作,从而避免向相同的帖子发送两次电子邮件。“清除去重历史记录”功能会在测试期间重置此设置。

第 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 节点:

资源: 信息, 操作: 发送
主题: 创作者研究收件箱 · 第 {{ $now.weekNumber }} 周
电子邮件类型: HTML,消息设置为 {{ $json.html }}
选项: 关闭“追加 n8n 署名”,为队友添加 CC

步骤 12:将帖子记录到 Google 表格并发布

从“删除重复项”节点分支到 Google 表格节点,使用“帖子日志”选项卡上的“追加行”或“更新行”功能。匹配 post_id,以便刷新后的统计数据覆盖旧行。

将映射设置为“自动映射”,因为规范化的字段名称已与列匹配。手动执行一次,检查电子邮件,然后发布工作流。

利用 Apify 的计划任务和事件触发器实现规模化扩展

单个定时工作流程适用于几十位创作者的团队。超过这个规模,长时间的抓取任务会使 n8n 进程持续运行数分钟,而一个运行缓慢的平台会拖慢其他平台的运行速度。

该修复方案在两个平台上均有效:

Apify日程安排 使用 cron 0 6 * * 1 和您的时区号启动所有三个任务。一个计划任务最多可以包含 10 个任务。
n8n 工作流程 A 使用 关于新的 Apify 活动 触发后,监视每个任务是否成功,然后规范化帖子并将其添加到帖子日志中。
n8n 工作流程 B 一小时后发生火灾,本周报道。's 来自表格、分数、摘要和电子邮件的行。
因素单一工作流程拆分工作流程
设置时间更快稍长
长时间刮削工作执行等待贯穿整个过程。n8n 内无需等待
一个平台失败可以阻断消化其他人仍然会降落
自托管需求无额外费用触发器的公共 WEBHOOK_URL

Apify 新创建的计划任务默认处于禁用状态,请在保存后启用您的计划任务。此外,如果计划任务启动失败,Apify 还会通过电子邮件通知您。

保持管道每周畅通

真正的敌人是那些悄无声息的失误。空空如也的收件箱看起来就像是平静的一周,所以从一开始就要设置提醒。

失败后重试: 在每个 Apify 节点内启用's 设置允许尝试两到三次,每次尝试之间有等待时间。
错误输出: 将“出错时继续”设置为“使用错误输出”,这样就不会因为一个平台故障而导致整个摘要丢失。
错误工作流程: 构建一个小型工作流程 错误触发器 选中发送 Gmail 或 Slack 提醒的节点,然后将其置于 工作流程设置.
空数据保护: 在合并节点后添加一个 IF 节点。如果合并项数为零,则应触发警报,而不是发送空白邮件。
每周理智检查: 比较帖子日志中各平台的帖子数量。某个平台的帖子数量突然下降通常表明输入 URL 已损坏或句柄已重命名。
Apify超时字段: 设定合理的上限,避免卡住的任务浪费资源数小时。

仅通过限制输入数据,就能有效控制使用量。严格的日期范围、每个个人资料的搜索结果数量上限以及仅在必要时提取成绩单,都保证了每周数据提取量较小。

创作者数据抓取真正遇到的局限性

每个自动化推销都会忽略这一部分,所以这里就直截了当地说明一下。

隐藏指标确实存在。 Instagram 创作者 可以隐藏点赞数,图片帖子也没有浏览量。可能会出现空白,并使用备用评分系统来处理。
平台会改变标记语言。 存储 Actor 会进行维护,但仍然会发生故障。检查 Actor's 问题选项卡:输出突然变细。
小样本会产生误导。 每周发布两次内容的创作者,其数据中位数可能不太稳定。随着历史数据的积累,值得信赖的异常值得分会更高。
仅提供公开数据。 抓取公开帖子和指标,跳过私密账户,并尊重每个平台。's 条款。
适用个人数据保护规则。 根据 GDPR 和类似法律,创作者姓名和用户名属于个人数据,因此仅存储研究需要的信息。

把收件箱当作研究助理,而不是预言家。最终,还是由人来决定哪些图案值得拍摄。

关于 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 当异常值得分变得更加清晰,而你周一收到的邮件开始超越你所能购买的任何趋势报告时。

发表评论

您的电子邮件地址不会被公开。带*号的为必填项。

本网站使用 Akismet 来减少垃圾邮件。了解您的评论数据如何处理。

即刻加入 Aimojo 部落!

每周加入 76,000 多名会员获取内幕消息! 
🎁 奖金: 获得我们的 200 美元“AI 注册即可免费获得“精通工具包”!

热门 AI 工具
布林爱

只需几秒,即可将任何照片变成爆红的 Bulin 47 Freestyle 表演视频 此 AI 为一个标志性的街景制作的视频生成器。

即刻

扩大您的冷邮件营销规模,并实现潜在客户自动转化为收入 专为高容量 B2B 客户开发而打造的一体化销售互动平台

利斯蒂莫

此 AI 只需几分钟,即可将一张产品照片转化为完整的亚马逊商品详情页的工具 您的一体化亚马逊商品详情页、图片和视频生成器

维尔拉

AI 将作业简报转化为可提交草稿的学术工作空间 AI 智能作业写作、检测和人性化

PixelCrew AI

将任何设计简报转换为可用于生产的 HTML AI 经纪人 AI 设计工作空间,取代您从研究到最终交付代码的整个创意流程

© 2023 - 2026 版权所有 | 成为 AI 专业版 | 用心打造