AI PLAY玩法更新持续收录
← 回到更新流

2026-09-05 · 原文发布日

YouTube字幕一键改写为四个平台的推广文案

付费模板,面向课程和创作者的内容复用流程:定时或手动拉取频道最新视频,通过YouTube Data API下载官方字幕并清理成纯文本,交给OpenAI分别起草Facebook帖子、邮件营销稿、Skool公告和Udemy公告,四份草稿连同视频标题存进Notion数据库对应属性里供人工审阅,不自动发布。没有字幕的视频会直接停止。

原文要点

这是n8n上的付费模板(作者Khadija Naeem):按Cron在每周二、周五15:00运行或手动触发,用YouTube Data API拉取已授权频道的最新视频,列出字幕轨,找不到字幕就停止;下载第一条字幕轨SRT并清理成纯文本,连同视频链接发给OpenAI,一次生成Facebook帖子、邮件营销稿、Skool公告、Udemy公告四份草稿;最后在Notion数据库新建页面,视频标题与四份草稿分别写入Video Name、Facebook Post、Email Campaign、Skool Announcement、Udemy Announcement五个属性,供人工审阅,不自动发布。

这次做成什么

照原模板的流程思路,在n8n搭一条'新视频字幕→四个平台推广草稿→Notion待审稿库'的内容复用练习流程,重点掌握字幕拉取、一份素材多角度改写、Notion属性映射三件事。注意:原模板需付费购买,本页是本站按公开说明独立设计的练习方案,不是原工作流文件。

准备什么

  • 已购买原模板,或打算按本站方案自行重建(两者界面参数需以原模板为准核对)
  • Google OAuth2凭据,且scope覆盖YouTube Data API及字幕(captions)读取
  • OpenAI API凭据(模型调用会产生费用,具体以OpenAI计价为准)
  • Notion凭据及一个已建好五个指定属性的数据库
  • 一个你自己频道、带官方字幕的视频用于测试

具体怎么做

  1. 设置触发方式

    添加Schedule Trigger,Cron设为每周二、周五15:00(0 15 * * 2,5),同时保留手动执行入口,方便用指定视频调试而不必等定时。

  2. 拉取频道最新视频

    用HTTP Request节点(挂Google OAuth2凭据)调YouTube Data API的search或playlistItems接口,取已授权频道上传列表中最新一条视频,输出videoId、标题、发布时间和视频链接。

  3. 检查并下载字幕

    再调captions.list接口列出该视频的字幕轨;用IF节点判断返回items为空时直接结束流程(原模板行为就是无字幕即停止)。有字幕时取第一条轨道的id,调captions.download拿到SRT内容。

  4. 把SRT清理成纯文本

    添加Code节点,去掉序号行、时间轴行和空行,合并成一段连贯文字,同时保留视频标题和链接字段一起传给下一步。SRT清理正则要兼容 '-->' 时间行和可能的HTML标签。

  5. 一次生成四平台草稿

    添加OpenAI节点,把清理后的字幕全文和视频链接放进提示词,要求以JSON结构输出facebookPost、emailCampaign、skoolAnnouncement、udemyAnnouncement四个字段,并把提示词中署名占位[YOUR NAME]换成自己的名字和口吻。

  6. 写入Notion待审稿库

    添加Notion节点的Create Database Page操作,选择你的数据库,把Video Name映射视频标题,Facebook Post、Email Campaign、Skool Announcement、Udemy Announcement四个属性分别映射上一步JSON的对应字段。草稿只进库不发布,由人工在Notion里审阅修改。

可直接复制的材料

四平台草稿生成提示词

本站独立编写的练习提示词,非原模板内提示词;占位{{ }}为n8n表达式写法,署名「小周」请替换成你的名字。

你是一位课程创作者的营销助理。下面是我最新YouTube视频的字幕全文和链接。请基于字幕真实内容,分别起草四份文案,严格以JSON输出,不要输出其他内容:
{
  "facebookPost": "150字以内的Facebook帖子,口语化,带3-5个相关话题标签,结尾放视频链接",
  "emailCampaign": "一封邮件营销稿,含主题行和正文,正文200字以内,突出观众能学到什么,结尾行动号召指向视频链接",
  "skoolAnnouncement": "一条Skool社区公告,100字以内,语气像老师通知学员,说明新视频已上线",
  "udemyAnnouncement": "一条Udemy课程公告,120字以内,面向已购课学员,强调本视频与课程的关联"
}
要求:不编造字幕中没有的观点和数字;署名统一用「小周」;四份文案角度要有区分,不要同一句反复用。
视频标题:{{ $json.title }}
视频链接:{{ $json.url }}
字幕全文:{{ $json.transcript }}

SRT清理Code节点脚本

本站编写的清理逻辑示例;原模板的具体清理方式需以购买后的原文件为准。

// n8n Code节点:把SRT字幕清理成纯文本,本站独立编写示例
const out = [];
for (const item of $input.all()) {
  const srt = String(item.json.srt || '');
  const lines = srt.split(/\r?\n/).filter(l => {
    const t = l.trim();
    if (!t) return false;
    if (/^\d+$/.test(t)) return false;              // 序号行
    if (/-->/.test(t)) return false;               // 时间轴行
    return true;
  });
  const transcript = lines.join(' ')
    .replace(/<[^>]+>/g, '')                        // 去HTML标签
    .replace(/\s+/g, ' ')
    .trim();
  out.push({ json: {
    title: item.json.title,
    url: item.json.url,
    transcript
  } });
}
return out;

Notion数据库属性配置清单

属性名必须与说明中的五个名字完全一致,类型建议如上;Notion单属性文本过长可能被截断,长邮件稿注意字数。

{
  "database_properties": {
    "Video Name": { "type": "title", "map_from": "title" },
    "Facebook Post": { "type": "rich_text", "map_from": "facebookPost" },
    "Email Campaign": { "type": "rich_text", "map_from": "emailCampaign" },
    "Skool Announcement": { "type": "rich_text", "map_from": "skoolAnnouncement" },
    "Udemy Announcement": { "type": "rich_text", "map_from": "udemyAnnouncement" }
  }
}

测试用迷你SRT样本

本站虚构的三行SRT练习数据,用于绕过真实频道先调通清理与生成环节;正式运行时由captions.download提供真实内容。

1
00:00:01,000 --> 00:00:04,000
大家好,这节讲三个剪辑提速技巧。

2
00:00:05,000 --> 00:00:09,000
第一个技巧:用快捷键J、K、L控制播放。

3
00:00:10,000 --> 00:00:14,000
第二个技巧:先把素材粗剪再精修,能省一半时间。

输入与输出示例

本站虚构演示输出,仅展示字段结构,非OpenAI实际返回,也未真实写入Notion。

输入

测试视频标题「剪辑提速三技巧」,链接 https://youtube.com/watch?v=demo123,字幕经清理后为:「大家好,这节讲三个剪辑提速技巧。第一个技巧:用快捷键J、K、L控制播放。第二个技巧:先把素材粗剪再精修,能省一半时间。」

对应输出

OpenAI节点返回JSON:{"facebookPost":"还在一帧帧拖时间轴?新视频讲3个剪辑提速技巧:JKL快捷键控制播放、先粗剪再精修……省下的时间够多剪一条片。视频在这:https://youtube.com/watch?v=demo123 #剪辑 #视频制作","skoolAnnouncement":"各位同学,新视频《剪辑提速三技巧》已上线,讲JKL快捷键和粗剪流程,看完作业效率能翻倍。——小周"},Notion新建页面Video Name为「剪辑提速三技巧」,对应属性填入各草稿。

做完检查这些

  • Schedule Trigger的Cron为0 15 * * 2,5,手动执行也能走通全流程
  • 对无字幕的测试视频,流程在IF分支处停止且不产生Notion页面
  • 清理后的transcript不含数字序号行和'-->'时间轴行
  • OpenAI返回的是可解析JSON且四个字段齐全,Notion五个属性和五个值一一对应
  • Notion页面中草稿完整可读,流程全程没有任何自动发布动作

容易卡住的地方

  • 原模板为付费模板:未购买时无法获得原工作流文件,本页方案是本站按公开说明重建的练习,界面与参数需以原模板核对
  • YouTube字幕接口要求OAuth2且只能下载你有权限的频道字幕,第三方频道字幕通常拉不到
  • captions.download返回格式可能是SRT以外的轨道格式,清理脚本要按实际格式调整
  • OpenAI和可能的模型调用另收费,视频长、字幕长时单次成本上升,提示词里要限制输出长度
  • Notion属性名拼写不一致会映射失败;rich_text属性对超长文本有长度限制
  • 无字幕视频直接停止是原模板设计,不要改成跳过字幕强行生成,否则草稿会失去事实依据

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Repurpose YouTube captions into social, community, and email content with OpenAI and Notion
原作者
Khadija Naeem
原始发布日期
2026-09-04T17:53:33.259Z
来源
https://n8n.io/workflows/19219