8
n8n 中文网amn8n.com

使用 GPT-4o 和 Veo3 AI 视频生成器生成圣经角色视频博客

高级

这是一个自动化工作流,包含 16 个节点。主要使用 Wait, HttpRequest, GoogleSheets, Agent, ScheduleTrigger 等节点。 使用 GPT-4o 和 Veo3 AI 视频生成器生成圣经角色视频博客

前置要求
  • 可能需要目标 API 的认证凭证
  • Google Sheets API 凭证
  • OpenAI API Key

分类

-
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "meta": {
    "instanceId": "44b6b0581231cf0648945e97c4b15adf52102210c0661bec54342c7dc57a02c3",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "cbbea0db-2557-48ef-a9ab-04a86a4437fa",
      "name": "定时触发器",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -1312,
        -128
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "f4047448-a0e8-49e3-85e3-44729e2cf94b",
      "name": "便签说明3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -32,
        -256
      ],
      "parameters": {
        "color": 3,
        "width": 540,
        "height": 520,
        "content": "## 保存内容"
      },
      "typeVersion": 1
    },
    {
      "id": "e4a99226-f6dc-411e-86bb-681707d482c6",
      "name": "便签说明2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -384,
        -400
      ],
      "parameters": {
        "color": 6,
        "width": 320,
        "height": 740,
        "content": "## 创建视频"
      },
      "typeVersion": 1
    },
    {
      "id": "36b4b4b9-9226-4f38-bec6-e6b5d6d73a51",
      "name": "便签说明",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1360,
        -256
      ],
      "parameters": {
        "color": 5,
        "width": 840,
        "height": 520,
        "content": "# 输入:视频主题"
      },
      "typeVersion": 1
    },
    {
      "id": "36337833-92cb-45ed-ac80-8ffd96b3c8a9",
      "name": "OpenAI 聊天模型1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -1232,
        80
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "c8412fba-deac-4e6c-9f22-176ead2a956e",
      "name": "思考1",
      "type": "@n8n/n8n-nodes-langchain.toolThink",
      "position": [
        -1104,
        80
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "14a1ad4e-9fcb-443a-8627-b4802d1c994e",
      "name": "结构化输出解析器1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -992,
        80
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"caption\": \"\",\n  \"idea\": \"\",\n  \"environment\": \"\",\n  \"status\": \"\"\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "41cc4339-6112-4939-a2df-a246d80f234c",
      "name": "OpenAI 聊天模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -832,
        80
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "b5759496-3eaf-4d02-ab7c-82cf41361162",
      "name": "思考",
      "type": "@n8n/n8n-nodes-langchain.toolThink",
      "position": [
        -672,
        80
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "9d2f5cb6-9db8-4eca-bde0-e883e0fa4cd4",
      "name": "生成视频创意",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -1152,
        -128
      ],
      "parameters": {
        "text": "Give me an idea to create the content about biblical characters speaking to thecamera and making a vlog",
        "options": {
          "systemMessage": "=** Purpose **\nYou generate viral short-form video ideas inspired by biblical characters or scenes, styled like modern TikTok vlogs. These should feel personal, emotional, and often humorous.\n\n** Think Tool Prompt (used before generation) **\n“How can I take a biblical moment or character and turn it into a relatable, viral, or funny TikTok-style video idea that feels natural, emotional, or modern?”\n\n** Output Requirements **\nYour response must include:\n\n- caption – Short, poetic or funny, TikTok-style. Include emojis and 3–5 hashtags (e.g., #biblevlog #foryou #holycomedy #ancientvibes).\n- idea – 1–2 sentence summary of the action, story, or twist in the video.\n- environment – Describe what the set looks like: light, textures, mood, setting. Think “GoPro meets ancient Jerusalem.”\n- status – Must be \"to create\", without quotation marks\n\n** JSON Output Parser **\nEvery output must strictly follow this format:\n\n{\n  \"caption\": \"\",\n  \"idea\": \"\",\n  \"environment\": \"\",\n  \"status\": \"\"\n}\n\n** Sample Outputs **\n\nExample 1\n{\n  \"caption\": \"When Jesus gives you the silent treatment 🕊️😶 #jesusvlog #holycomedy\",\n  \"idea\": \"Jesus calmly stares at the camera while the disciple keeps asking, 'Are we lost?' – awkward silence builds up.\",\n  \"environment\": \"Desert trail, golden hour light, dry bushes around, warm rocky textures and wind softly blowing.\",\n  \"status\": \"ready for production\"\n}\n\nExample 2\n{\n  \"caption\": \"POV: You just met Mary Magdalene and she’s not what you expected 😳✨ #biblevlog #foryou\",\n  \"idea\": \"A modern-style introduction of Mary Magdalene where she breaks the fourth wall with sarcasm and confidence.\",\n  \"environment\": \"Dusty stone home with narrow light beams, clay walls, fabric drapes blowing slightly in the breeze.\",\n  \"status\": \"ready for production\"\n}\n\nExample 3\n{\n  \"caption\": \"Me trying to explain the flood before it happened 🌧️🐘 #noahvibes #bibletok\",\n  \"idea\": \"Noah explains why he’s building the ark, while others laugh in the background — like a vlog rant.\",\n  \"environment\": \"Half-built wooden structure, cloudy sky, goats wandering around, mud everywhere, distant laughter.\",\n  \"status\": \"concept only\"\n}"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.9
    },
    {
      "id": "8a94a444-28d0-42ac-8cb6-3040fb8769cc",
      "name": "生成 Veo3 提示",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -832,
        -128
      ],
      "parameters": {
        "text": "=Create a prompt for the Veo3 video based on the following information:\n\nIdea: {{ $json.output.idea }}\nEnvironment: {{ $json.output.environment }}",
        "options": {
          "systemMessage": "=** System Message **\n\nYou are a professional cinematic prompt generator for AI video tools. Your task is to convert a short-form video idea and its environment description (inspired by biblical or ancient-world themes) into a highly detailed, camera-aware, emotionally rich prompt suitable for generating a cinematic AI video using Veo3.\n\nYou must understand the emotional tone, visual aesthetics, and storytelling style of short-form TikTok videos that imitate biblical scenes with modern pacing and framing.\n\n** Veo3 Prompt Structure Guidelines **\n\nEach prompt should be natural, cinematic, and visually immersive, including:\n\n- Scene description – Describe the overall environment clearly (terrain, buildings, light, movement).\n- Character focus – If the idea involves a person, include their position, outfit style (biblical era), mood/expression, and framing (e.g., close-up, wide shot).\n- Camera movement – Always include one cinematic camera motion (e.g., slow push-in, handheld tracking, drone pan, orbit, dolly backward).\n- Time of day & lighting – Set the mood with light (e.g., golden hour, harsh daylight, candlelit interior).\n- Atmosphere & texture – Mention dust, wind, fabric movement, shadows, reflections, or imperfections in the scene to increase realism.\n- Style & quality – Include cinematic tone, analog warmth, slightly soft vintage film look, GoPro-like closeness if appropriate.\n\n** Input **\n- You will receive two fields: idea, environment\n- Return only the complete and detailed Veo3 prompt, no additional text.\n\n** Example Output **\nA biblical man stands in front of a half-built wooden ark, gesturing passionately as he explains something to the camera. The camera follows him handheld-style, moving slightly as he paces. In the background, groups of villagers are laughing and pointing. The sky is overcast with low clouds, and goats wander through muddy terrain. The man wears worn, ancient robes, his feet muddy, his tone frustrated but hopeful. The scene has a documentary-style realism, with soft golden highlights breaking through cloud gaps. Light wind moves fabric and rustles dry straw around the ark. Shot in cinematic 24fps with natural tones and slight vintage softness."
        },
        "promptType": "define"
      },
      "typeVersion": 1.9
    },
    {
      "id": "8e5c1d35-3664-4630-994c-0df329ab0341",
      "name": "创建视频",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -288,
        -320
      ],
      "parameters": {
        "url": "https://queue.fal.run/fal-ai/veo3",
        "body": "={ \"prompt\": \"{{ $('Generate Veo3 Prompt').item.json.output }}\" }",
        "method": "POST",
        "options": {
          "batching": {
            "batch": {
              "batchSize": 1,
              "batchInterval": 2000
            }
          }
        },
        "sendBody": true,
        "contentType": "raw",
        "authentication": "genericCredentialType",
        "rawContentType": "application/json",
        "genericAuthType": "httpHeaderAuth"
      },
      "typeVersion": 4.2
    },
    {
      "id": "c3080d20-1952-4456-a175-4df985dad72e",
      "name": "获取视频",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -288,
        80
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/veo3/requests/{{ $json.request_id }}\n",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "typeVersion": 4.2
    },
    {
      "id": "525a1ba7-d51e-4c1d-bd78-416b3c545339",
      "name": "等待 10 分钟",
      "type": "n8n-nodes-base.wait",
      "position": [
        -288,
        -128
      ],
      "webhookId": "9fdae74d-0f36-4408-9c09-5fb55e66fed1",
      "parameters": {
        "amount": 10
      },
      "typeVersion": 1.1
    },
    {
      "id": "eba3a1ef-cf20-4a49-b7e0-94222d83d331",
      "name": "存储视频",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        208,
        -80
      ],
      "parameters": {
        "columns": {
          "value": {
            "Video URL": "={{ $json.video.url }}"
          },
          "schema": [
            {
              "id": "Idea",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Idea",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Captions",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Captions",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Environment",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Environment",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Video URL",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Video URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1JsQWTq-ozkDD4VRaUEe34IzVFhig4HlWPIh0ZelyQ2E/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1JsQWTq-ozkDD4VRaUEe34IzVFhig4HlWPIh0ZelyQ2E",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1JsQWTq-ozkDD4VRaUEe34IzVFhig4HlWPIh0ZelyQ2E/edit?usp=drivesdk",
          "cachedResultName": "Veo3 Videos"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "b807cf27-6520-4e72-8136-2919e3adeb94",
      "name": "保存内容信息",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -512,
        -128
      ],
      "parameters": {
        "columns": {
          "value": {
            "Idea": "={{ $('Generate Video Idea').first().json.output.idea }}",
            "Status": "={{ $('Generate Video Idea').first().json.output.status }}",
            "Captions": "={{ $('Generate Video Idea').first().json.output.caption }}",
            "Environment": "={{ $('Generate Video Idea').first().json.output.environment }}"
          },
          "schema": [
            {
              "id": "Idea",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Idea",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Captions",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Captions",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Environment",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Environment",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Video URL",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Video URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1JsQWTq-ozkDD4VRaUEe34IzVFhig4HlWPIh0ZelyQ2E/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1JsQWTq-ozkDD4VRaUEe34IzVFhig4HlWPIh0ZelyQ2E",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1JsQWTq-ozkDD4VRaUEe34IzVFhig4HlWPIh0ZelyQ2E/edit?usp=drivesdk",
          "cachedResultName": "Veo3 Videos"
        }
      },
      "typeVersion": 4.5
    }
  ],
  "pinData": {
    "Get Video": [
      {
        "video": {
          "url": "https://v3.fal.media/files/panda/7s5NhlkFCz7rHszxLvfyB_output.mp4",
          "file_name": "output.mp4",
          "file_size": 3899896,
          "content_type": "video/mp4"
        }
      }
    ],
    "Create Video": [
      {
        "logs": null,
        "status": "IN_QUEUE",
        "metrics": {},
        "cancel_url": "https://queue.fal.run/fal-ai/veo3/requests/2ba961db-0c1c-4bd3-954c-905b905c1dcb/cancel",
        "request_id": "2ba961db-0c1c-4bd3-954c-905b905c1dcb",
        "status_url": "https://queue.fal.run/fal-ai/veo3/requests/2ba961db-0c1c-4bd3-954c-905b905c1dcb/status",
        "response_url": "https://queue.fal.run/fal-ai/veo3/requests/2ba961db-0c1c-4bd3-954c-905b905c1dcb",
        "queue_position": 0
      }
    ],
    "Generate Video Idea": [
      {
        "output": {
          "idea": "Moses updates his followers on his journey, only to panic when he discovers the tablets are missing again — comedic storytelling ensues.",
          "status": "to create",
          "caption": "When Moses realizes he’s lost the commandments again 📜🙄 #mosesvlog #holycomedy",
          "environment": "Mountainous backdrop with rugged rocks and a bright blue sky, warm sunlight casting shadows; Moses looks bewildered yet determined."
        }
      }
    ],
    "Generate Veo3 Prompt": [
      {
        "output": "In a stunning mountainous landscape, Moses stands atop a rocky outcrop, his expression a mix of bewilderment and determination as he addresses a diverse group of followers below. Dressed in ancient, flowing robes, his long hair blows slightly in the warm sunlight, which casts playful shadows on the rugged terrain. The vibrant blue sky stretches endlessly above, adding to the scene's dramatic feel. As he animatedly updates his followers, his tone oscillates between inspirational and comedic tension, suddenly shifting to panic as he realizes the tablets are missing again. The camera utilizes a slow push-in, capturing his increasing distress and the worried glances of the crowd. Dust kicks up gently around them, illuminated by the warm sunlight, enhancing the scene's comedic chaos. The atmosphere is lively and rich, with a vintage soft film quality evoking a sense of timeless storytelling."
      }
    ]
  },
  "connections": {
    "Think": {
      "ai_tool": [
        [
          {
            "node": "Generate Veo3 Prompt",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Think1": {
      "ai_tool": [
        [
          {
            "node": "Generate Video Idea",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get Video": {
      "main": [
        [
          {
            "node": "Store the Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Video": {
      "main": [
        [
          {
            "node": "Wait 10 Minutes",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 10 Minutes": {
      "main": [
        [
          {
            "node": "Get Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Generate Video Idea",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Generate Veo3 Prompt",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "Generate Video Idea",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Generate Video Idea": {
      "main": [
        [
          {
            "node": "Generate Veo3 Prompt",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Veo3 Prompt": {
      "main": [
        [
          {
            "node": "Save Content Information",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save Content Information": {
      "main": [
        [
          {
            "node": "Create Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser1": {
      "ai_outputParser": [
        [
          {
            "node": "Generate Video Idea",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

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

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

高级

需要付费吗?

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

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

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

作者

AI Automation Consultant & Founder @ Brezix Studio, helping service businesses streamline operations with custom AI assistants, CRMs, and workflow automation. Skilled in MERN, Next.js, and Python, I design solutions that save time and boost efficiency. Open to collaborations and automation projects that drive growth.

外部链接
在 n8n.io 查看

分享此工作流