← All N8N workflows
AI & researchCodeDiscordGoogle DriveGoogle SheetsHTTP Request

AI Automated TikTok/Youtube Shorts/Reels Generator

Configured with Discord, Google Drive, Google Sheets, HTTP Request, and additional nodes. Review the connections and setup before adapting this template.

Workflow preview
Web / APIGet imageHTTP RequestWeb / APIGenerate ImageHTTP RequestWeb / APIImage-to-VideoHTTP RequestWeb / APIGet VideoHTTP RequestCodeList ElementsCodeWaitWait 10minWaitWaitWait 3minWaitWaitWait 5minWaitWeb / APIGenerate voiceHTTP RequestCodeList Elements1CodeRoutingFail checkIfWaitWait to retryWaitAI & modelsGenerate Image PromptsOpen AiCodeCalculate Token UsageCodeRoutingCheck for failuresIfAI & modelsGenerate Video CaptionsOpen AiTransformMatch captions withvideosMergeAI & modelsGenerate ScriptOpen AiFiles / mediaUpload Voice AudioGoogle DriveFiles / mediaSet Access PermissionsGoogle DriveTransformPair Videos with AudioMergeWeb / APIRender Final VideoHTTP RequestMessagingNotify me on DiscordDiscordTriggerOnce Per DaySchedule TriggerData storeLoad Google SheetGoogle SheetsCodeCreate ListCodeWaitWait1WaitWeb / APIGet Final VideoHTTP RequestFiles / mediaUpload Final VideoGoogle DriveWeb / APIGet Raw FileHTTP RequestFiles / mediaSet PermissionsGoogle DriveData storeUpdate Google SheetGoogle SheetsTransformSet API KeysEdit FieldsRoutingValidate listformattingIf

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.

Workflow node names, types, and operations
NodeCategoryTypeOperation
Get imageWeb / APIHTTP RequestSee node parameters
Generate ImageWeb / APIHTTP RequestPOST
Image-to-VideoWeb / APIHTTP RequestPOST
Get VideoWeb / APIHTTP RequestSee node parameters
List ElementsCodeCodeSee node parameters
Wait 10minWaitWaitSee node parameters
Wait 3minWaitWaitSee node parameters
Wait 5minWaitWaitSee node parameters
Generate voiceWeb / APIHTTP RequestPOST
List Elements1CodeCodeSee node parameters
Fail checkRoutingIfSee node parameters
Wait to retryWaitWaitSee node parameters
Generate Image PromptsAI & modelsOpen AiSee node parameters
Calculate Token UsageCodeCodeSee node parameters
Check for failuresRoutingIfSee node parameters
Generate Video CaptionsAI & modelsOpen AiSee node parameters
Match captions with videosTransformMergeSee node parameters
Generate ScriptAI & modelsOpen AiSee node parameters
Upload Voice AudioFiles / mediaGoogle DriveSee node parameters
Set Access PermissionsFiles / mediaGoogle Driveshare
Pair Videos with AudioTransformMergeSee node parameters
Render Final VideoWeb / APIHTTP RequestPOST
Notify me on DiscordMessagingDiscordSee node parameters
Once Per DayTriggerSchedule TriggerSee node parameters
Load Google SheetData storeGoogle SheetsSee node parameters
Create ListCodeCodeSee node parameters
Wait1WaitWaitSee node parameters
Get Final VideoWeb / APIHTTP RequestSee node parameters
Upload Final VideoFiles / mediaGoogle DriveSee node parameters
Get Raw FileWeb / APIHTTP RequestSee node parameters
Set PermissionsFiles / mediaGoogle Driveshare
Update Google SheetData storeGoogle Sheetsupdate
Set API KeysTransformEdit FieldsSee node parameters
Validate list formattingRoutingIfSee node parameters

Setup

  1. Download the JSON and import it into an isolated n8n instance. Leave the workflow inactive.
  2. Connect your own credentials through n8n’s credential store. Replace REPLACE_WITH_* values with your resource identifiers.
  3. Inspect API destinations, Code nodes, database queries, file paths, and outbound actions.
  4. 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

  • discordWebhookApi
  • googleDriveOAuth2Api
  • googleSheetsOAuth2Api
  • openAiApi

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)

  1. OpenAI is used to generate 5 Flux image prompts based on the 5 captions generated. Edit this node to see/edit the prompt instructions.
  2. 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.
  3. 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)

  1. We use image-to-video with Kling using PiAPI to generate a video from each image.
  2. 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

  1. OpenAI API is used to generate a funny script that relates to the captions. Open this node to see/edit the prompt instructions.
  2. 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)

  1. First, the list of videos/captions is combined with the generated voice over into a single item containing all 3 elements.
  2. Those are then passed over to the Creatomate Template ID you specified, replacing the template captions/video/audio with your generated ones.
  3. 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.
  4. 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.
  5. 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:

1. 🗨️Generate video captions from ideas in a Google Sheet

1. 🗨️Generate video captions from ideas in a Google Sheet

  1. 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
  1. 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.

  2. 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.

  3. 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

AI Automated TikTok/Youtube Shorts/Reels Generator

AI Automated TikTok/Youtube Shorts/Reels Generator

Purpose and structure

This folder contains the AI Automated TikTok/Youtube Shorts/Reels Generator workflow. Its executable nodes use code, discord, googleDrive, googleSheets, httpRequest, if, merge, openAi, scheduleTrigger, set, wait. 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/1805_Wait_Code_Automate_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

More in AI & research