Skip to main content

Generate YouTube shorts from prompts with OpenAI, ElevenLabs and Pexels

Workflow preview

Workflow preview
100%
Generate YouTube shorts from prompts with OpenAI, ElevenLabs and Pexels preview
Open on n8n.io

1. Workflow Overview

Quick overview This workflow takes a prompt from an n8n form, uses OpenAI to generate a YouTube Shorts script, then creates an ElevenLabs voiceover, pulls matching portrait stock video from Pexels,...

Best for

  • Content Creation automation workflows
  • Multimodal AI automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.httprequest, n8n-nodes-base.merge, n8n-nodes-base.if, n8n-nodes-base.wait, n8n-nodes-base.set, n8n-nodes-base.youtube, @n8n/n8n-nodes-langchain.lmchatopenai, n8n-nodes-base.formtrigger

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Davide Boizza.

Original n8n.io source

1.1 Workflow description

Title
Generate YouTube shorts from prompts with OpenAI, ElevenLabs and Pexels
Workflow name
Generate YouTube shorts from prompts with OpenAI, ElevenLabs and Pexels

Quick overview

This workflow takes a prompt from an n8n form, uses OpenAI to generate a YouTube Shorts script, then creates an ElevenLabs voiceover, pulls matching portrait stock video from Pexels, merges audio and video via fal.run’s FFmpeg API, and uploads the finished short to YouTube.

How it works

  1. Receives a prompt submission from an n8n form.
  2. Uses OpenAI to generate a short title, a 60-second voiceover script, and an English stock-footage keyword.
  3. Sends the script to ElevenLabs Text-to-Speech, then uploads the resulting audio file to an FTP server.
  4. Searches Pexels for a portrait stock video clip matching the generated keyword.
  5. Submits the Pexels video URL and hosted audio URL to fal.run’s FFmpeg API to merge them, then polls the request status until it completes.
  6. Downloads the merged video file and uploads it to YouTube with the generated title and the original prompt as the description.

Setup

  1. Configure the form trigger and copy its public URL if you want to embed or share the form.
  2. Add credentials for OpenAI, ElevenLabs (HTTP Header Auth), Pexels (HTTP Header Auth), fal.run (HTTP Header Auth), and YouTube OAuth2.
  3. Set up an FTP destination (for example, BunnyCDN Storage) and update the upload path and the public base URL used to construct the audio_url.
  4. Verify the YouTube upload settings (category, region, and description text) and replace the placeholder channel name used in the script prompt.

Additional info

MY NEW YOUTUBE CHANNEL

👉 Subscribe to my new YouTube channel. Here I'll share videos and Shorts with practical tutorials and FREE templates for n8n.


Need help customizing?

Contact me for consulting and support or add me on Linkedin

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Pexels

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4

Block 2 - Merge

Type / Role
n8n-nodes-base.merge - merge
Config choices
Version 3.2

Block 3 - Check Merge Status

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.2

Block 4 - Wait 30 Seconds for Merge

Type / Role
n8n-nodes-base.wait - wait
Config choices
Version 1.1

Block 5 - Merge Audio with Video

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.3

Block 6 - Check Video Merge Status

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 7 - Fetch Final Video

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 8 - Fetch Video File from URL

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.4

Block 9 - Set Audio Url

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 10 - Upload a video

Type / Role
n8n-nodes-base.youTube - youTube
Config choices
Version 1

Block 11 - OpenAI Chat Model

Type / Role
@n8n/n8n-nodes-langchain.lmChatOpenAi - lmChatOpenAi
Config choices
Version 1.3

Block 12 - On form submission

Type / Role
n8n-nodes-base.formTrigger - formTrigger
Config choices
Version 2.6

Block 13 - Set vars

Type / Role
n8n-nodes-base.set - set
Config choices
Version 1

Block 14 - Structured Output Parser

Type / Role
@n8n/n8n-nodes-langchain.outputParserStructured - outputParserStructured
Config choices
Version 1.3

Block 15 - Generate voiceover

Type / Role
@n8n/n8n-nodes-langchain.agent - agent
Config choices
Version 3.1

Block 16 - Voiceover vars

Type / Role
n8n-nodes-base.set - set
Config choices
Version 1

Block 17 - Text-to-Speech

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.4

Block 18 - Upload audio

Type / Role
n8n-nodes-base.ftp - ftp
Config choices
Version 1

Block 19 - Sticky Note

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 20 - Sticky Note1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 21 - Sticky Note2

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 22 - Sticky Note3

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 23 - Sticky Note4

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 24 - Sticky Note5

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Showing the first 24 of 25 workflow blocks. Download the JSON for the full node graph.

3. Summary Table

Workflow Generate YouTube shorts from prompts with OpenAI, ElevenLabs and Pexels
Complexity advanced
Nodes 25
Categories Content Creation, Multimodal AI
Author Davide Boizza
Published 16 Jun 2026

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/16419/16419.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Generate YouTube shorts from prompts with OpenAI, ElevenLabs and Pexels do?

Quick overview This workflow takes a prompt from an n8n form, uses OpenAI to generate a YouTube Shorts script, then creates an ElevenLabs voiceover, pulls matching portrait stock video from Pexels,...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Content Creation, Multimodal AI use case.