一句话让 AI 自动生成短视频:用 n8

一句话让 AI 自动生成短视频:用 n8n 打造 YouTube 自动发布系统

一句话让 AI 自动生成短视频:用 n8n 打造 YouTube 自动发布系统

不再手动上传,只要输入创意,n8n 帮你自动生成和发布视频。

#AI #自动化 #n8n #YouTube #Sora2 #Claude

如果你也曾想过:“能不能用 AI 自动生成视频,然后直接发布到 YouTube?”——这篇文章就是为你写的。

最近,我用 n8n、Claude 和 Sora-2 搭建了一个完整的自动化工作流:从输入一个创意开始(手动),到生成视频、添加标题描述,再自动上传到 YouTube,全程无人值守。

本文会完整讲解整个系统的实现过程、技术细节、常见坑点,以及它的实际应用价值。

一、为什么要做这个自动化?

AI 视频生成越来越普及,但手动发布依然耗时:

每次都要想标题、写描述、加标签。

YouTube 上传页面填写信息多,流程繁琐。

想批量测试不同风格的视频,效率低。

最近Sora-2不是很火嘛,于是我想,如果这些操作能交给自动化工具处理,那就能把精力集中在创意本身。

于是,便有了这个项目:用 n8n 搭建一个自动生成并发布视频的工作流。

目标很明确:

自动生成视频内容(通过 Claude + Sora-2)

自动上传到 YouTube(通过 API)

减少重复操作,实现“输入一句话 ➡️ 自动产出视频 ➡️ 自动发布YouTube”

二、工作流总体设计

整个系统基于 n8n 实现,核心流程如下:

💬 聊天输入界面
↓
🤖 AI生成内容(Claude)
↓
📝 解析AI响应
↓
🎬 生成视频(Sora-2)
↓
⏳ 检查生成状态 ──未完成→ ⏰ 等待重试 ──┐
↓完成 │
📥 下载视频文件 ←───────────────────────┘
↓
📤 上传到YouTube

最终工作流流程图:

实现效果:

输入一句话,例如 “一只金渐层猫咪在追着红色激光点上蹿下跳”。

使用https://api.aicso.top/ 接口平台的Claude模型生成提示词、标题、描述、标签。

使用https://api.aicso.top/ 接口平台的Sora-2模型生成视频。

自动上传到 YouTube,设置标题、文案、区域、标签。

只要输入一句话,就会自动生成视频和发布。

实际耗时:

手动操作:15-30分钟(同使用Sora-2制作视频和下载视频)

自动流程:输入创意后不到 6 分钟(等待视频生成约 2-5 分钟)

单条视频成本:

单条视频成本约 ¥0.0595~0.096 元:

Claude API:¥0.01~0.03

n8n:免费(Github注册满180天用户,ClawCloud每月赠送5美刀,一个月的费用都没有5刀,基本够了)

YouTube API:免费

一条视频的费用约等于无了,可以尽情造。

三、具体搭建步骤

3.1、第一步:准备环境

所需工具和账号:

n8n(推荐 ClawCloud,有公网访问)

Google Cloud 项目(启用 YouTube Data API v3,这里不会细讲创建项目,主要讲权限配置和应用发布)

YouTube 账户(绑定 OAuth2)

⚠️ 注意:YouTube OAuth 认证不支持 localhost。必须部署在有公网域名的服务器上,或者使用ngrok、frp等反向代理,本文主要是讲解在ClawCloud部署的n8n。

推荐部署方式:

ClawCloud 部署的n8n:GitHub 180天及以上的用户每月有5刀的额度,每天0.14刀,一个月0.14*30=4.2够用了。

海外云服务器 npmjs 部署:需绑定域名并配置 SSL。

3.2、第二步:创建工作流

3.2.1、创建新工作流

1、打开 n8n 控制台 → 新建工作流「Create Workflow」:

2、在顶部给工作流命名,例如「YouTube视频自动发布2」,因为我已经存在了,所以加了个2区分:

3.2.2、添加节点1:Chat Trigger(聊天触发器)

1、点击「Add first step…」,在弹出窗口输入选择「On chat message」:

2、启用「Make Chat Publicly Available」,在「Initial Message(s)」输入「请输入要生成的视频主题、内容~」:

3.2.3、添加节点2:AI生成视频信息(HTTP Request)

1、点击 「When chat message received」 节点右侧的「+」,搜索「HTTP Request」并点击,修改名称为「AI生成视频信息」:

2、配置节点:

Method:POST

URL:https://api.aicso.top/v1/chat/completions

Authentication:None(我们手动在 Headers 中配置)

Headers:

点击「Add Header」

Name: Authorization

Value: Bearer 你的API密钥(注意 Bearer 后有空格)

再添加一个(可以不加):Name: Content-Type,Value: application/json

Body:

{
"model": "claude-sonnet-4-5-20250929",
"messages": [
{
"role": "system",
"content": "你是一个专业的视频创作助手。根据用户输入,生成适合YouTube Shorts的视频提示词、标题、描述和话题,输出内容必须是英文,简洁直白。输出格式必须是JSON: {\"prompt\":\"视频提示词\",\"title\":\"标题含#话题\",\"content\":\"内容含#话题\",\"tags\":\"#话题\"}"
},
{
"role": "user",
"content": "{{ $json.chatInput.trim() }}"
}
],
"temperature": 0.7
}

这个提示词只是测试生成的,需要自己优化调整为更好的。

3.2.4、添加节点3:解析AI响应(Code)

1、点击上一个节点右侧的「+」,搜索「Code」,点击「Code」,选择「Code in JavaScript」:

2、设置节点名称为「解析AI响应」:

3、添加下面代码:

// 解析AI返回的JSON
const aiResponse = $input.item.json;
const content = JSON.parse(aiResponse.choices[0].message.content);

return {
json: {
prompt: content.prompt,
title: content.title,
content: content.content ,
tags: content.tags
}
};

3.2.5、添加节点4:生成视频(Sora-2)

1、点击上一个节点右侧的「+」,搜索「http」,选择「HTTP Request」节点,修改节点名称为「生成视频(Sora-2)」:

2、配置节点:

Method:POST

URL:https://api.aicso.top/v1/chat/completions

Authentication:None

Headers:

Name: Authorization,Value: Bearer 你的API密钥

Name: Content-Type,Value: application/json 可不配置

Body(JSON):

{
"model": "sora-2-portrait",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "{{ $json.prompt }}"
}
]
}
]
}

Options → Timeout:600000(10分钟)

3.2.6、添加节点5:检查视频状态(IF)

1、添加节点,点击上一个节点右侧的「+」,搜索「IF」,选择「IF」节点,修改节点名称为「检查视频状态」:

2、配置节点:

Conditions:

Value 1: {{ $json.choices[0].message.content }}

Operation: contains

Value 2: [download video](https://

这个节点会有两个输出:

true:视频生成完成,连接到下一个「HTTP Request」节点下载视频

false:视频未完成,连接到「Wait」节点等待,「Wait」节点又连接到「生成视频(Sora-2)」节点,其实只要「生成视频(Sora-2)」开启了重试就可以不用这个节点了。

3.2.7、添加节点6:Wait(等待节点)

1、添加节点,点击 IF 节点下方的「false」输出端,搜索「Wait」,选择「Wait」节点:

节点使用默认配置即可,然后点击 Wait 节点右侧的「+」,连接到「生成视频(Sora-2)」节点前面形成循环。

3.2.8、添加节点7:下载视频(HTTP Request)

1、添加节点,点击 IF 节点的「true」输出端,搜索「http」,选择「HTTP Request」节点,修改节点名称为「下载视频」:

2、配置节点:

Method:GET

URL:使用表达式提取视频链接

{{ $json.choices[0].message.content.match("(https://.*mp4)")[0] }}

Response Format:File

Put Output in Field:videoData(视频数据存储的属性名)

3.2.9、添加节点8:上传到YouTube

1、添加节点,点击上一个节点右侧的「+」,搜索「YouTube」,点击「YouTube」,选择「Upload a video」节点,修改节点名称为「上传到YouTube」:

2、配置节点:

Credential to connect with:待配置(下一步说明)

Resource:Video

Operation:Upload

Title:{{ $(‘解析AI响应’).item.json.title }}

Category ID:1(Film & Animation)

Description:{{ $(‘解析AI响应’).item.json.content }}

Tags:{{ $(‘解析AI响应’).item.json.tags }}

Region Code:United States of America(the)-US

Input Binary Field:videoData

设置好后我们就开始YouTube凭证配置这个坑点了。

3.3、第三步:配置密钥与凭证

3.3.1、Claude / Sora-2 API

创建好后复制令牌粘贴到对应节点的「Authorization」参数值的「Bearer」后面即可,「Bearer」右边记得要加个空格。

3.3.2、YouTube OAuth2 认证

⚠️ 重要提示:YouTube 凭证配置是整个流程中最容易踩坑的环节,请仔细阅读!

根据 N8N 官方文档,YouTube 节点:

✅ 支持 OAuth2 认证

❌ 不支持 Service Account(服务账号)

1、在 Google Cloud Console「https://console.cloud.google.com/」 创建新项目或选择现有项目:

2、点击「API和服务」,在新页面点击「库」:

3、在「API库」页面输入「YouTube」搜索,找到「YouTube Data API v3」并启用:

4、点击「凭证➡️创建凭证」,选择「OAuth 客户端 ID」:

2、创建「OAUTH客户端」:

需要在「上传到YouTube」节点的「Credential to connect with」处创建凭证,如果有,点击右边的笔图标编辑也可:

复制「OAuth Redirect URL」,返回「创建 OAuth 客户端 ID」,在「已获授权的重定向 URI」输入框输入复制的「OAuth Redirect URL」:

复制自己的客户端 ID和客户端密钥填写到n8n的YouTube凭证输入框:

填好后先不要点击「Sign in with Google」,因为我们还没发布应用。

没发布应用就会出现403 access denied错误,这是一个隐藏的坑点,我在这里琢磨了好几个小时😭。

点击「目标对象」,然后点击页面的发布应用:

返回n8n点击「Sign in with Google」:

因为我解析了域名,所以要修改地址为我解析的域名再访问:

返回YouTube凭证设置:

账号连接成功。

3.4、第四步:测试运行

1、在工作流左下角的Chat窗口输入视频主题,记得要修改「AI生成视频信息」、「生成视频(Sora-2)」两个节点的令牌哦:

执行完成没报错👍。

2、检查 YouTube 频道是否上传成功:

发布的视频播放数有高有低高的有1000+(之前用Sora2生成的视频手动发布的有破2w播放),低的也有0,

四、常见问题与坑点

1、问题:OAuth Redirect URL 不能使用 localhost ⚠️ 高频坑点

现象:点击「Sign in with Google」后授权失败

原因:Google 不允许 localhost 作为 OAuth 回调地址,会出现地址无法访问的情况

解决方案:

方案1:使用公网域名部署 n8n(推荐)

我使用的是 clawcloud 部署 + 域名解析

也可以用其他云服务商的海外服务器部署(阿里云、腾讯云等)

方案2:使用反向代理工具

ngrok、frp等工具将本地 n8n 暴露到公网(临时方案)

2、问题:Google 应用未发布导致授权失败(⚠️ 重要坑点)

现象:授权时提示权限不足或无法访问

原因:应用处于测试状态,未发布

解决:访问 https://console.cloud.google.com/auth/audience?project=你的项目名称 发布应用

如果不发布应用,会导致授权失败或权限不足

3、问题:API 返回 401 错误

检查 API 密钥是否正确

确认格式为 Bearer 密钥(注意空格)

4、问题:YouTube 上传失败

重新授权 YouTube 凭证

确认 Google Cloud 项目已启用 YouTube Data API v3

检查 OAuth 重定向 URI 是否正确

确认使用的是 OAuth2(不是 Service Account服务账号)

5、问题:视频生成超时

增加「生成视频(Sora-2)」节点的 timeout 值

当前设置为 600000ms(10分钟),可根据需要调整,如调整为900秒

增加重试机制

五、项目总结

5.1、值得做这个项目吗?

如果你的目标是 学习技术 ✅ 值得做。

这是一个非常实用的 n8n 自动化入门项目,可以让我们快速理解工作流编排的核心逻辑。

可以学会并掌握 API 集成、AI 内容生成、自动化上传 等实用技能。

同时还能体验 Claude、Sora-2 等AI工具的协作方式,了解完整的 AI 工具链工作原理。

如果你的目标是 通过它赚钱 ❌ 不建议。

AI 生成内容流量不稳定,平台更喜欢原创、有质量的内容。

投入产出比偏低:生成容易,吸引用户难。

原创性有限,大量发布甚至可能被算法判定为“低原创内容”。

AI 生成的视频原创性有限,发多了可能会被平台检测出来。真正能长久运营的账号,仍然离不开内容质量。

所以,把这个项目当成技术实践与效率工具,而不是流量机器。

它能让你少花时间在机械操作上,多花时间在创意上。

5.2、我的真实感受

收获:

✅ 掌握了多项新技术(n8n、API、AI 视频生成)

✅ 明显减少了重复劳动,提高创作效率

✅ 能快速验证不同视频创意和风格

✅ 整个搭建过程挺有意思的

局限:

⚠️ 视频质量与播放表现不稳定,依赖提示词质量

⚠️ 成本虽然不高,但积累起来也不少

⚠️ AI 生成的内容缺乏个性和深度

⚠️ 不适合大规模或商业化内容生产

5.3、给想尝试的朋友的建议

1、把它当作学习项目,不要期望太高的收益

2、先解决部署问题:

新手建议用 n8n Cloud,也可以用ClawCloud部署,避免折腾部署

自托管的话,必须配好公网域名和 SSL

localhost 是无法完成 YouTube OAuth 授权的

3、YouTube 凭证配置要仔细:

这是最容易卡住的地方

一定要发布 Google 应用

OAuth Redirect URL 要填对

4、先小规模测试,生成几个视频看看效果

5、关注学习过程,而不是结果

6、如果想认真做 YouTube,还是要做原创内容

如果你也在探索类似的自动化方案,或者有什么好的想法和建议,欢迎在评论区交流!