anaksor-ocr
Sokheng · 工具包
这个模型从文档、收据和路牌照片里读取高棉语和英语文字,用一个检测器找文本行,再用识别器读每一行。适合需要在 Python 里做高棉语 OCR 的开发者。
一个从 Google Sheets 队列出发、每天做一条十大排行倒数视频的 n8n 工作流。OpenRouter 上的模型写题目和脚本,JSON2Video 渲染视频,YouTube 收到一条不公开的上传。
每天自动制作十大倒数视频并上传到 YouTube 是一款 n8n 工作流,属于营销类,由 Mindket 上架。可免费获取。当前为第 1 版,最近更新于 。在本页下载,或复制它的 JSON,再导入 n8n 画布。在 n8n 里启用之前,它不会运行。
两个每日定时
每天 10:00 自动开始,也可以手动运行,不需要表单。两个定时分别启动:
你的频道每天多一条不公开的十大排行视频,表格里看得到每个题目进行到哪一步
开始之前要准备好这些。
题目队列
存放题目,把新创意写成新行,并记录每个视频的两个状态和文件地址。
需要一个用来登录的 Google 账号,以及一张有四个表头的表格
语言模型
运行出创意的模型和 openai/gpt-4o,后者写开场、结尾和排名条目。
需要有余额的 OpenRouter API 密钥
视频渲染
用模板渲染倒数视频,每个场景配一段配音和一张 AI 图片,并报告渲染状态。
需要JSON2Video API 密钥,放在 x-api-key 请求头里发送,以及够用的额度
配音
你的密钥以工作流发送的连接 ID 存在 JSON2Video 里时,在 JSON2Video 内为脚本配音。
需要一个存进 JSON2Video 的 ElevenLabs API 密钥,或者填 none 改用 JSON2Video 自己的密钥
上传
把每个做好的视频以不公开方式上传到你的频道,标题是 Top Ten 加题目。
需要一个 YouTube 频道,以及一个用来登录的 Google 账号
由 Mindket 于 2026年11月13日检查
这个 n8n 工作流每天做一条十大排行倒数视频,并上传到 YouTube。一张 Google 表格存放题目队列。每天早上,一个分支请 OpenRouter 上的模型想出十个新题目,写成新行,同时另一个分支取出第一个仍标着 To Do 的题目。GPT-4o 为它写出口播的开场、结尾和十个排名条目,每条都带一句画面提示词。JSON2Video 用一个现成的模板渲染视频,每个场景都有 AI 配音和一张图,YouTube 收到一条不公开的上传。表格记下每一步。它有 31 个节点,其中六个是标出各阶段的便签。
想要源源不断的排行视频、又不想自己写稿剪辑的无脸频道和小型媒体团队。题目刻意选不过时的,所以食物、地方和品牌都合适。新闻,或者任何事实必须核实的内容,就别用它,因为模型只凭已有的知识排名,不列出处。没有任何视频会自己变成公开。
| 行业 | 谁在用 | 怎么用 | 例子 |
|---|---|---|---|
| 无脸 YouTube 频道 | 个人创作者 | 每天一条倒数视频维持频道更新,自己专心做长视频 | 一位创作者周日看完本周的不公开视频,把最好的三条设为公开。 |
| 美食和旅行媒体 | 小型编辑团队 | 在表格里填自己的题目,比如各地的特色菜 | 一个旅行网站排进 Beaches in Portugal,把做好的视频嵌进一篇文章。 |
| 营销代理公司 | 内容制作人 | 开一个测试频道,看哪类排行题目留得住观众 | 一家代理公司对比一个月里各个题目的观看时长。 |
| 社交媒体 | 短视频剪辑 | 把每条倒数视频剪成片段发到其他平台 | 一位剪辑把最后三个条目剪成 Instagram 上的预告。 |
你需要会一点 n8n,还要四个账号:OpenRouter、JSON2Video、YouTube 和 Google。作者估计设置要 18 分钟左右,前提是账号都已经准备好。
任何能访问 OpenRouter、JSON2Video、Google 和 YouTube 的 n8n 都能按两个定时运行它,整个队列都在一张表格里。
Top Ten: 加题目点“获取”会把一个压缩包存到你的下载文件夹,里面有 workflow.json 和 Mindket 写的设置说明。先建好表格。
| 需要 | 说明 |
|---|---|
| n8n | n8n Cloud 或你自己的服务器 |
| OpenRouter | 一个有余额的 API 密钥,两个聊天模型都用它 |
| JSON2Video | 一个账号和它的 API 密钥。免费版渲染的视频带水印 |
| YouTube | 一个频道,用于 YouTube OAuth2 凭据 |
| 一个账号,用于 Google Sheets OAuth2 凭据 | |
| ElevenLabs | 一个存进 JSON2Video Connections 的密钥,或者改用 JSON2Video 自己的配音密钥 |
| 一张表格 | 第一个标签页名为 Sheet1,第 1 行有四个表头 |
| 列 | 写什么 |
|---|---|
Subject | 一个不超过四个词的题目 |
Creation Status | 视频渲染好之前是 To Do,之后是 Created |
Posting Status | 上传之前是 To Do,之后是 Unlisted |
Video URL | 渲染出的文件地址,或者 Error |
workflow.json。/d/ 和 /edit 之间那一长串。YOUR_SHEET_ID 换成表格的 ID。4o-mini 和 4o 里选中它。x-api-key,值填你的 JSON2Video 密钥,在 Generate Video 和 Get Video 里选中它。my-elevenlabs-connection 保存你的 ElevenLabs 密钥。也可以把 Generate Video 里的 voice.ConnectionID 改成 none,改用 JSON2Video 自己的密钥。YouTube 里选中它。To Do,然后从手动触发器运行工作流。这一行变成 Created 和 Unlisted 之后,再点 Publish。JSON2Video 从名为 x-api-key 的请求头读取密钥。它不认识的连接 ID 会让渲染失败,所以就算你自己从不用 ElevenLabs,第 6 步也不能跳过。
发布之后,两个定时每天早上运行。你也可以自己往表格里写题目。每天第一个 To Do 题目会做成视频。渲染要几分钟,运行会一直询问 JSON2Video,直到文件做好。在 YouTube Studio 里看过不公开的视频,再自己设为公开。想跳过某个题目,就在早上运行之前改掉它的 Creation Status。
| 要改的 | 在哪里改 |
|---|---|
| 题目 | AI Agent 的系统消息,以及 Structured Output Parser 里的示例列表 |
| 脚本的语气和长度 | Intro & Outro 和 Ranker 的系统消息 |
| 模型 | 4o 管脚本,4o-mini 管创意 |
| 配音和画面 | Generate Video 请求体里的 voiceID、voiceModel 和 imageModel |
| 上传 | YouTube 里的标题、描述、分类和公开范围 |
| 时间 | 每个定时触发器,文件里是上午十点 |
创意分支已经往表格里写了一个题目。
| 列 | 值 |
|---|---|
| Subject | Board games |
| Creation Status | To Do |
| Posting Status | To Do |
Ranker 按这个格式返回十个条目,其中一个是这样:
{
"voiceoverText": "At number six, it’s Ticket to Ride. Routes, trains and a race for the longest line make it easy to teach.",
"imagePrompt": "Colored train cars spread across a map of North America on a wooden table.",
"lowerThirdText": "Ticket to Ride"
}渲染完成后,YouTube 上多了一条不公开的视频,标题是 Top Ten: Board games,这一行变成:
| 列 | 值 |
|---|---|
| Subject | Board games |
| Creation Status | Created |
| Posting Status | Unlisted |
| Video URL | 这个文件在 JSON2Video 上的地址,七天内有效 |
新手:n8n 把工作流画成用线连起来的方框,每个方框是一个节点,只做一件事。这个工作流有两个互不相连的分支。一个往表格里填创意,另一个把一个创意做成视频。凭据是 n8n 替你保管的密钥,你在哪个节点里选中它,它就交给哪个节点。第一次先手动写一个题目,再运行手动触发器。每个节点都会显示它收到和发出的内容,密钥被拒或者找不到模板,都能在那里看出来。
专家:三次模型调用写出脚本,剪辑全部由 JSON2Video 在模板里完成。
| 步骤 | 模型或调用 | 要知道的 |
|---|---|---|
AI Agent | 4o-mini,没有设置模型,所以用 n8n 的默认值 openai/gpt-4.1-mini | 它的解析器要 topTenSubjects,一个有十个字符串的数组 |
Intro & Outro | OpenRouter 上的 openai/gpt-4o | 返回两段口播和两句画面提示词 |
Ranker | OpenRouter 上的 openai/gpt-4o | 它的解析器要一个有十个对象的数组,按 output[0] 到 output[9] 读取 |
Generate Video | JSON2Video 的 v2/movies,用的是请求体里写明的模板 | 把按 ElevenLabs ID 选定的 elevenlabs 声音和 flux-pro 图片作为模板变量发送 |
Switch | 针对 movie.status 的四条规则 | 没有 pending 的规则,所以排队中的渲染会让运行结束 |
脚本里的内容都没有转义。
先检查两件事。轮询规则漏掉了 JSON2Video 的一个状态,两个聊天模型也都有几个月内的停用日期。
gpt-6-luna,在 OpenRouter 上叫 openai/gpt-6-luna。OpenRouter 现在仍列着这两个旧模型。在那之前改掉 4o 的模型,并给 4o-mini 设一个模型Switch 检查的是 preparing,JSON2Video 的状态里没有这个值,而 pending 没有对应的规则。把那个值改成 pending,否则两分半钟后仍在排队的渲染会让运行无声结束Generate Video 的请求体就会出错。用 JSON.stringify() 包住每个值就能解决Error 让题目留在 To Do,所以第二天它又排在第一个running 的渲染会被一直询问下去。JSON2Video 建议,运行超过一刻钟的渲染按失败处理flux-pro 图片要另加额度,而一条视频要十二张图一个把 Google Sheets 里的题目队列变成每天一条十大排行倒数视频的 n8n 工作流。OpenRouter 上的模型往队列里填创意,再为下一个题目写出开场、结尾和十个排名条目。JSON2Video 用模板渲染视频,每个场景都有 AI 配音和一张图,YouTube 收到一条不公开的上传。没有任何视频会自己变成公开。
workflow.json:n8n 导出的工作流,31 个节点,其中六个便签只标出各个阶段。里面没有任何凭据。README.md:这份设置说明,压缩包里的是英文版。Google Sheets、Add to Sheet、Created Video、Error 和 Update Sheet 改为要 YOUR_SHEET_ID,并按名称 Sheet1 找标签页。workflow.json。Sheet1,第 1 行写下面四个表头。复制它的 ID:地址里 /d/ 和 /edit 之间那一长串。YOUR_SHEET_ID 换成表格的 ID。4o-mini 和 4o 里选中它。x-api-key,值填你的 JSON2Video 密钥,在 Generate Video 和 Get Video 里选中它。Generate Video 把 voice.ConnectionID 发成 my-elevenlabs-connection。在 JSON2Video 里打开 Dashboard,再打开 Connections,用一模一样的 ID 保存你的 ElevenLabs 密钥。也可以把这个值改成 none,JSON2Video 就用它自己的密钥配音。YouTube 里选中它。To Do,然后从 When clicking ‘Test workflow’ 运行工作流。这一行变成 Created 和 Unlisted 之后,再点 Publish。Sheet1 的第 1 行写这四个表头,拼法和这里一样:
| 列 | 写什么 |
|---|---|
| Subject | 一个不超过四个词的题目,比如 Board games |
| Creation Status | 视频渲染好之前是 To Do,之后是 Created |
| Posting Status | 上传之前是 To Do,之后是 Unlisted |
| Video URL | 渲染出的文件在 JSON2Video 上的地址,或者 Error |
两个定时每天 10:00 触发。
Schedule Trigger1 启动创意分支。AI Agent 请 4o-mini 想出十个不依赖新闻的题目。Split Out 和 Loop Over Items 把每个题目追加成一行,两个状态都是 To Do。Schedule Trigger 或手动触发器启动视频分支。Google Sheets 读出第一个 Creation Status 为 To Do 的行。没有这样的行,运行就到此结束。Intro & Outro 请 4o(运行的是 openai/gpt-4o)写出口播的开场和结尾,各配一句画面提示词。Ranker 请同一个模型写出十个条目,从第 10 名倒数到第 1 名。每条有两三句口播、一句画面提示词和一个显示在屏幕上的短标签。Generate Video 把这些内容作为请求体里写明的那个模板的变量发给 JSON2Video 的 v2/movies,配音用 ElevenLabs,图片用 flux-pro。150 Secs 等两分半钟。Get Video 查询项目状态,Switch 按状态分流。状态是 running 或 preparing 时,10 Secs 等一会儿再查。done 时,Created Video 把这一行标为 Created,写入文件地址。Download Video 下载文件,YouTube 以不公开方式上传,标题是 Top Ten: 加题目。Update Sheet 把 Posting Status 设为 Unlisted。error 时,Error 在 Video URL 里写入 Error,运行停止。AI Agent 的系统消息,以及 Structured Output Parser 里的示例列表。Intro & Outro 和 Ranker 的系统消息。4o 设的是 openai/gpt-4o。4o-mini 没有设置,见注意事项。Generate Video 请求体里的 voiceID、voiceModel 和 imageModel。YouTube 里的标题、描述、分类、地区和公开范围。分类 1 是 Film & Animation。gpt-6-luna。OpenRouter 上它叫 openai/gpt-6-luna,两个旧模型目前也还列着。在那之前改掉 4o 的模型,并给 4o-mini 设一个模型。4o-mini 没有指定模型,所以 n8n 用这个节点的默认值。在当前版本的 n8n 里,那是 openai/gpt-4.1-mini,和节点名字说的不一样。pending,而 Switch 没有对应的规则。它的第四条规则检查的是 preparing,JSON2Video 的状态列表里没有这个值。把那个值改成 pending,排队中的渲染就会和运行中的一样被轮询。按原样,运行会无声停止,这个题目第二天再来一次。Generate Video 的 JSON 里,两边是双引号,什么都没有转义。模型写出的句子只要带一个双引号,请求体就无效,调用会失败。用 JSON.stringify() 包住每个值并去掉外面的引号,就能避免。Error 让 Creation Status 留在 To Do,所以第二天同一个题目又排在第一个。想跳过它,就手动改掉它的状态。Schedule Trigger1 改成每周一次,或者等表格里题目够多时关掉它。running 的渲染会每十秒被询问一次,直到状态改变。JSON2Video 建议,运行超过 15 分钟的渲染按失败处理。Video URL 里的地址到时就会失效。YouTube 链接从不写进表格。template。my-elevenlabs-connection 保存密钥,或者发送 none。flux-pro 图片要 20 个额度,flux-schnell 不要额度,而一条视频要十二张图。让定时每天运行之前,先在 JSON2Video 后台看一下现在的价格。README.md 8 KB workflow.json 38 KB
Sokheng · 工具包
这个模型从文档、收据和路牌照片里读取高棉语和英语文字,用一个检测器找文本行,再用识别器读每一行。适合需要在 Python 里做高棉语 OCR 的开发者。
Qwen · 工具包
Qwen2.5-7B-Instruct 的 GGUF 文件,提供八种量化大小,可通过 llama.cpp 在本地聊天。适合想在自己电脑上用 7.6B 强力模型、又不想搭 Python 环境的人。
ACE-Step · 工具包
用 4B 扩散解码器根据文字生成音乐,50 步并带引导控制,音频质量高于基础版。适合拥有 12 GB 或更多显存 GPU 的创作者。
alchaincyf · 技能
把你在 AI 智能体里写的一句话需求,变成一份完成的设计:发布动画、可点击的应用原型、可编辑的幻灯片、信息图,或一组小红书图片。可在多种智能体中使用。
nerijs · 工具包
一个用于 Stable Diffusion XL 的像素画风格附加模型,把文字提示词变成像素风图片,并可搭配 LCM LoRA 加快运行。适合游戏开发者、设计师和爱好者。
LiconStudio · 工具包
给模型最多五张参考图,让生成视频中的人物、服装、物体和背景保持一致。这是用于 ComfyUI 中 LTX-2.5 的 LoRA,还可以为两位说话者添加音频参考。