8
n8n 中文网amn8n.com

测验短视频生成器

高级

这是一个Other, AI, Marketing领域的自动化工作流,包含 32 个节点。主要使用 If, Code, Wait, Gmail, Merge 等节点,结合人工智能技术实现智能自动化。 使用Sonnet 3.5、Pinecone和Creatomate生成谜语短视频并发布到YouTube

前置要求
  • Google 账号和 Gmail API 凭证
  • 可能需要目标 API 的认证凭证
  • Google Sheets API 凭证
  • Anthropic API Key
  • OpenAI API Key
  • Pinecone API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "35SXmvC53Lb0eJDt",
  "meta": {
    "instanceId": "b3c467df4053d13fe31cc98f3c66fa1d16300ba750506bfd019a0913cec71ea3",
    "templateCredsSetupCompleted": true
  },
  "name": "测验短视频生成器副本",
  "tags": [],
  "nodes": [
    {
      "id": "8a9a9a67-9f49-4b45-b0e3-e3a6ab4e08e6",
      "name": "计划触发器",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -300,
        -760
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "913b9093-7811-4118-8f6d-11ab9c2cacf5",
      "name": "Anthropic 聊天模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        -160,
        -580
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "ead88caa-7cca-4f35-a130-3c8ac7c79a2f",
      "name": "OpenAI 嵌入",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        20,
        -240
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "f5c9f6d6-3f16-4d23-9d12-b4be3bfbccf6",
      "name": "默认数据加载器",
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "position": [
        800,
        -900
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "27c0589d-a85d-463a-960c-a562fdd021a2",
      "name": "递归字符文本分割器",
      "type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
      "position": [
        800,
        -680
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "b328ffee-9ccd-4d15-8229-91bdbb159cc1",
      "name": "Embeddings OpenAI1",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        640,
        -920
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "07f9280c-54d7-473d-a2f3-293ca1af41d0",
      "name": "合并",
      "type": "n8n-nodes-base.merge",
      "position": [
        1580,
        -680
      ],
      "parameters": {},
      "typeVersion": 3.1
    },
    {
      "id": "582e8cb0-17cb-4141-8e25-062bac70f385",
      "name": "等待",
      "type": "n8n-nodes-base.wait",
      "position": [
        1940,
        -680
      ],
      "webhookId": "02a83906-d093-41e6-9b90-e565bb8c1e3b",
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "3b1df4bc-72eb-4452-ab1c-bac9daecb932",
      "name": "结构化输出解析器",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        160,
        -580
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "530101d9-6b00-4c6a-8062-7a64960ba6a8",
      "name": "如果",
      "type": "n8n-nodes-base.if",
      "position": [
        2300,
        -440
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "d575df6d-0bad-43af-a9bb-d33c841d9878",
      "name": "谜语生成 AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -80,
        -760
      ],
      "parameters": {},
      "typeVersion": 1.9
    },
    {
      "id": "b7017156-c5fb-4d4d-a951-511b5942471e",
      "name": "向量存储查找历史谜语",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "position": [
        -80,
        -400
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "31865d0d-0b08-42dc-814c-cfb43562aca6",
      "name": "从表格获取音频(确保轮换)",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        600,
        -460
      ],
      "parameters": {},
      "executeOnce": true,
      "typeVersion": 4.5
    },
    {
      "id": "a63baebb-7658-4b31-a8c1-698b5099b4f3",
      "name": "将谜语插入向量存储",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "position": [
        620,
        -1100
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "a857ddb7-8e55-48ad-be99-6f68f385ba95",
      "name": "将谜语 JSON 转换为单个文本项用于向量插入",
      "type": "n8n-nodes-base.code",
      "position": [
        460,
        -1100
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "ae014584-3e1f-425b-937d-6b1491680c95",
      "name": "获取当前短视频标题(带编号)",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        960,
        -1100
      ],
      "parameters": {},
      "typeVersion": 4.5
    },
    {
      "id": "f04ffdab-5309-46d1-b4db-5e5aab68f04a",
      "name": "计算下一个短视频标题编号(最后更新)",
      "type": "n8n-nodes-base.code",
      "position": [
        1160,
        -1100
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "46d5e44c-ca87-40a3-a3c3-2f23587a5034",
      "name": "渲染 YouTube Short",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1760,
        -680
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "dc9e9174-becc-4d24-abb4-48d8c1a9d254",
      "name": "YouTube 上传 HTTP 请求设置",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2120,
        -680
      ],
      "parameters": {},
      "typeVersion": 4.1
    },
    {
      "id": "4a5a3e7e-5323-4be4-bea8-13267d9cc879",
      "name": "获取渲染短视频的二进制文件",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2300,
        -680
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "8a561692-413f-4bff-9a87-da8fe5e8e961",
      "name": "通过 HTTP 上传二进制文件到 YouTube",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2480,
        -680
      ],
      "parameters": {},
      "typeVersion": 4.1
    },
    {
      "id": "b3c52e07-0f65-4a46-8e72-f391ae9a9b3d",
      "name": "发送含 YouTube 链接的通知",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1580,
        -440
      ],
      "webhookId": "6517cd12-3cf1-46c3-b56f-4a14d63f3757",
      "parameters": {},
      "typeVersion": 2.1
    },
    {
      "id": "70aef838-2a53-4ec6-8dc0-c4987b3fce27",
      "name": "更新音频使用状态",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1760,
        -440
      ],
      "parameters": {},
      "typeVersion": 4.5
    },
    {
      "id": "215c4ca7-5292-4761-9876-2238d2dcec7a",
      "name": "更新下一个短视频标题",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1940,
        -440
      ],
      "parameters": {},
      "typeVersion": 4.5
    },
    {
      "id": "7e8bf144-7669-4d5d-aaaa-b8e7dd3a71cf",
      "name": "检查所有音轨是否已使用",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2120,
        -440
      ],
      "parameters": {},
      "typeVersion": 4.5,
      "alwaysOutputData": true
    },
    {
      "id": "e20e90a6-7125-4c14-95cf-807424cbd9c1",
      "name": "获取所有音轨行",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2560,
        -340
      ],
      "parameters": {},
      "typeVersion": 4.5
    },
    {
      "id": "1fde9116-b24f-4307-81b0-4faf54052e02",
      "name": "将所有音轨行重置为未使用状态",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2760,
        -340
      ],
      "parameters": {},
      "typeVersion": 4.5
    },
    {
      "id": "bfe2c945-abcc-48f4-bad9-d93c0ff71bf5",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1520,
        -480
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "480cb231-26c1-4b65-9a02-666961a985fc",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1520,
        -720
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "d6173a8e-7b78-4b05-96a4-b833a5dd1d8a",
      "name": "便签2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        460,
        -1320
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "31093814-6058-48fe-bff9-2dfa03ccf76d",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        940,
        -1320
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "e16200b1-bdfd-4395-944a-078de86bebe1",
      "name": "便签4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -80,
        -1040
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "081eec97-96f2-47a3-8f20-c6f0ccf1b114",
  "connections": {
    "If": {
      "main": [
        [],
        [
          {
            "node": "get all track rows",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait": {
      "main": [
        [
          {
            "node": "Youtube Upload HTTP request Setup",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Render Youtube Short",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Riddle generation AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI": {
      "ai_embedding": [
        [
          {
            "node": "Vector Store to Find Previous Riddles",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI1": {
      "ai_embedding": [
        [
          {
            "node": "Insert Riddles to Vector Store",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "get all track rows": {
      "main": [
        [
          {
            "node": "update all track rows back to unused",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Default Data Loader": {
      "ai_document": [
        [
          {
            "node": "Insert Riddles to Vector Store",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "Anthropic Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Riddle generation AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Render Youtube Short": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Riddle generation AI Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Update Audio Used Status": {
      "main": [
        [
          {
            "node": "Update Next Shorts title",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Next Shorts title": {
      "main": [
        [
          {
            "node": "Check if all audio tracks have been used",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Riddle generation AI Agent": {
      "main": [
        [
          {
            "node": "Fetch Audio From Sheet (Ensuring Rotation)",
            "type": "main",
            "index": 0
          },
          {
            "node": "Convert Riddles JSON to 1 Text item for Vector Insertion",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Binary for Rendered Short": {
      "main": [
        [
          {
            "node": "Upload Binary to Youtube HTTP",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload Binary to Youtube HTTP": {
      "main": [
        [
          {
            "node": "Send Notification with YouTube link",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Insert Riddles to Vector Store": {
      "main": [
        [
          {
            "node": "Fetch Current Shorts Title (Numbered)",
            "type": "main",
            "index": 0
          }
        ]
      ],
      "ai_tool": [
        []
      ]
    },
    "Recursive Character Text Splitter": {
      "ai_textSplitter": [
        [
          {
            "node": "Default Data Loader",
            "type": "ai_textSplitter",
            "index": 0
          }
        ]
      ]
    },
    "Youtube Upload HTTP request Setup": {
      "main": [
        [
          {
            "node": "Get Binary for Rendered Short",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Notification with YouTube link": {
      "main": [
        [
          {
            "node": "Update Audio Used Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Current Shorts Title (Numbered)": {
      "main": [
        [
          {
            "node": "Calculate Next Shorts Title Number (To update at the end)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Vector Store to Find Previous Riddles": {
      "ai_tool": [
        [
          {
            "node": "Riddle generation AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Check if all audio tracks have been used": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Audio From Sheet (Ensuring Rotation)": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Convert Riddles JSON to 1 Text item for Vector Insertion": {
      "main": [
        [
          {
            "node": "Insert Riddles to Vector Store",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Calculate Next Shorts Title Number (To update at the end)": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

高级 - 其他, 人工智能, 营销

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量32
分类3
节点类型16
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
Joseph

Joseph

@mjomba

Automation expert specializing in building smart, scalable workflows using tools like n8n, Make, and Airtable. I help businesses save time, reduce manual work, and grow faster with tailored automation solutions. Feel free to reach out at joseph@uppfy.com to discuss your project.

外部链接
在 n8n.io 查看

分享此工作流