{
  "name": "Generate and publish AI short videos using Gemini, Sora-2, Apify, and Google Sheets",
  "nodes": [
    {
      "id": "63d35be6-2430-424b-bd7a-2be8cb0e0ac4",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        416,
        -2704
      ]
    },
    {
      "id": "b32082ee-2e38-4299-b510-83089ba92839",
      "name": "Think",
      "type": "@n8n/n8n-nodes-langchain.toolThink",
      "position": [
        848,
        -2704
      ]
    },
    {
      "id": "738adec7-07cf-4f03-945e-ee531f6e2eea",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        544,
        -2752
      ]
    },
    {
      "id": "96e94b4e-2906-4e15-bcd0-82acabf46e41",
      "name": "Create post",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        -192,
        -1792
      ]
    },
    {
      "id": "8c3284a8-3ec8-469a-86f3-389cc14b3298",
      "name": "Switch",
      "type": "n8n-nodes-base.switch",
      "position": [
        688,
        -2176
      ]
    },
    {
      "id": "7524d163-0a3e-43f0-89a6-cc282a2fd15a",
      "name": "Analyze video",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        128,
        -2496
      ]
    },
    {
      "id": "d316f70b-28aa-44fb-80b1-13e3849592e0",
      "name": "Run an Actor and get dataset",
      "type": "@apify/n8n-nodes-apify.apify",
      "position": [
        80,
        -3104
      ]
    },
    {
      "id": "dbefe336-55fc-4728-89ab-b1ec34ac52bc",
      "name": "Viral Content",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        592,
        -3104
      ]
    },
    {
      "id": "7eff39dc-b174-4882-91e4-4bf51187ad2b",
      "name": "Get ViralContent",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -96,
        -2496
      ]
    },
    {
      "id": "378ecb1e-4964-402c-9b16-835a4dfc78b7",
      "name": "Update row Viral Content",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        16,
        -1792
      ]
    },
    {
      "id": "a6c17533-59f7-4503-a6f4-5786f6da4598",
      "name": "Get Video",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        448,
        -2160
      ]
    },
    {
      "id": "ca8b9fa0-f7bd-4cc5-9fce-ee809d8e1103",
      "name": "Create Video",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -32,
        -2160
      ]
    },
    {
      "id": "459565b4-8e65-4ccf-ab34-13222f753a0e",
      "name": "Scheduled content execution",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -160,
        -3104
      ]
    },
    {
      "id": "72ea7ad2-de61-4dae-8a9c-08466e2b2c9f",
      "name": "Analyze idea and generate video metadata",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        512,
        -2496
      ]
    },
    {
      "id": "336fa5bf-81e7-4576-a39b-1b7c2e70aef6",
      "name": "Wait for video rendering",
      "type": "n8n-nodes-base.wait",
      "position": [
        192,
        -2160
      ]
    },
    {
      "id": "2ac2a11f-931a-487f-b1de-0a4c5e0c41ae",
      "name": "Normalize scraped content data",
      "type": "n8n-nodes-base.set",
      "position": [
        352,
        -3104
      ]
    },
    {
      "id": "c6944486-c9b3-41c8-ae9f-0e0c69c911a3",
      "name": "Format AI output for video generation",
      "type": "n8n-nodes-base.set",
      "position": [
        912,
        -2496
      ]
    },
    {
      "id": "f7e0cc6b-2f5b-4c30-9f75-3b1ef03cb1a5",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -352,
        -3280
      ],
      "parameters": {
        "width": 832,
        "height": 416,
        "content": "## Content discovery\nCollect viral content ideas from external sources.\nnts/sticky-notes/)"
      }
    },
    {
      "id": "afecfcc8-5182-4b03-a0c6-55a18e746765",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        480,
        -3280
      ],
      "parameters": {
        "width": 656,
        "height": 416,
        "content": "## Data storage\nStore viral content ideas in Google Sheets. \n"
      }
    },
    {
      "id": "b13109e1-ae84-4f79-b72b-37ad3d38beed",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -352,
        -2832
      ],
      "parameters": {
        "width": 416,
        "height": 528,
        "content": "## Content selection\nPick one unprocessed idea from Google Sheets.\n"
      }
    },
    {
      "id": "33c1f6be-9899-4697-be8b-6c11bcb883e3",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        64,
        -2832
      ],
      "parameters": {
        "width": 1072,
        "height": 528,
        "content": "##  Content analysis\nTurn the idea into a title, description, and video prompt.\n"
      }
    },
    {
      "id": "1ee65f14-41df-411b-b854-2a58e86ea2c7",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -352,
        -2304
      ],
      "parameters": {
        "width": 1488,
        "height": 384,
        "content": "## Video generation\nSend the prompt, wait for the video, and check the result.\n"
      }
    },
    {
      "id": "b8e2bd10-c62c-4d89-80dd-d6e888ac5716",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -352,
        -1920
      ],
      "parameters": {
        "width": 1488,
        "height": 288,
        "content": "## Publishing\nPost the video and update the result.\n"
      }
    },
    {
      "id": "8813e7fe-ed8e-4679-b0f6-a9a15bf5b9fa",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1072,
        -3280
      ],
      "parameters": {
        "width": 656,
        "height": 864,
        "content": "## Setup Guide\n\n**Author:** [GiangxAI](https://www.youtube.com/@giangxai.official)\n\n## How it works\nThis workflow collects ideas, generates short videos using Sora 2, and publishes the results automat"
      }
    },
    {
      "id": "d324288c-5603-434d-b3bd-a8f3557902fe",
      "name": "Scheduled video generation",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -304,
        -2496
      ]
    }
  ],
  "connections": {
    "Think": {
      "ai_tool": [
        [
          {
            "node": "Analyze idea and generate video metadata",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Switch": {
      "main": [
        [
          {
            "node": "Wait for video rendering",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create post",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Video": {
      "main": [
        [
          {
            "node": "Switch",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create post": {
      "main": [
        [
          {
            "node": "Update row Viral Content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Video": {
      "main": [
        [
          {
            "node": "Wait for video rendering",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Analyze video": {
      "main": [
        [
          {
            "node": "Analyze idea and generate video metadata",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get ViralContent": {
      "main": [
        [
          {
            "node": "Analyze video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Analyze idea and generate video metadata",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Structured Output Parser",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Analyze idea and generate video metadata",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Wait for video rendering": {
      "main": [
        [
          {
            "node": "Get Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scheduled video generation": {
      "main": [
        [
          {
            "node": "Get ViralContent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scheduled content execution": {
      "main": [
        [
          {
            "node": "Run an Actor and get dataset",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Run an Actor and get dataset": {
      "main": [
        [
          {
            "node": "Normalize scraped content data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Normalize scraped content data": {
      "main": [
        [
          {
            "node": "Viral Content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format AI output for video generation": {
      "main": [
        [
          {
            "node": "Create Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Analyze idea and generate video metadata": {
      "main": [
        [
          {
            "node": "Format AI output for video generation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}