Mindket

从取样帧生成视频旁白脚本和配音

新上架第 1 版 · 更新于

概览

一个为视频写配音的 n8n 工作流。它从视频里挑出帧,让 OpenAI 视觉模型分批描述,把脚本变成语音,并把 mp3 存进 Google Drive。

从取样帧生成视频旁白脚本和配音 是一款 n8n 工作流,属于营销类,由 Mindket 上架。可免费获取。当前为第 1 版,最近更新于 。在本页下载,或复制它的 JSON,再导入 n8n 画布。在 n8n 里启用之前,它不会运行。

速览

用在
  • n8n Cloud:它跑不了取帧这一步,因为 Cloud 不允许 Python 导入
  • 你自己的 n8n 服务器:下面的文件和步骤,加上一个装有 OpenCV 的运行器镜像,以及给 Edit Image 节点用的 GraphicsMagick
  • OpenAI:写脚本的视觉模型,和把脚本读出来的声音
  • Google Drive:mp3 最后存放的地方

平台

连接 2 个应用

运行方式

触发

手动运行

点 Test workflow 时开始运行,没有表单:

  • 一个视频,从 Download Video 节点里的地址下载

动作

  1. 从一个公开地址下载视频
  2. 一个用 OpenCV 的 Python 步骤在视频里均匀挑出最多 90 帧
  3. 帧被分成每批 15 张,每张都转成图片并缩小到 768 x 768 像素以内
  4. OpenAI 视觉模型为每一批写旁白,并接着前面已写的脚本
  5. 每批之间工作流会等待 30 秒
  6. 各部分被合并,由 OpenAI 语音合成读成一个 mp3
  7. mp3 被上传到一个 Google Drive 文件夹

结果

你的 Google Drive 文件夹里有了这个视频的旁白 mp3

集成

开始之前要准备好这些。

OpenAI

视觉模型和语音

用 gpt-6-luna 根据帧写出旁白,并把脚本读出来。

需要OpenAI API 密钥

Google Drive

文件存储

把做好的 mp3 存进你设置的文件夹。

需要Google Drive OAuth2 凭据和一个文件夹 ID

工作流检查

由 Mindket 于 2026年11月13日检查

步骤
13 个步骤,手动启动
AI
2 个步骤调用 AI 模型:Use Text-to-Speech、Generate Narration Script
登录
需要登录:OpenAI、Google Drive
API 密钥
文件里没有留下 API 密钥
步骤类型
Mindket 的检查器能读懂它 12 种步骤类型中的 11 种,读不懂的是:Code

以上内容读自工作流文件,并非实际运行的结果。

关于

它是什么

这个 n8n 工作流为一段视频写旁白。它下载一个视频,用 OpenCV 在视频里均匀挑出最多 90 帧。OpenAI 视觉模型每批看 15 帧,一批接一批地写旁白,每一批都接着前面已写的脚本继续。然后 OpenAI 语音合成把整份脚本读出来,mp3 存进 Google Drive。十四个节点完成全部工作,另有七张便签。

适合谁

想为一段短视频快速得到一份口播评论初稿、并且自己运行 n8n 服务器的创作者和营销团队。如果你用的是 n8n Cloud,就别选它,因为取帧这一步需要 OpenCV。

谁在用,怎么用
行业谁在用怎么用例子
营销社交媒体团队为一段产品短片起草旁白一个团队运行一段 20 秒的演示短片,得到一份脚本和一个可以修改的 mp3。
旅游旅游局用平静的声音描述风景镜头旅游局把一段黎明港口的短片变成一段口头描述。
教育教师为没有声音的课程视频加上口头说明一位老师为一段科学实验的短片得到一份旁白。
媒体内容团队为原始素材起草第一版解说一位剪辑在写最终文字之前,先听一遍街景短片的初稿。

你需要自己的 n8n 服务器,上面有装了 OpenCV 的 Python 运行器,再有一个 OpenAI 密钥和一个 Google Drive 账号。

用在哪里

你自己的 n8n 服务器,配好能导入 OpenCV 的 Python 任务运行器,再加上 OpenAI 密钥和 Google Drive。

  • n8n Cloud:它跑不了取帧这一步,因为 Cloud 不允许 Python 导入
  • 你自己的 n8n 服务器:下面的文件和步骤,加上一个装有 OpenCV 的运行器镜像,以及给 Edit Image 节点用的 GraphicsMagick
  • OpenAI:写脚本的视觉模型,和把脚本读出来的声音
  • Google Drive:mp3 最后存放的地方

设置

点“下载”会把一个压缩包存到你的下载文件夹,里面有 workflow.json 和 Mindket 写的设置说明。运行器这一步最花时间,所以先做它。

先准备好这些
需要详情
n8n你自己的服务器,带一个 Python 任务运行器
OpenCV运行器镜像里装 opencv-python-headless,并允许 cv2
OpenAI一个能用 gpt-6-luna 和语音接口的 API 密钥
Google Drive一个 OAuth2 凭据和一个文件夹
GraphicsMagickEdit Image 节点要用,n8n 自己的 Docker 镜像里已包含
  1. 在 n8n 里新建一个工作流,打开它的菜单,选 Import from File,选 workflow.json。
  2. 给 Python 运行器装上 OpenCV。在运行器镜像里安装 opencv-python-headless,把 N8N_RUNNERS_EXTERNAL_ALLOW 设为 cv2,把 N8N_RUNNERS_STDLIB_ALLOW 设为 base64。把 N8N_RUNNERS_BUILTINS_DENY 设为它的默认列表,但去掉 open。
  3. 添加一个 OpenAI 凭据,在 OpenAI Chat Model 和 Use Text-to-Speech 里选它。
  4. 添加一个 Google Drive OAuth2 凭据,在 Upload to GDrive 里选它。把 YOUR_FOLDER_ID 换成你的文件夹 ID。
  5. 想用你自己的视频,就改 Download Video 里的地址。
  6. 先单独运行 Download Video 和 Capture Frames。帧能返回之后,再点 Test workflow。

如何使用

点 Test workflow。一次运行要好几分钟,因为取帧这一步要一两分钟,而循环在六轮的每一轮之后都要等 30 秒。先用示例视频。然后再改 Download Video 里的地址,并且保持视频很短,因为帧都放在内存里。

想要不同的结果,改这里
要改的位置
旁白的风格Generate Narration Script 里的提示词
取多少帧Capture Frames 里的 max_frames
帧的大小Resize Frame 里的宽和高
声音Use Text-to-Speech 里的模型和声音
每轮之间的停顿Stay Within Service Limits
视频Download Video 里的地址

示例

一个团队运行示例短片,内容是有三轮车和行人的繁忙街道。

取帧这一步返回大约 90 张图片,视觉模型分六轮,用自然纪录片解说员的口吻描述它们。mp3 存进 Drive 文件夹。用之前先听一遍,因为模型可能会描述短片里并没有的东西。

新手与专家

新手:n8n 把工作流画成用线连起来的方框,每个方框,也就是节点,做一件事。任务运行器是一个单独的小程序,替 n8n 运行 Python。这个工作流把视频变成少量图片,让模型描述它们,再把描述读出来。先试试示例短片。

专家:脚本是一轮一轮变长的,因为每个提示词都会重复已写好的部分,而链只有固定数量的图片位,所以一轮装不下更多。

再细看这里
节点作用要注意的
Capture Frames把视频写成临时文件,读取最多 90 帧需要允许 cv2 和 base64,并把 open 从禁用列表里去掉
For Every 15 Frames每一轮送 15 帧链只有 15 个图片位,所以这个数就是上限
Generate Narration Script看这 15 张图片,写脚本的一部分从第二轮起,提示词里会重复前面已写的部分
Stay Within Service Limits在各轮之间停顿这里是 30 秒,原来没有设值,所以默认是一小时
Use Text-to-Speech把合并后的脚本读出来它没有设模型,所以 n8n 用 tts-1

注意事项

有两个模型即将停用,取帧这一步最难设置,而且声音必须声明是 AI 生成的。

  • 取帧这一步:原来的 Python 丢了缩进,并且用 _input 读取视频,而 n8n 的 Python 运行器没有它。Mindket 的副本加回了缩进,并用 _item 来取视频。n8n 的文档(2026 年 11 月 12 日查阅)说 Pyodide 已从 n8n 2.0 移除。文档还说 Cloud 不允许 Python 导入。所以这一步需要你自己的服务器和带 OpenCV 的运行器。先单独运行它
  • 模型:原来的聊天模型是 gpt-4o-2024-08-06。OpenAI 的弃用页面(2026 年 11 月 12 日查阅)列出它在 2027 年 1 月 14 日关停,替代是 gpt-6-luna,它接受图片输入。Mindket 的副本用 gpt-6-luna
  • 声音:Use Text-to-Speech 没有设模型,所以 n8n 用 tts-1。同一页列出 tts-1、tts-1-hd 和 gpt-4o-mini-tts 在 2027 年 1 月 6 日关停,替代是 gpt-realtime-2.1-mini。OpenAI 的语音合成指南说这个节点调用的语音接口不支持那个模型,所以要在那之前计划好替换这一步
  • AI 声音:OpenAI 的使用政策要求你告诉听众这个声音是 AI 生成的
  • 长度:n8n 的节点说,语音文字最多 4096 个字符。较长的脚本需要拆开
  • 停顿:原来的等待节点没有设值,所以用了 n8n 默认的一小时。Mindket 的副本等 30 秒,一次运行因此多出三分钟
  • 风格:提示词原来要求某位知名播音员的风格。Mindket 的副本要求自然纪录片解说员的风格
  • 内存:很长的视频和很多帧会让你的 n8n 停下来
  • 计费:一次 90 帧的运行,OpenAI 会计六次聊天请求,每次带一批图片,再加一次语音请求
  • 你的数据:帧和脚本发给 OpenAI,mp3 发给 Google Drive
  • 出处:示例视频来自 Pixabay 上的 Coverr-Free-Footage
  • 凭据:JSON 里没有任何凭据

README 和文件

README

从取样帧生成视频旁白脚本和配音

一个 n8n 工作流,为一段视频写旁白。它下载一个视频,在视频里均匀挑出最多 90 帧,分成每批 15 帧发给 OpenAI 视觉模型,模型一批接一批地写旁白脚本。写好的脚本交给 OpenAI 语音合成,mp3 配音上传到 Google Drive。

包里有什么

  • workflow.json:n8n 导出的工作流,14 个工作节点和七张便签。里面没有任何凭据。
  • README.md:这份设置说明,压缩包里的是英文版。
  • 示例视频来自 Pixabay 上的 Coverr-Free-Footage。

我们相对原来的副本改了什么

  • Capture Frames 是一个 Python 节点。原来的副本丢了缩进,每一行都在同一层,所以跑不起来。它还用 _input.item.binary.data.data 来读视频,而 n8n 的 Python 运行器没有它。现在脚本重新缩进,并读取 _item["binary"]["data"]["data"]。它从没用到的 NumPy 导入也去掉了。
  • n8n 里的 Python 变了。Code 节点页面(2026 年 11 月 12 日查阅)说旧的 Python 选项 Pyodide 已从 n8n 2.0 移除,并说 n8n Cloud 不允许 Python 导入。这一步需要 OpenCV,所以需要你自己的服务器,和一个带 OpenCV 的 Python 运行器。见“开始之前”。
  • OpenAI Chat Model 原来是 gpt-4o-2024-08-06。OpenAI 的弃用页面(2026 年 11 月 12 日查阅)列出它在 2027 年 1 月 14 日关停,替代是 gpt-6-luna。节点现在是 1.2 版,模型是 gpt-6-luna。它的模型页面(同一天查阅)列出了图片输入和聊天请求。
  • Stay Within Service Limits 原来没有设任何值,所以用的是 n8n 的默认值,也就是一小时。现在它等 30 秒。
  • 提示词原来要求某位知名播音员的风格。现在要求自然纪录片解说员的风格。
  • Upload to GDrive 原来有作者自己的文件夹 ID。现在是 YOUR_FOLDER_ID。
  • 七张便签已重写,里面没有外部链接。
  • 每个凭据引用都已移除,由你自己选。

开始之前

  • 你自己的 n8n 服务器。n8n Cloud 跑不了取帧这一步,因为它不允许 Python 导入。
  • 一个带 OpenCV 的 Python 任务运行器。按下面的第 2 步设置。
  • 一个能用 gpt-6-luna 和 OpenAI 语音接口的 OpenAI API 密钥。
  • 一个 Google 账号、一个 Drive 文件夹和一个 Google Drive OAuth2 凭据。
  • Edit Image 节点要用 GraphicsMagick。n8n 自己的 Docker 镜像里已包含,自己搭的服务器要另外装。
  • 足够的内存。视频和它的帧都放在内存里,很长的视频会让你的 n8n 停下来。

设置

  1. 在 n8n 里新建一个工作流,打开它的菜单,选 Import from File。选 workflow.json。
  2. 给 Python 运行器装上 OpenCV。n8n 的任务运行器页面(同一天查阅)介绍了怎样构建带额外 Python 包的运行器镜像,以及怎样允许它们。在那个镜像里安装 opencv-python-headless,把 N8N_RUNNERS_EXTERNAL_ALLOW 设为 cv2,把 N8N_RUNNERS_STDLIB_ALLOW 设为 base64。运行器的源码(同一天查阅)默认禁用 open,而这个脚本用它先把视频存下来再读取。把 N8N_RUNNERS_BUILTINS_DENY 设为默认列表,但去掉 open。
  3. 添加一个 OpenAI 凭据,在 OpenAI Chat Model 和 Use Text-to-Speech 里选它。
  4. 添加一个 Google Drive OAuth2 凭据,在 Upload to GDrive 里选它。把 YOUR_FOLDER_ID 换成你的文件夹的 ID,它是文件夹地址里 /folders/ 后面的部分。
  5. 想用你自己的视频,就改 Download Video 里的地址。选一个短的,并且是 OpenCV 能读的格式。
  6. 先单独运行 Download Video,再运行 Capture Frames。它们返回帧之后,再点 Test workflow。

一次运行是怎么走的

  1. Download Video 下载示例 mp4,大约 3 MB。
  2. Capture Frames 把视频存成临时文件,按均匀的间隔逐段读取,并把每一帧作为一个 jpeg 的 base64 文字,放进同一个列表里返回。
  3. Split Out Frames 为每一帧做一个条目。
  4. For Every 15 Frames 每次取 15 帧。它的完成线去 Combine Script,循环线去 Convert to Binary。
  5. Convert to Binary 把每段文字变成图片文件。Resize Frame 把它缩进 768 x 768 像素以内,保持比例,输出 jpeg。Aggregate Frames 把 15 张图片放到同一个条目上。
  6. Generate Narration Script 附上这 15 张图片,让 OpenAI Chat Model 写一段简短的配音脚本。从第二轮起,提示词里还带着已写好的脚本,所以故事会接着讲下去。
  7. Stay Within Service Limits 等 30 秒,然后循环取下一批 15 帧。
  8. Combine Script 把各部分收集起来。Use Text-to-Speech 用换行把它们连起来,做成一个 mp3。Upload to GDrive 把它存进你的文件夹,文件名是 narrating-video-using-vision-ai- 加上时间,以 .mp3 结尾。

改成你要的样子

  • 旁白的风格:Generate Narration Script 里的提示词。
  • 取多少帧:Capture Frames 里的 max_frames。
  • 每批的大小:For Every 15 Frames。链有 15 个图片位,所以更大的批要在那里加图片位。
  • 帧的大小:Resize Frame 里的宽和高。
  • 声音:Use Text-to-Speech 里的模型和声音。
  • 停顿:Stay Within Service Limits。
  • 视频:Download Video 里的地址。

注意事项

  • Capture Frames 是最难的一步。OpenCV 的调用是原来的,只有缩进和读取视频的方式变了,所以在依赖它之前,先单独对示例视频运行一次。
  • gpt-6-luna 是 OpenAI 的弃用页面为原来那个带日期的 gpt-4o 版本指定的替代。
  • Use Text-to-Speech 没有设模型,所以 n8n 用它的默认值 tts-1。同一个弃用页面列出 tts-1、tts-1-hd 和 gpt-4o-mini-tts 在 2027 年 1 月 6 日关停,替代是 gpt-realtime-2.1-mini。语音合成指南(同一天查阅)说,这个节点调用的语音接口不支持那个模型。节点在关停之前还能用,所以要在那之前计划好替换这一步。
  • OpenAI 的使用政策(同一天查阅)要求你告诉听众这个声音是 AI 生成的。
  • n8n 的节点说,语音文字最多 4096 个字符。六个短的部分通常装得下,更长的脚本需要拆开。
  • 一次 90 帧的运行,OpenAI 会计六次每次带 15 张图片的聊天请求,和一次语音请求。
  • 这些等待会让一次运行多出三分钟。如果你的速率限制很高,就缩短或删掉 Stay Within Service Limits。
  • 帧、脚本和旁白提示词发给 OpenAI,做好的 mp3 发给 Google Drive。
文件
NOTICE.md  614 B
README.md  7 KB
workflow.json  16 KB

3 个文件,共 23 KB,以 zip 压缩包下载。

更新内容

  • 第 1 版 · 2026-11-12

评价

还没有评分

写评价

还没有评价。

Mindket 的更多商品

查看 Mindket 的全部商品

Nanosaur2-670M

well9472 · 工具包

用一个 670M 参数的小型扩散模型,根据文字提示生成插画,在 ComfyUI 中运行。这是一个低预算的研究模型,适合想试用或训练自己 LoRA 的人。

新上架

waqf-ocr-hand-written-v1

Waqf-AI · 工具包

读取图片中的阿拉伯语手写文字并以文本形式返回。这是微调过的 PaddleOCR-VL 模型,适合要把阿拉伯语手写内容数字化的人。

新上架

Wan2.2-TI2V-5B-Diffusers

Wan-AI · 工具包

根据文本提示或图像加文字生成视频片段,最高 720P、每秒 24 帧,Diffusers 格式,适合单块消费级 GPU。

新上架

营销类的相似商品

查看营销类的全部商品

Flux.2-Klein-9B-MatchingPose

nhathoangfoto · 工具包

FLUX.2 Klein 9B 的一个 LoRA,让角色摆出模特参考图中的姿势,同时保留角色的脸和风格。适合艺术家和设计师。只能使用你有权使用的脸。

新上架

Z-Image-Turbo-GGUF

leejet · 工具包

在配置不高的显卡上根据文字生成图片,使用为 stable-diffusion.cpp 做的 Z-Image-Turbo 量化文件。适合在自己电脑上运行图像模型的人。

新上架

HiDream-I1-Full

HiDream-ai · 工具包

用一个 170 亿参数的开源模型从文字提示词生成图像,在模型卡的提示词遵循表格中名列前茅。适合有高性能 GPU 的设计师、营销人员和开发者。

新上架