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凭据及一个已建好五个指定属性的数据库
- 一个你自己频道、带官方字幕的视频用于测试
具体怎么做
设置触发方式
添加Schedule Trigger,Cron设为每周二、周五15:00(0 15 * * 2,5),同时保留手动执行入口,方便用指定视频调试而不必等定时。
拉取频道最新视频
用HTTP Request节点(挂Google OAuth2凭据)调YouTube Data API的search或playlistItems接口,取已授权频道上传列表中最新一条视频,输出videoId、标题、发布时间和视频链接。
检查并下载字幕
再调captions.list接口列出该视频的字幕轨;用IF节点判断返回items为空时直接结束流程(原模板行为就是无字幕即停止)。有字幕时取第一条轨道的id,调captions.download拿到SRT内容。
把SRT清理成纯文本
添加Code节点,去掉序号行、时间轴行和空行,合并成一段连贯文字,同时保留视频标题和链接字段一起传给下一步。SRT清理正则要兼容 '-->' 时间行和可能的HTML标签。
一次生成四平台草稿
添加OpenAI节点,把清理后的字幕全文和视频链接放进提示词,要求以JSON结构输出facebookPost、emailCampaign、skoolAnnouncement、udemyAnnouncement四个字段,并把提示词中署名占位[YOUR NAME]换成自己的名字和口吻。
写入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