How to Set Up Faceless YouTube Shorts Creator — AI Script + ElevenLabs Voice + Auto-Upload in n8n

Producing a daily YouTube Short by hand is a grind that scales badly: you research a trending topic, write a script, record or generate a voiceover, source B-roll, edit the cuts, write an SEO title an

How to Set Up Faceless YouTube Shorts Creator — AI Script + ElevenLabs Voice + Auto-Upload in n8n

Producing a daily YouTube Short by hand is a grind that scales badly: you research a trending topic, write a script, record or generate a voiceover, source B-roll, edit the cuts, write an SEO title and description, then upload — 45 to 90 minutes per video, every single day. For a founder or ops lead trying to build a content channel as a top-of-funnel asset, that is a part-time job you can't afford. Miss three days and the algorithm forgets you. The bottleneck isn't creativity; it's the repetitive assembly line between "idea" and "published." This is exactly the kind of deterministic, multi-step pipeline that n8n was built to automate end to end.

The Solution: A Fully Automated Faceless Shorts Pipeline

The Faceless YouTube Shorts Creator workflow turns a single scheduled trigger into a published, narrated, SEO-optimized YouTube Short with zero human touch. Every day at 8am, n8n pulls a trending topic, asks GPT-4o to write a tight 40-second script, sends that script to ElevenLabs for a natural-sounding voiceover, pulls matching stock footage from Pexels, stitches audio and video together, and uploads the finished Short to YouTube with a keyword-rich title and description.

"Faceless" is the strategic point: no camera, no on-screen talent, no studio. The channel is a system, not a person — which means it runs while you sleep and never gets sick of showing up. You keep full editorial control by tuning the prompt and the topic source, but the daily execution is handed off entirely to the workflow.

Step-by-Step: Building It in n8n

The pipeline is a linear chain of nodes, each doing one job. Here's how the pieces fit together.

1. Schedule Trigger. Start with a Schedule Trigger node set to a Cron expression of 0 8 * * * so it fires once daily at 08:00. This is the only trigger you need — everything downstream runs off it.

2. Fetch the trending topic. Use an HTTP Request node to hit a trends source — Google Trends' daily RSS, a news API, or a Reddit subreddit's /top.json endpoint. Parse the response with a Set node to isolate a single clean topic string into a field like {{ $json.topic }}. Keep it to one topic per run so the rest of the chain stays deterministic.

3. Generate the script with GPT-4o. Add an OpenAI node (Chat model, gpt-4o). In the system prompt, lock the format: "Write a 40-second YouTube Short script on {{ $json.topic }}. Open with a 1–3 second hook. Plain narration only, no scene directions, no emojis, under 110 words." Set temperature around 0.7 for variety without drift. Request a JSON response so you get separate fields for script, title, and description in one call — that saves a second API round trip.

4. Synthesize the voice with ElevenLabs. Use an HTTP Request node (POST) to https://api.elevenlabs.io/v1/text-to-speech/{voice_id}. Pass your API key in the xi-api-key header, send the script in the JSON body under text, and set the model to eleven_turbo_v2 for speed and cost. Configure the node's response format to File so the returned MP3 lands as a binary property you can pass downstream.

5. Pull stock footage from Pexels. Add an HTTP Request node to the Pexels video search API (https://api.pexels.com/videos/search) using a keyword derived from the topic and orientation=portrait so clips fit the 9:16 Shorts frame. Download one or two vertical clips as binary data. A short Code node can pick the clip whose duration best matches your narration length.

6. Assemble the video. This is the one step that needs FFmpeg. Use an Execute Command node (self-hosted n8n) to run FFmpeg: overlay the ElevenLabs MP3 as the audio track onto the Pexels footage, loop or trim the video to match audio length, and export a 1080×1920 MP4. A minimal command maps the video and audio streams with -shortest so output ends when the narration does.

7. Upload to YouTube. Finish with the native YouTube node, operation Upload Video, authenticated via OAuth2. Map the MP4 binary into the video input, set the title and description from the GPT-4o JSON, add #Shorts plus 3–5 topical tags, and set privacy to public (or private for a review buffer while you're testing).

Key Configuration Details That Matter

A few settings separate a workflow that runs reliably from one that breaks on day three:

  • Binary data handling. Audio and video move between nodes as binary properties, not JSON. Name them explicitly (e.g. voiceover, footage) and reference those names in the FFmpeg node so nothing gets silently dropped.
  • Error branches. Add an Error Trigger workflow or set critical nodes to "Continue On Fail" with a notification, so a Pexels timeout or an ElevenLabs quota error pings you instead of failing silently at 8am.
  • Rate and cost caps. Use eleven_turbo_v2 and cap script length in the prompt — long scripts burn ElevenLabs credits fast. GPT-4o's JSON mode keeps output structured and cheap.
  • Self-hosted requirement. The Execute Command / FFmpeg step needs a self-hosted n8n instance with FFmpeg installed. n8n Cloud can't run shell commands, so plan to deploy on your own VPS.

The Benefits: Why This Compounds

The obvious win is time — you reclaim an hour a day. But the real payoff is consistency. YouTube's algorithm rewards channels that publish daily, and a machine never skips. Thirty days in, you have 30 Shorts working as evergreen discovery assets; 90 days in, you have a searchable library that keeps pulling traffic long after each video was made.

It's also cheap. GPT-4o script generation, ElevenLabs turbo voice, and Pexels footage (free tier) put your marginal cost per video in the range of pennies to a few cents. Compare that to a freelance editor at $30–$80 per Short and the ROI is immediate. And because every part is a node you control, you can fork the workflow for a second niche in minutes — swap the topic source and the voice, and you're running two channels off one system.

Common Pitfalls to Avoid

Vertical footage is non-negotiable. If you pull landscape Pexels clips, your Short renders with black bars and gets buried. Always filter orientation=portrait and export at 1080×1920.

Watch the audio-video length mismatch. If narration runs 38 seconds and the clip is 12, you get dead footage or an abrupt cut. Use FFmpeg's loop plus -shortest, or select a clip near your narration duration in the Code node.

Don't let GPT-4o write scene directions. Without a strict prompt, it outputs "[cut to close-up]" and ElevenLabs reads it aloud. Pin the prompt to "plain narration only" and test the raw output before going live.

Respect the YouTube upload quota. The API has a daily quota; one Short a day is well within it, but if you batch-test uploads you can hit the ceiling. Keep a private-privacy buffer while tuning so failed tests don't spam a public channel.

Handle API failures explicitly. An expired ElevenLabs credit or a Pexels rate limit shouldn't kill the run silently. Build the error branch on day one, not after you notice a week of missing videos.

Once this is running, your only recurring job is quality control: skim the daily upload, refine the prompt when the script drifts, and rotate topic sources as trends shift. The assembly line runs itself — you just steer it.

Faceless YouTube Shorts Creator — AI Script + ElevenLabs Voice + Auto-Upload
PRONTO PARA USAR

Ja construimos isso pra voce

Nao comece do zero. O Faceless YouTube Shorts Creator — AI Script + ElevenLabs Voice + Auto-Upload e um workflow n8n pronto para instalar — conecta suas ferramentas em minutos, sem codigo.

Instalar por $79.0 →