AI-Powered Short-Form Video Generator with OpenAI, Flux, Kling, and ElevenLabs and upload to all social networks
Configured with Discord, Google Drive, Google Sheets, HTTP Request, and additional nodes. Review the connections and setup before adapting this template.
Node categories in this workflow
- Web / API
- Code
- Wait
- Routing
- AI & models
- Transform
- Files / media
- Messaging
- Trigger
- Data store
Icons describe general node roles, inferred from node types. Inspect the parameters for the configured action.
Drag to pan; use + and − to zoom. Reconstructed from the exported node positions; nothing runs here. Dashed lines represent non-main connections. Full node names and notes appear below.
How it works
The exported workflow contains the following configured nodes. Their connections are shown above; inspect the JSON for the complete logic, expressions, and external actions.
| Node | Category | Type | Operation |
|---|---|---|---|
| Get image | Web / API | HTTP Request | See node parameters |
| Generate Image | Web / API | HTTP Request | POST |
| Image-to-Video | Web / API | HTTP Request | POST |
| Get Video | Web / API | HTTP Request | See node parameters |
| List Elements | Code | Code | See node parameters |
| Wait 10min | Wait | Wait | See node parameters |
| Wait 3min | Wait | Wait | See node parameters |
| Wait 5min | Wait | Wait | See node parameters |
| Generate voice | Web / API | HTTP Request | POST |
| List Elements1 | Code | Code | See node parameters |
| Fail check | Routing | If | See node parameters |
| Wait to retry | Wait | Wait | See node parameters |
| Generate Image Prompts | AI & models | Open Ai | See node parameters |
| Calculate Token Usage | Code | Code | See node parameters |
| Check for failures | Routing | If | See node parameters |
| Generate Video Captions | AI & models | Open Ai | See node parameters |
| Match captions with videos | Transform | Merge | See node parameters |
| Generate Script | AI & models | Open Ai | See node parameters |
| Upload Voice Audio | Files / media | Google Drive | See node parameters |
| Set Access Permissions | Files / media | Google Drive | share |
| Pair Videos with Audio | Transform | Merge | See node parameters |
| Render Final Video | Web / API | HTTP Request | POST |
| Notify me on Discord | Messaging | Discord | See node parameters |
| Once Per Day | Trigger | Schedule Trigger | See node parameters |
| Load Google Sheet | Data store | Google Sheets | See node parameters |
| Create List | Code | Code | See node parameters |
| Wait1 | Wait | Wait | See node parameters |
| Get Final Video | Web / API | HTTP Request | See node parameters |
| Upload Final Video | Files / media | Google Drive | See node parameters |
| Get Raw File | Web / API | HTTP Request | See node parameters |
| Set Permissions | Files / media | Google Drive | share |
| Update Google Sheet | Data store | Google Sheets | update |
| Set API Keys | Transform | Edit Fields | See node parameters |
| Validate list formatting | Routing | If | See node parameters |
| Get Audio from Video | AI & models | Open Ai | audio / transcribe |
| Generate Description for Videos in Tiktok and Instagram | AI & models | Open Ai | See node parameters |
| Upload Video and Description to Tiktok | Web / API | HTTP Request | POST |
| Upload Video and Description to Instagram | Web / API | HTTP Request | POST |
| Upload Video and Description to Youtube | Web / API | HTTP Request | POST |
| Upload Video and Description to Facebook | Web / API | HTTP Request | POST |
| Upload Video and Description to Linkedin | Web / API | HTTP Request | POST |
| Read Video from Google Drive | Files / media | Read Binary File | See node parameters |
| Write video | Files / media | Write Binary File | See node parameters |
Setup
- Download the JSON and import it into an isolated n8n instance. Leave the workflow inactive.
- Connect your own credentials through n8n’s credential store. Replace
REPLACE_WITH_*values with your resource identifiers. - Inspect API destinations, Code nodes, database queries, file paths, and outbound actions.
- Run with synthetic data and harmless destinations. Enable triggers only after checking the actual outputs.
Requirements
An n8n instance with the listed node types and compatible versions. Service-connected workflows may require accounts, credentials, or paid APIs.
Credential types declared in the source
googleDriveOAuth2ApigoogleSheetsOAuth2ApihttpHeaderAuthopenAiApi
Workflow notes
2. 🖼️Generate images with Flux using [PiAPI](https://piapi.ai/?via=n8n)
2. 🖼️Generate images with Flux using PiAPI
(total cost: $0.0948 approx. as of 3/9/25)
- OpenAI is used to generate 5 Flux image prompts based on the 5 captions generated. Edit this node to see/edit the prompt instructions.
- Next we use some custom javascript to total up how many tokens were used for each 5 generations so we can track our costs later.
- Then we generate an image with Flux using the PiAPI service, waiting to check for failures and retrying if there are any.
You can change the image model used by editing the Generate Image node API call. Flux models available (as of 3/9/25):
- Qubico/flux1-dev ($0.015) - Currently set
- Qubico/flux1-schnell ($0.0015)
- Qubico/flux1-advanced ($0.02)
For full list of API settings, see the Flux API Documentation
3. 🎬Generate videos with Kling using [PiAPI](https://piapi.ai/?via=n8n)
3. 🎬Generate videos with Kling using PiAPI
(total cost: $2.30 approx. as of 3/9/25)
- We use image-to-video with Kling using PiAPI to generate a video from each image.
- Then we wait to check for failures, and repeat the generations the failed if there are any.
You can edit the video model used in the Image-to-Video node. For testing, I'd recommend switching from pro to std for lower quality and cheaper price. Kling models available (as of 3/9/25):
- std (Standard) $0.26 per 5 second video
- pro (Professional) $0.46 per 5 second video - Currently set
For full list of API settings, see the Kling API Documentation
4. 🔉Generate voice overs with [Eleven Labs](https://try.elevenlabs.io/n8n)
4. 🔉Generate voice overs with Eleven Labs
- OpenAI API is used to generate a funny script that relates to the captions. Open this node to see/edit the prompt instructions.
- Then we use the Eleven Labs API to generate the voiceover and upload it to our Google Drive so it can be accessed in the next step.
To replace the voice, find the voice ID of the voice you want to use in Eleven Labs, then change the URL in the Generate Voice node to: https://api.elevenlabs.io/v1/text-to-speech/{voice ID here}
For full list of API settings, see the Eleven Labs API Documentation
5. 📥Complete video with [Creatomate](https://creatomate.com/)
5. 📥Complete video with Creatomate
(total cost: $0.38 approx. with the Essential plan credits | Free trial credits available)
- First, the list of videos/captions is combined with the generated voice over into a single item containing all 3 elements.
- Those are then passed over to the Creatomate Template ID you specified, replacing the template captions/video/audio with your generated ones.
- When the video is finished rendering, it's then uploaded to Google Drive and the permissions set so it can be accessed with a link.
- Then we update the original Google Sheet template with the information from our generation, including tokens to calculate cost, then mark this idea as completed.
- Finally, we send a notification to via webhook to the Discord server when the video is ready to be downloaded and used!
🤖 AI-Powered Short-Form Video Generator with OpenAI, Flux, Kling, and ElevenLabs
🤖 AI-Powered Short-Form Video Generator with OpenAI, Flux, Kling, and ElevenLabs
📃Before you get started, you'll need:
- n8n installation (tested on version 1.81.4)
- OpenAI API Key (free trial credits available)
- PiAPI (free trial credits available)
- Eleven Labs (free account)
- Creatomate API Key (free trial credits available)
- Google Sheets API enabled in Google Cloud Console
- Google Drive API enabled in Google Cloud Console
- OAuth 2.0 Client ID and Client Secret from your Google Cloud Console Credentials
1. 🗨️Generate video captions from ideas in a Google Sheet
1. 🗨️Generate video captions from ideas in a Google Sheet
- Setup your API keys for PiAPI, Eleven Labs, and Creatomate.
- Once logged in to your Creatomate account, create a new video template and click "source code" in the top right. Paste this JSON code. This will be your example template for this workflow.
- In your Creatomate template, click the "Use Template" button in the top right and then click "API Integration" and you'll see your template_id. Set this value as your Creatomate Template ID in the Set API Keys node
-
The next node will load a Google Sheet, you can copy the Google Sheet Template, simply choose File > Make a copy. Then in the Google Sheets node, connect to your copied sheet template.
-
Next, we generate 5 captions for our video idea with OpenAI. You can edit this node to see the prompt and change it to your needs.
-
In the final two nodes, we use custom javascript code to turn the OpenAI response into a list. Then, it validates to make sure the list was formed correctly (incase of an OpenAI failure to follow instructions)
Set API Keys
SET BEFORE STARTING
Get Audio from Video
Extract the audio from video for generate the description
Generate Description for Videos in Tiktok and Instagram
Request to OpenAi for generate description with the audio extracted from the video
Upload Video and Description to Tiktok
Generate in upload-post.com the token and add to the credentials in the header-> Authorization: Apikey (token here)
6. Upload to all social networks with upload-post.com
6. Upload to all social networks with upload-post.com
(premium plan 15$ | Free trial credits available)
This automation will automatically create descriptions from videos and upload it to Instagram, TikTok, Youtube, Facebook and Linkedin.
How to Use
- Generate an API token at upload-post.com and add to Upload to Tiktok and Upload to Instagram nodes etc
- Customize the OpenAI prompt for your specific use case
- Optional: Configure Telegram for error notifications
Requirements
- upload-post.com account
- OpenAI API key
AI-Powered Short-Form Video Generator with OpenAI, Flux, Kling, and ElevenLabs and upload to all social networks
AI-Powered Short-Form Video Generator with OpenAI, Flux, Kling, and ElevenLabs and upload to all social networks
Purpose and structure
This folder contains the AI-Powered Short-Form Video Generator with OpenAI, Flux, Kling, and ElevenLabs and upload to all social networks workflow. Its executable nodes use code, discord, googleDrive, googleSheets, httpRequest, if, merge, openAi, readBinaryFile, scheduleTrigger, set, wait, writeBinaryFile. The table and connection map below are derived from the JSON, not an inferred guarantee of behavior.
Setup
Import inactive. Configure your own credentials and replace REPLACE_WITH_* values. Review external destinations and Code nodes before running.
Entry points
Once Per Day
Verification
Sanitized source candidate; not runtime-tested. This overview is generated from node metadata. Read the folder README for the connection map, credential types, and license.
Attribution
https://github.com/Zie619/n8n-workflows/blob/94007c1445d9258a7da116646b79473e7c7c3282/workflows/Wait/1282_Wait_Code_Import_Webhook.json MIT; preserve source notices.
Canvas section labels
These name areas of the original canvas; they do not include explanatory instructions.
- DO THIS FIRST