AutomationFlowsGeneral › Generate and Upload AI Videos with Ozor AI and Upload Post

Generate and Upload AI Videos with Ozor AI and Upload Post

ByOzorAI @ozorai on n8n.io

This workflow generates an AI video using Ozor AI and automatically uploads the finished video to your destination platform. It runs end-to-end in four steps: generate, poll for status, export, and upload. Step 1: Generate a Video — Sends a prompt and configuration (text, style,…

Event trigger★★★★☆ complexity10 nodesN8N Nodes OzorN8N Nodes Upload Post
General Trigger: Event Nodes: 10 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #15481 — we link there as the canonical source.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "HzM2IFBjCSNpzqyj",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Create Video with Ozor AI",
  "tags": [],
  "nodes": [
    {
      "id": "f60d56f6-1a8f-46b3-a826-aedb55b6bcd5",
      "name": "Generate a video",
      "type": "n8n-nodes-ozor.ozor",
      "position": [
        -96,
        224
      ],
      "parameters": {
        "prompt": "Create a short promotional video about our new product launch. Highlight key features and benefits with engaging visuals.",
        "waitForAgent": true
      },
      "credentials": {
        "ozorApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "704056dd-16d9-401c-bbfd-3f4b5ff013b9",
      "name": "Get video details",
      "type": "n8n-nodes-ozor.ozor",
      "position": [
        176,
        224
      ],
      "parameters": {
        "videoId": "={{ $json.videoId }}",
        "operation": "get"
      },
      "credentials": {
        "ozorApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "38e2c774-226d-4dc8-b9c1-57c4595eb81a",
      "name": "When clicking \u2018Execute workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -368,
        224
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "34d38b9b-9f03-4bc3-b909-551aff0c2ba9",
      "name": "Upload a video",
      "type": "n8n-nodes-upload-post.uploadPost",
      "position": [
        656,
        224
      ],
      "parameters": {
        "user": "instagram",
        "title": "={{ $('Get video details').item.json.title }}",
        "video": "={{ $json.downloadUrl }}",
        "platform": [
          "instagram"
        ],
        "operation": "uploadVideo",
        "instagramMediaType": "REELS"
      },
      "credentials": {
        "uploadPostApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "3ee7ae2e-1206-41a3-95ff-74373ec492f5",
      "name": "Export a video",
      "type": "n8n-nodes-ozor.ozor",
      "position": [
        416,
        224
      ],
      "parameters": {
        "videoId": "={{ $json.videoId }}",
        "operation": "export",
        "maxPollTimeSingle": 600,
        "waitForExportSingle": true
      },
      "credentials": {
        "ozorApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "267928c3-4f0b-4ebf-8173-9bd9a9fae4d9",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -144,
        -240
      ],
      "parameters": {
        "width": 208,
        "height": 368,
        "content": "## Step 1: Generate a Video\n\nThis node initiates a new video generation request with Ozor AI. It sends the prompt and configuration parameters (such as text, style, duration, and resolution) to the API. The response returns a **video ID** which is used to track the rendering progress in subsequent steps."
      },
      "typeVersion": 1
    },
    {
      "id": "65412ffe-4681-4525-bab7-c09a7a4b9f78",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        80,
        -240
      ],
      "parameters": {
        "height": 368,
        "content": "## Step 2: Get Video Details\n\nThis node polls the Ozor AI API using the **video ID** from the previous step to retrieve the current status and metadata of the video. It checks whether the rendering job is still processing, has completed, or has failed. Once ready, it returns metadata such as duration, resolution, and a temporary preview link."
      },
      "typeVersion": 1
    },
    {
      "id": "12b9985e-98c2-47bf-8fa1-c31a81e3d2d8",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        336,
        -240
      ],
      "parameters": {
        "height": 368,
        "content": "## Step 3: Export a Video\n\nOnce the video is fully rendered, this node sends an export request to the Ozor AI API to generate the final downloadable video file. It specifies the desired export format (e.g., MP4) and quality settings, and returns a **public download URL** that can be used to retrieve the finished video asset."
      },
      "typeVersion": 1
    },
    {
      "id": "8d2be24a-57ce-4eab-976e-c8aaca9bffb2",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        592,
        -240
      ],
      "parameters": {
        "height": 368,
        "content": "## Step 4: Upload a Video\n\nThe final step takes the exported video URL and uploads the file to the destination platform or storage location. This may include cloud storage, a CMS, or a social media platform. After a successful upload, it returns the **uploaded video reference** (such as a URL, asset ID, or post ID) confirming the workflow has completed end-to-end."
      },
      "typeVersion": 1
    },
    {
      "id": "1d5ab3c1-6162-4f2b-bdc7-564886ee30fa",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -416,
        -240
      ],
      "parameters": {
        "height": 368,
        "content": "## Prerequisites\n\nTo use this workflow you need an **Ozor** account.\n\n**Setup:**\n1. Go to [ozor.ai](https://ozor.ai)\n2. Open **Settings \u2192 API Key**\n3. Click **Generate** to create a new API key\n4. Copy the key and add it to the Ozor AI credentials in n8n\n\nThis API key is required to authenticate with the Ozor AI Video Generation API."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "binaryMode": "separate",
    "executionOrder": "v1"
  },
  "versionId": "1f868eea-0c59-4b0f-b041-026f2099b944",
  "connections": {
    "Export a video": {
      "main": [
        [
          {
            "node": "Upload a video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate a video": {
      "main": [
        [
          {
            "node": "Get video details",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get video details": {
      "main": [
        [
          {
            "node": "Export a video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "Generate a video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow generates an AI video using Ozor AI and automatically uploads the finished video to your destination platform. It runs end-to-end in four steps: generate, poll for status, export, and upload. Step 1: Generate a Video — Sends a prompt and configuration (text, style,…

Source: https://n8n.io/workflows/15481/ — original creator credit. Request a take-down →

More General workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

General

Blotato. Uses googleSheets, @blotato/n8n-nodes-blotato. Event-driven trigger; 65 nodes.

Google Sheets, @Blotato/N8N Nodes Blotato
General

This template is a hands-on, practical exam designed to help you master n8n Expressions—the key to accessing and manipulating data in your workflows.

Stop And Error
General

This template is a hands-on, practical exam designed to test your understanding of the fundamental JSON data types. It's the perfect way to solidify your knowledge after learning the basics.

Stop And Error
General

Agendamiento. Uses n8n-nodes-evolution-api, redis, dataTable, executeWorkflowTrigger. Event-driven trigger; 60 nodes.

N8N Nodes Evolution Api, Redis, Data Table +2
General

Kv Cloudflare Key Value Database Full Api Integration Workflow. Uses stickyNote, httpRequest, manualTrigger. Event-driven trigger; 47 nodes.

HTTP Request