n8n+DeepSeek洞察YouTube评论并自动同步多维表格

前段时间写了一篇《一图说透「内容创作全流程」:从选题挖掘→选题挑选→内容构建》,里面有一张整条内容链路的「策略中台」大图:从哪儿挖选题、怎么挑、怎么写、写完怎么分发。

【链接】

文章链接:

配图

这张图把「从选题挖掘到内容构建」的整条链路画得很清楚,当然这篇文章更多是“总览”和“方法论”,不少朋友看完之后会有一个同样的问题: “图是看懂了,但如果我要真正上手做一条自动化流程,比如从 YouTube 评论里挖选题,这一小块到底该怎么搭?

*Tips:这张图不知道出处是哪,但觉得方法论挺值得分享;如涉及侵权,请联系我删除或署名。*

所以接下来,我会把总图拆开写成一个系列:每次只选一个小场景,给出一条可以直接落地的自动化+AI流程。那么这篇就算是系列里的第一篇:专门聊「通过 YouTube 搜索关键词 + 热门评论,挖选题与用户痛点」这一块,如果你对这部分内容感兴趣,欢迎关注+收藏,后面会写其他场景的自动化流程拆解。

一、这条自动化具体想解决什么问题?

其实场景非常具体了:我们知道 YouTube 评论区其实是个金矿,尤其是一些细分赛道的视频,用户会在下面问具体问题、吐槽使用痛点、补充自己的实践经验。

如果我们把评论区内容利用起来,作为我们的选题来源,那就真的是一座宝藏了。

但我们人肉去刷的话会有几个问题,比如关键词太多,刷不过来;评论太散,记不过来;过几天就忘了「之前看到的那个好问题在哪条视频下面」。

所以我们需要有一个自动化流程+AI来帮我们提效,比如定时运行流程,帮我们抓相关关键词的视频底下的热门评论,然后用AI进行总结和洞察,最后帮我们把结论写入到多维表格,我们只需要定期去多维表格查看即可,成为后续「选题挑选」阶段的素材池。

目标用一句话概括就是:我们不用每天刷 YouTube,只要每周打开一次多维表格,就能看到「这一周值得跟的海外话题 + 评论里的真实问题 + AI 帮你总结好的选题建议」。

配图

二、整体架构长什么样?

我们先整体总结一下这条 workflow 的结构,再往下拆节点:

①Trigger:每周五固定时间定时触发;

②Init:在代码节点里统一配置 TikHub、DeepSeek、飞书多维表格的参数 + 关键词列表,并按关键词生成 TikHub 搜索 URL;

③Search & Collect:在一个 Code 节点里,循环调用 TikHub 的 YouTube 综合搜索接口,聚合所有关键词的结果;

④Dedupe & Limit:对所有视频按 video_id 去重,只保留前 50 条;

⑤Per Video Loop:对每个视频做:

  • 调 TikHub 评论接口 → 拿热门评论;
  • 格式化评论文本 → 构造 DeepSeek 提示词;
  • 调 DeepSeek → 拿到中文洞察(痛点 + 3 个选题 + 可回复的问题);
  • 拼出一条 Feishu Bitable 的 fields;
  • 调飞书接口写入多维表格;
  • 回到循环,处理下一个视频。

你可以把它想象成一条 24 小时待命的「选题挖掘机器人」:我只负责告诉它“本周我对哪些话题感兴趣”,剩下的活,它自己每周帮我干。

三、准备工作:跑起来前需要什么?

这部分很快过一遍:

1.TikHub API Key:用于调用 get_general_search 和 get_video_comments。

2.DeepSeek API Key:用deepseek的api,我们要注册并获取到key。用deepseek就是因为性价比高\~

3.飞书多维表格:创建一张数据表,字段包含:源视频标题、源视频链接、源视频作者、源视频发布时间、视频观看数量、源视频描述、视频评论、AI洞察。

4.一组我们关心的关键词:例如做自动化方向:Airtable script automation、n8n guide 等。

在我们的 workflow 里,这些配置都集中写在 Init (Config + Jobs) 这个 Code 节点里,后面所有节点只从 config 里读,不再散落到各处,后续维护也方便。

四、工作流拆解:每个节点在这条链路里做什么?

配图

整体的youtube视频搜索和评论挖掘的工作流就是这样,下面我们就按照执行顺序的节点,分别来讲讲怎么配置,重点讲两件事:这个节点的作用 + 具体配置。

1. Schedule—— 负责启动整条流程

(1)节点类型:Cron

(2)节点作用:按周定时触发整个工作流,每周五晚上 20:00 北京时间跑一次。

后面如果觉得频率要改,只需要改这里的 Cron 配置。

2. Init (Config + Jobs) —— 集中配置 + 生成搜索任务

(1)节点类型:code

(2)节点作用:集中管理所有配置(TikHub、飞书、DeepSeek、关键词列表),并按关键词生成 TikHub 搜索 URL 列表。相当于在这个节点把所有配置(API Key、表 ID、关键词等)集中起来,并且针对每个关键词,生成对应的 TikHub 搜索 URL。后续所有节点只从 config 和 youtubeJobs 里取数据。

(3)节点配置:

// 配置:TikHub web_v2、飞书、DeepSeek、关键词(可按语言只搜一种)
const config = {
  timezone: 'Asia/Shanghai',
  tikhub: {
    baseUrl: 'https://api.tikhub.io',
    apiKey: 'tikhub的api key',
  },
  feishu: {
    appId: '飞书应用的appid',
    appSecret: '飞书应用的appSecret',
    bitableAppToken: '多维表格token',
    bitableTableId: '多维表格tableid',
  },
  deepseek: {
    baseUrl: 'https://api.deepseek.com',
    apiKey: 'deepseek api key',
    model: 'deepseek-chat',
  },
  keywords: [
    '要搜索的关键词1',
    '要搜索的关键词2',
    '要搜索的关键词3',
    '要搜索的关键词4'
  ],
};

function isCjk(str) {
  return /[\u3400-\u9FFF]/.test(str || '');
}

// 手写一个简单的 query 拼接函数,替代 URLSearchParams
function buildQuery(params) {
  const parts = [];
  for (const key in params) {
    if (!Object.prototype.hasOwnProperty.call(params, key)) continue;
    const value = params[key];
    if (value === undefined || value === null || value === '') continue;
    parts.push(
      encodeURIComponent(key) + '=' + encodeURIComponent(String(value)),
    );
  }
  return parts.join('&');
}

const base = (config.tikhub.baseUrl || 'https://api.tikhub.io').replace(/\/$/, '');
const youtubeJobs = [];

for (const kw0 of config.keywords || []) {
  const keyword = (kw0 || '').trim();
  if (!keyword) continue;

  const isZh = isCjk(keyword);
  const language_code = isZh ? 'zh-CN' : 'en-US';
  const country_code = isZh ? 'CN' : 'US';

  const query = buildQuery({
    search_query: keyword,
    language_code,
    country_code,
    time_zone: config.timezone,
    upload_time: 'week',
    content_type: 'video',
    sort_by: 'view_count',
  });

  youtubeJobs.push({
    platform: 'youtube',
    keyword,
    language_code,
    country_code,
    url: `${base}/api/v1/youtube/web_v2/get_general_search?${query}`,
  });
}

const now = new Date();
const isFriday = now.getDay() === 5;

return [
  {
    json: {
      config,
      youtubeJobs,
      isFriday,
    },
  },
];

根据youtube的接口,我们设定这几个参数规范:自动按关键词语言切换 language_code / country_code;严格指定:upload_time=week、content_type=video、sort_by=view_count。

最终这个节点输出的核心结构是:

  • config:TikHub / 飞书 / DeepSeek 的基础配置;
  • youtubeJobs:一个「待搜索任务列表」,每个任务自带完整 URL;

3. IF (Only Friday)

(1)节点类型:id

(2)节点作用:只在周五继续执行后续节点,其它时间直接结束,避免误触发。

这是一个很小的保险,但对于长期运行的自动化来说非常必要。

4. Feishu – Get tenant_access_token + Merge (Config + Token)

配图

4.1 Get tenant_access_token

(1)节点类型:HTTP Request

(2)节点作用:向飞书开放平台获取临时 tenant_access_token,供后续写多维表格使用。

(3)详细配置:

①Method:POST

②URL:https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal/

③Headers:

Content-Type: application/json; charset=utf-8

④Body:

JSON Body:

{{ JSON.stringify({ app_id: $json.config.feishu.appId, app_secret: $json.config.feishu.appSecret }) }}

4.2 Merge (Config + Token)

(1)节点类型:Merge

(2)节点作用:按位置把 Init 的配置输出和 Feishu 的 token 输出合并成一条 item。

(3)详细配置:

①Mode:Combine

②Combination Mode:Merge By Position

5. TikHub Search All (YouTube) —— 把所有关键词的一周内视频搜索出来

(1)节点类型:Code

(2)节点作用:循环执行 youtubeJobs 中每个 TikHub 搜索 URL,解析 web_v2 返回的结构,汇总所有视频列表为 allVideos。

(3)详细配置:通过js来实现

function extractVideosFromTikHubResp(resp) {
  const out = [];
  const data = resp && resp.data;
  if (!data) return out;

  const twoColumn =
    data.contents && data.contents.twoColumnSearchResultsRenderer;
  if (!twoColumn) return out;

  const primary = twoColumn.primaryContents;
  const sectionList = primary && primary.sectionListRenderer;
  if (!sectionList || !Array.isArray(sectionList.contents)) return out;

  for (const section of sectionList.contents) {
    const itemSection = section.itemSectionRenderer;
    if (!itemSection || !Array.isArray(itemSection.contents)) continue;

    for (const item of itemSection.contents) {
      const vr = item.videoRenderer;
      if (!vr) continue;

      const videoId = vr.videoId;
      if (!videoId) continue;

      const title =
        (vr.title &&
          vr.title.runs &&
          vr.title.runs[0] &&
          vr.title.runs[0].text) ||
        '';

      const author =
        (vr.ownerText &&
          vr.ownerText.runs &&
          vr.ownerText.runs[0] &&
          vr.ownerText.runs[0].text) ||
        '';

      const publishedAt =
        (vr.publishedTimeText && vr.publishedTimeText.simpleText) || '';

      const viewCountText =
        (vr.viewCountText && vr.viewCountText.simpleText) || '';

      const url = 'https://www.youtube.com/watch?v=' + videoId;

      let description = '';
      if (
        vr.detailedMetadataSnippets &&
        vr.detailedMetadataSnippets[0] &&
        vr.detailedMetadataSnippets[0].snippetText &&
        Array.isArray(vr.detailedMetadataSnippets[0].snippetText.runs)
      ) {
        description = vr.detailedMetadataSnippets[0].snippetText.runs
          .map((r) => r.text || '')
          .join('');
      }

      out.push({
        video_id: videoId,
        title,
        author,
        published_at: publishedAt,
        view_count_text: viewCountText,
        url,
        description,
      });
    }
  }

  return out;
}

const items = $input.all();
if (!items.length) {
  return [{ json: { allVideos: [], config: {}, tenant_access_token: '' } }];
}

const first = items[0].json || {};
const jobs = first.youtubeJobs || [];
const config = first.config || {};
const tenant_access_token = first.tenant_access_token || '';
const apiKey = config.tikhub && config.tikhub.apiKey;

if (!apiKey) {
  throw new Error('TikHub API key 缺失:请在 Init 节点 config.tikhub.apiKey 中配置');
}

const allVideos = [];

for (const job of jobs) {
  const url = job.url;
  if (!url) continue;

  let resp;
  try {
    resp = await this.helpers.httpRequest({
      method: 'GET',
      url,
      headers: { Authorization: `Bearer ${apiKey}` },
      json: true,
      timeout: 30000,
    });
  } catch (error) {
    allVideos.push({
      video: null,
      error: `TikHub 请求失败: ${job.keyword || ''} - ${error.message || error}`,
      config,
      tenant_access_token,
    });
    continue;
  }

  const vids = extractVideosFromTikHubResp(resp);

  for (const v of vids) {
    allVideos.push({
      video: v,
      config,
      tenant_access_token,
    });
  }
}

return [
  {
    json: {
      allVideos,
      config,
      tenant_access_token,
    },
  },
];

这段js就是统一用 TikHub 的 web_v2 搜索接口,针对复杂的返回结构,写了一个 extractVideosFromTikHubResp 专门抽取:video_id、title、author、published_at(文本,比如 3 days ago)、view_count_text、url(拼好的完整 YouTube 链接)、description(从 snippet 文本里拼出来)。

输出结构大致是:allVideos:一个装满「视频基础信息」的大数组。

说实话这个节点要实现的还是比较复杂的,因为要从youtube搜索接口的结果里抽取出我们需要的数据,但是这个接口返回的数据又异常复杂,层级非常之深。 不过没关系,我们可以把返回的数据的示例扔给AI,让AI来帮我们分析结构,找到我们需要的数据。

到这一步为止,“一周内所有相关视频”已经集中到一个「素材池」里了,后面只做筛选和逐条处理。

6. Dedupe and Limit 50 —— 去重 + 控制本次处理上限

(1)节点类型:Code

(2)节点作用:对 allVideos 按 video.video_id 去重,并将本次处理数量限制在最多 50 条。这样可以防止不同关键词命中同一个视频,并且防止每周爬取量失控,控制在最多 50 条以内。

(3)详细配置:

// 按 video.video_id 去重,最多保留 50 条,并带上 config/token
const inItem = $input.first().json;
const allVideos = inItem.allVideos || [];
const config = inItem.config || {};
const token = inItem.tenant_access_token;

const seen = new Map();

for (const item of allVideos) {
  const v = item.video || {};
  const id = v.video_id || v.url;
  if (!id || seen.has(id)) continue;
  seen.set(id, item);
}

const limited = Array.from(seen.values()).slice(0, 50);

return limited.map(item => {
  const v = item.video || {};
  return {
    json: {
      video: v,
      config,
      tenant_access_token: token,
    },
  };
});

你可以理解为:这一层帮我们做了“样本控制”——既保证覆盖面,又不会让后面评论抓取和 AI 调用过于夸张。

7. Split Videos —— 把「50 条视频」拆成「一次处理一条」

(1)节点类型:SplitInBatches

(2)节点作用:将上一步输出的多条视频 item 拆成「一次只处理一条」,为后续循环处理做准备。

也就是说,通过循环,每次只把一条视频送到下游节点;下游处理完之后,通过回环连接再次触发 Split Videos,直到全部处理完。

8. TikHub – Get Comments + Merge (Video + Comments)

8.1 TikHub – Get Comments

(1)节点类型:HTTP Request

(2)节点作用:针对当前视频调用 TikHub 评论接口,获取一页热门评论。

(3)详细配置:

①Method:GET

②URL:{{ \$json.config.tikhub.baseUrl.replace(/\\/\$/, ”) + ‘/api/v1/youtube/web_v2/get_video_comments’ }}

③Query Parameters:

  • video_id: {{ \$json.video.video_id }}
  • sort_by: top

④Headers:

  • Authorization: Bearer {{ \$json.config.tikhub.apiKey }}

这个节点主要就是针对当前这一条视频,调用 TikHub 的 get_video_comments,把评论结果和基础视频信息合并到同一个 item 里。

在评论接口里,我们限定:video_id为当前视频的 id;sort_by=top,即只看热门排序的第一页;合并之后,我们在一个节点里就能同时拿到:video(标题、描述等);data.comments(一页热门评论列表);

8.2 Merge (Video + Comments)

(1)节点类型:merge

(2)节点作用:将当前视频的基础信息和 TikHub 评论接口返回值合并到同一个 item 上

(3)节点配置:

  • Mode:Combine
  • Combination Mode:Merge By Position

9. Build Comment Text & DeepSeek Input —— 先把评论整理成看得懂的文本,再喂给 AI

(1)节点类型:Code

(2)节点作用:把原始评论数组,整理成一段有序、可读的「评论摘要文本」,并基于视频信息 + 评论摘要,构造一段适合 DeepSeek 理解的中文提示词

(3)节点配置:

const MAX_COMMENTS = 20;
const item = $input.first().json || {};

// video 信息在 item.video 下
const rawVideo = item.video || {};
const video = {
  video_id: rawVideo.video_id || '',
  title: rawVideo.title || '',
  author: rawVideo.author || '',
  description: rawVideo.description || '',
  view_count_text: rawVideo.view_count_text || '',
  published_at: rawVideo.published_at || '',
  url: rawVideo.url || '',
};

// 评论来自 TikHub 评论接口响应(经 Merge 后在 item.data.comments)
let data = item.data;
if (typeof data === 'string') { try { data = JSON.parse(data); } catch (_) {} }
const rawComments = Array.isArray(data && data.comments) ? data.comments : [];
const comments = rawComments.slice(0, MAX_COMMENTS);

let commentsText = '';
comments.forEach((c, idx) => {
  const content = (c.content || '').replace(/\s+/g, ' ').trim();
  const like = c.like_count != null ? c.like_count : '0';
  if (!content) return;
  if (commentsText) commentsText += '\n';
  commentsText += `${idx + 1}. ${content}(点赞${like})`;
});

const deepseek_input = `你是一个资深内容运营和 AI 自动化顾问,擅长从海外视频内容和评论里挖选题。\n\n下面是一条 YouTube 视频的信息和它的热门评论,请你用中文输出内容洞察,并按照下面结构输出(不要用 JSON,不要用代码块,只用普通文本,多段落即可):\n\n1)先用几句话,概括这条视频的主题和针对的人群。\n2)分析评论里用户暴露出来的核心痛点和高频问题。\n3)结合国内生态(例如:微信公众平台、飞书多维表格、小红书、B 站),帮我生成 3 个具有爆款潜质的中文公众号选题,每个选题用一句话说明这个选题的「价值点」(读者能解决什么具体问题,或者能获得什么可执行结论)。\n4)从评论里筛出 1-3 个最适合我在评论区或公众号里直接回复、用于引流和立人设的具体问题,把问题原文摘出来,并简要说明为什么值得回复。\n\n请注意:\n- 输出只用中文。\n- 不要输出 JSON。\n- 不要使用英文双引号 ",如果需要引号可以用中文引号「」或单引号 '。\n- 分段清晰,用换行和编号让结果易于阅读。\n\n【源视频标题】\n${video.title}\n\n【源视频描述】\n${(video.description).slice(0, 800)}\n\n【热门评论(已按点赞数排序,只截取前 ${MAX_COMMENTS} 条)】\n${commentsText || '暂无热门评论'}`;

return [{
  json: {
    video,
    commentsText,
    deepseek_input,
    config: item.config,
    tenant_access_token: item.tenant_access_token,
  }
}];

大概逻辑是:

①从 item.video 里拎出我们关心的字段(标题 / 描述 / 作者 / 链接等),整理成 video 对象;

②从 item.data.comments 里取前若干条评论(比如 20 条),生成类似:内容1(点赞x)、内容2(点赞y)…的格式

③拼出一段清晰的 DeepSeek 提示词,让模型:概括这条视频的主题和人群;从评论里抓痛点和高频问题;结合国内生态给 3 个中文爆款潜力选题,并说明价值点;标记 1–3 个最适合你去回复、拿来引流和立人设的问题。

④这个节点处理完后,输出里最重要的两个字段是:

  • commentsText:供人直接阅读的「热门评论列表」;
  • deepseek_input:结构化提示词,直接送给 DeepSeek。

10. DeepSeek – Chat Completions + Merge (Build + DeepSeek)

10.1 DeepSeek – Chat Completions

(1)节点类型:HTTP Request

(2)节点作用:调用 DeepSeek 的 Chat Completions 接口,基于构造好的提示词生成中文洞察。

(3)详细配置

①Method:POST

②URL:={{ \$json.config.deepseek.baseUrl.replace(/\\/\$/, ”) + ‘/v1/chat/completions’ }}

③Headers:Content-Type: application/json;Authorization: Bearer {{ \$json.config.deepseek.apiKey }}

④Body:

{{ JSON.stringify({ model: $json.config.deepseek.model, messages: [{ role: 'user', content: $json.deepseek_input }] }) }}

10.2 Merge (Build + DeepSeek)

(1)节点类型:merge

(2)节点作用:将视频 + 评论文本 + DeepSeek 提示词,与 DeepSeek 返回的 AI 输出(choices)合并。

(3)详细配置

  • Mode:Combine
  • Combination Mode:Merge By Position

11. Parse & Build Feishu Record —— 把所有信息收拢成一条「选题素材记录」

(1)节点类型:code

(2)节点作用:从 video 和 DeepSeek 返回值中抽取字段,拼出一条多维表格记录的 fields 对象。也就是说把视频各字段、评论文本、AI 洞察,拼成写入多维表格所需要的数据格式。

(3)详细配置:

const item = $input.first().json || {};

// 视频信息在 item.video 下
const video = item.video || {};

// 提取 DeepSeek AI 洞察(从 choices[0].message.content)
let aiInsight = '';
const choices = item.choices;
if (Array.isArray(choices) && choices[0] && choices[0].message && choices[0].message.content) {
  aiInsight = choices[0].message.content;
}

const commentsText = item.commentsText || '';
const config = item.config || {};
const feishu = config.feishu || {};

const fields = {
  '源视频标题': video.title || '',
  '源视频链接': video.url || '',
  '源视频作者': video.author || '',
  '源视频发布时间': video.published_at || '',
  '视频观看数量': video.view_count_text || '',
  '源视频描述': video.description || '',
  '视频评论': commentsText || '',
  'AI洞察': aiInsight || '',
};

return [
  {
    json: {
      fields,
      tenant_access_token: item.tenant_access_token || '',
      bitableAppToken: feishu.bitableAppToken || '',
      bitableTableId: feishu.bitableTableId || '',
    },
  },
];

拼成的结构化记录,字段是:源视频标题、源视频链接、源视频作者、源视频发布时间、视频观看数量、源视频描述、视频评论、AI洞察 (对应多维表格的字段)

12. Feishu – Bitable batch_create—— 正式写入到表格,完成一条视频的闭环

(1)节点类型:HTTP Request

(2)节点作用:调用飞书多维表格接口,写入一条记录到指定表格中

(3)详细配置:

①Method:POST

②URL:{{ ‘https://open.feishu.cn/open-apis/bitable/v1/apps/’ + \$json.bitableAppToken + ‘/tables/’ + \$json.bitableTableId + ‘/records/batch_create’ }}

③Headers:Authorization: Bearer {{ \$json.tenant_access_token }};Content-Type: application/json; charset=utf-8

④Body:{{ JSON.stringify({ records: [{ fields: \$json.fields }] }) }}

该节点执行成功后,连回 Split Videos 的 输入,触发下一条视频的处理,直到本批视频全部处理完。

用一个小结来概括这一段:从 Split Videos 拿到单条视频 → 拉评论 → AI 分析 → 写表 → 回到 Split Videos 要下一条。每个视频都是一个完整的“处理闭环”,整个 workflow 就像在生产线上一个个处理选题素材。

五、这条自动化,具体帮你做了什么?

从我们最开始那张「内容创作全流程」图来看,这条 workflow 落在两个非常具体的格子里:选题挖掘 / 多平台关键词挖掘。

这样,我们不再只是知道“有哪些关键词很火”,而是直接看到:

这个方向下最近一周的热门视频,视频下面真实用户在讨论什么。评论也不再是零散的截图和收藏,而是被结构化写入一张「源视频 + 评论 + AI 洞察」的表。我们可以直接在表里去看和找到我们的选题。

试想,如果我们之前用人肉来做的话:

  • 每周要自己打开 YouTube;
  • 按关键词一个个搜;
  • 挨个点进视频,看发布时间是不是最近;
  • 点开评论区,翻一页,截几条你觉得“有价值”的评论;
  • 复制粘贴到某个文档或表格里,给自己留个备注;
  • 回头有时间,再开一个 ChatGPT,对着这些内容问问“有什么选题建议”。

一看就知道自己不会坚持做这件事的,哪怕你知道它「很有用」。

但我们用这个自动化流程的话:

①时间维度:

  • 每周五流程定时自动跑;
  • 我们只需要在周末打开一下多维表格,就能看到这一周的“海外评论精选 + AI 洞察”。

②空间维度:

  • 不再是一个个视频 / 一个个评论的碎片;
  • 而是一张结构化的表格,可以按关键词、发布时间、作者、播放量、AI 评分等维度来筛选。

③认知维度:

  • 评论本身很长、很碎,AI 帮你做了第一层「主题总结 +痛点提炼 + 选题建议」,你只需要做二次判断和改写。

这样我们就基于关键词搜索结果的质量,判断这个方向值不值得写;把评论里的真需求转成未来的选题池。

而且它天然还是一个可以“串联”的模块:

  • 前面我们可以再接一条「关键词拓展 + 指数监控」的 workflow;
  • 后面可以接「AI 自动生成选题卡片 → 推送到飞书群」的 workflow;
  • 再往后接「选中某条记录 → 一键生成初稿」的 workflow。
  • ……

六、写在最后

这篇算是对《内容创作全流程》那张图的一个「局部放大」:只取“选题挖掘”里的一个小动作——通过 YouTube 搜索关键词 + 挖评论——然后用 n8n 把这件事做成一个稳定、可以每周复用的能力模块。我个人会把这种模块当成「内容策略中台」的一块砖:今天是 YouTube 评论,明天可能是 Reddit 需求、小红书问答,但架子是一样的:

  • 定期拉数据;
  • 标准化字段;
  • 用 AI 做第一层洞察;
  • 写入多维表格;
  • 人去看「洞察 + 原始数据」,做最后决策。

后面这整个系列,我会继续把图上的其他环节拆开写:比如竞对监控怎么搭、需求池怎么建等等。如果你也在用 n8n、多维表格这套组合,或者正准备搭自己的「内容策略中台」,可以关注我,我会在这个系列慢慢把每一条小 workflow 拼回总图里。


📋 这套YouTube评论相关模板,我整理成模板了

跟着上面步骤搭要花点时间。想直接拿现成的改,加我微信备注「YouTube评论」,我发你。

🤔 卡在某一步了?

搭建过程里如果哪一步卡住了,如果你照着做没跑通,或者你们公司情况不太一样,可以找我聊聊,我免费帮你看看怎么调。不合适我也会直说。

加吨师傅微信咨询飞书多维表格搭建

扫码加我,备注「YouTube评论」领模板

想看更多这类方案,我都整理在 吨师傅工具箱 里了:客户管理、进销存、工单报修……按场景分好类,可以直接抄。

相关阅读

滚动至顶部