Quick overview
This self-hosted workflow takes a topic from an n8n form, generates a short multi-scene script with Google Gemini or Anthropic Claude, creates voiceover with Edge TTS, downloads scene images from Pollinations, burns karaoke captions with FFmpeg, and outputs a final vertical MP4.
How it works
- Receives a topic, language, scene count, and LLM choice from an n8n Form Trigger.
- Maps the selected language to an Edge TTS voice and calculates a per-scene word limit to keep the video under 60 seconds.
- Generates a JSON script (voice-over plus English image prompts per scene) using either Google Gemini or Anthropic Claude.
- Splits the script into individual scenes and, for each scene, generates an MP3 voiceover with Edge TTS and estimates word-by-word caption timing using ffprobe/FFmpeg silence detection.
- For each scene, downloads a 1080×1920 image from Pollinations based on the scene’s image prompt.
- Renders each scene locally with FFmpeg by applying a slow zoom effect to the image, burning in karaoke-style ASS subtitles, and syncing to the scene audio.
- Concatenates all rendered scene segments into a single MP4, normalizes audio loudness, and returns the final video file as the workflow output.
Setup
- Run n8n self-hosted and start it with
NODES_EXCLUDE="[]" and N8N_RESTRICT_FILE_ACCESS_TO="/tmp" (macOS: "/tmp;/private/tmp") so Execute Command and local file access work.
- Install FFmpeg and ffprobe with libass support (verify
ffmpeg -filters | grep subtitles returns a subtitles filter).
- Install Edge TTS on the n8n host with
pipx install edge-tts and ensure the edge-tts binary is on the PATH used by n8n.
- Add exactly one HTTP Request credential for the script step: either Google Gemini Query Auth with name
key and your AI Studio API key, or Anthropic Header Auth with name x-api-key and your Anthropic API key, then assign it to the matching script node.
- Ensure the host can write to
/tmp and has curl available for downloading Pollinations images.
Requirements
- Self-hosted n8n only, this will not run on n8n Cloud (needs Execute Command plus local file writes)
- Google Gemini free tier is capped at 20 requests per day, one script equals one request; switch to Claude Haiku for no daily cap (about $0.0017 per video, measured)
Customization
- Supports 7 languages: English, Vietnamese, Spanish, French, German, Portuguese, Indonesian
- Chinese, Japanese and Thai are not supported because captions are split on whitespace
- Karaoke caption timing is an estimate from ffprobe silence detection, not real per-word TTS timestamps
Additional info
The all-free combination (Gemini free tier, Edge TTS, Pollinations, FFmpeg) costs $0 in API fees per video, you only pay for your own server hosting or electricity. This is the only self-hosted faceless video template on the marketplace with a true $0/video path; every other similar template requires at least one paid API.