{
  "name": "Generate video from prompt using Vertex AI Veo 3 and upload to Google Drive",
  "nodes": [
    {
      "id": "9f66e6be-6de0-4e2c-ad5e-20059f4a0d85",
      "name": "Setting",
      "type": "n8n-nodes-base.set",
      "position": [
        -80,
        0
      ]
    },
    {
      "id": "252be387-d2c6-4618-9d44-326baa0a1d6f",
      "name": "Convert to File",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        760,
        0
      ]
    },
    {
      "id": "ab04d16e-4727-49bb-b868-28db703b1b0f",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -300,
        0
      ]
    },
    {
      "id": "2497f762-8f0a-4a4d-87a2-31d05c62fdee",
      "name": "Google Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        980,
        0
      ]
    },
    {
      "id": "f2b78a57-403e-47d8-8f48-8af3263077d5",
      "name": "Vertex AI-VEO3",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        180,
        0
      ]
    },
    {
      "id": "8b5f1887-c001-4d95-ae04-0b9c9dd80dc4",
      "name": "Vertex AI-fetch",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        540,
        0
      ]
    },
    {
      "id": "61565d47-ee78-4a77-bcf1-0043636a8338",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -140,
        -160
      ],
      "parameters": {
        "width": null,
        "height": 320,
        "content": "### Setting GCP\n- PROJECT_ID\n- MODEL_VERSION\n- LOCATION\n- IMAGE_COUNT\n- API_ENDPOINT"
      }
    },
    {
      "id": "161e051f-9a74-46bd-a2f8-cf32b68279a2",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        120,
        -160
      ],
      "parameters": {
        "width": 580,
        "height": 320,
        "content": "## Veo3\n1. Sends the prompt to the Veo3 using Vertex AI’s predictLongRunning endpoint.\n2. Waits for the video rendering to complete.\n3. Fetches the final result"
      }
    },
    {
      "id": "ca75a288-5f19-4678-ac5f-cf924843f64a",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        360,
        0
      ]
    },
    {
      "id": "088bf7c8-bc74-47e5-9ca7-23807c9d5c32",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        720,
        -160
      ],
      "parameters": {
        "width": 200,
        "height": 320,
        "content": "### Convert to Video file\n\nBase64 Input Field:\n```response.videos[0].bytesBase64Encoded```"
      }
    },
    {
      "id": "091c8fe2-57a9-4f62-949c-84f88b38b91a",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        940,
        -160
      ],
      "parameters": {
        "width": 180,
        "height": 320,
        "content": "### Upload Video to Google Drive"
      }
    },
    {
      "id": "25da0c72-2dd8-47f1-93fc-8e116b5c3768",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -380,
        -160
      ],
      "parameters": {
        "width": 230,
        "height": 320,
        "content": "### Accepts a text prompt and a GCP access token via form.\n\n\n"
      }
    },
    {
      "id": "14aa3de1-ece7-4272-a52e-0f0f72197f77",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -140,
        180
      ],
      "parameters": {
        "width": 660,
        "height": 400,
        "content": "### Workflow Process\n![Alt text](https://drive.google.com/thumbnail?id=1L9KKkuS0hk5LW9hpGJ_FB9giKYFZpmy4&sz=w1000)"
      }
    },
    {
      "id": "4e8c2cf8-0ef1-4da0-930e-54854062e36d",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        540,
        180
      ],
      "parameters": {
        "width": 580,
        "height": 400,
        "content": "### Output\n![Alt text](https://drive.google.com/thumbnail?id=1Biq2vhbzaFLya1ZsF8PhGL1RRta7XkMK&sz=w1000)"
      }
    },
    {
      "id": "120dcf68-1a9b-447d-a530-1e2264eb9b8f",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -380,
        180
      ],
      "parameters": {
        "width": 230,
        "height": 400,
        "content": "### How to get GCP Access Token\n\nUse this command in your VM/Cloud Shell:\n\n```bash\ngcloud auth print-access-token\n"
      }
    }
  ],
  "connections": {
    "Wait": {
      "main": [
        [
          {
            "node": "Vertex AI-fetch",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Setting": {
      "main": [
        [
          {
            "node": "Vertex AI-VEO3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Vertex AI-VEO3": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to File": {
      "main": [
        [
          {
            "node": "Google Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Vertex AI-fetch": {
      "main": [
        [
          {
            "node": "Convert to File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Setting",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}