This n8n workflow automatically generates presentation-style "screen recording" videos with AI-generated slides and a talking head avatar overlay. You provide a topic and intention, and the workflow handles everything: scriptwriting, slide generation, avatar creation, voiceover, and video composition.
Output: Horizontal (16:9) AI-generated videos with animated slides as the main content and a lip-synced avatar in picture-in-picture, ready for YouTube, LinkedIn, or professional presentations.
Topic + Intention → Claude writes script → Parallel processing:
├── OpenAI generates avatar → ElevenLabs voiceover → VEED lip-sync
└── FAL Flux Pro generates slides
→ Creatomate composites everything → Saved to Google Drive + logged to Sheets
| Step | Tool | What Happens |
|---|---|---|
| 1. Script Generation | Claude Sonnet 4 | Creates hook, script (25-40 sec), slide prompts, caption, and avatar description |
| 2. Avatar Generation | OpenAI gpt-image-1 | Generates photorealistic portrait image (1024×1536) |
| 3. Slide Generation | FAL Flux Pro | Creates 5-7 professional slides (1920×1080) with text overlays |
| 4. Voiceover | ElevenLabs | Converts script to natural speech (multiple voice options) |
| 5. Talking Head | VEED Fabric 1.0 | Lip-syncs avatar to audio, creates 9:16 talking head video |
| 6. Video Composition | Creatomate | Combines slides + avatar in 16:9 PiP layout |
| 7. Storage | Google Drive | Uploads final MP4 |
| 8. Logging | Google Sheets | Records all metadata (script, caption, URLs, timestamps) |
| Service | Key Type | Where to Get |
|---|---|---|
| Anthropic | API Key | https://console.anthropic.com/settings/keys |
| OpenAI | API Key | https://platform.openai.com/api-keys |
| ElevenLabs | API Key | https://elevenlabs.io/app/settings/api-keys |
| FAL.ai | API Key | https://fal.ai/dashboard/keys |
| Creatomate | API Key | https://creatomate.com/dashboard/settings |
⚠️ OpenAI Note:
gpt-image-1requires organization verification. Go to https://platform.openai.com/settings/organization/general to verify.
| Node | Credential Type | Purpose |
|---|---|---|
| 🎬 Generate Talking Head (VEED) | FAL.ai API | VEED video rendering |
| 📤 Upload to Drive | Google Drive OAuth2 | Store final videos |
| 📝 Log to Sheets | Google Sheets OAuth2 | Track all generated content |
Edit the ⚙️ Workflow Configuration node to customize:
{
// 📝 CONTENT SETTINGS
topic: "How AI is transforming content creation",
intention: "informative", // informative, lead_generation, disruption
brand_name: "YOUR_BRAND_NAME",
target_audience: "sales teams and marketers",
trending_hashtags: "#AIvideo #ContentCreation #VideoMarketing",
// 🎨 SLIDE STYLE
slide_style: "vibrant_colorful", // See slide styles below
// 🎥 VIDEO SETTINGS
video_resolution: "720p", // VEED only supports 720p
seconds_per_slide: 6, // How long each slide shows
// 🖼️ BACKGROUND (Optional)
background: "", // URL, gradient array, or empty
// 🔑 API KEYS (Required)
anthropic_api_key: "YOUR_ANTHROPIC_API_KEY",
openai_api_key: "YOUR_OPENAI_API_KEY",
elevenlabs_api_key: "YOUR_ELEVENLABS_API_KEY",
creatomate_api_key: "YOUR_CREATOMATE_API_KEY",
fal_api_key: "YOUR_FAL_API_KEY",
// 🎤 VOICE SELECTION
voice_selection: "susie", // cristina, enrique, susie, jeff, custom
// 🎨 AVATAR OPTIONS (Optional)
custom_avatar_description: "", // Leave empty for AI-generated
custom_avatar_image_url: "", // Direct URL to use existing image
// 📝 CUSTOM SCRIPT (Optional)
custom_script: "" // Leave empty for AI-generated
}
| Style | Description | Best For |
|---|---|---|
dark_professional |
Dark gradients, white text, sleek look | Tech, SaaS, premium brands |
light_modern |
Light backgrounds, dark text, clean | Corporate, educational |
vibrant_colorful |
Bold colors, energetic, eye-catching | Social media, startups |
minimalist |
Lots of whitespace, simple, elegant | Luxury, professional services |
tech_corporate |
Blue tones, geometric shapes | Enterprise, B2B |
| Type | Example | Description |
|---|---|---|
| None | "" |
Full bleed layout, slides take 78% width |
| URL | "https://example.com/bg.jpg" |
Image background with margins |
| Gradient | ["#ff6b6b", "#feca57", "#48dbfb"] |
Gradient background with margins |
| Voice | Language | Description |
|---|---|---|
cristina |
Spanish | Female voice |
enrique |
Spanish | Male voice |
susie |
English | Female voice (default) |
jeff |
English | Male voice |
custom |
Any | Use your ElevenLabs voice clone ID |
| Intention | Content Style | Best For |
|---|---|---|
informative |
Educational, value-driven, builds trust | Thought leadership, tutorials |
lead_generation |
Creates curiosity, soft CTA | Product awareness, funnels |
disruption |
Bold, provocative, scroll-stopping | Viral potential, brand awareness |
Leave custom_avatar_description empty to let Claude decide, or provide your own:
custom_avatar_description: "female marketing influencer, cool, working in tech"
Examples:
"a woman in her 20s with gym clothes""a bearded man in his 30s wearing a hoodie""a professional woman with glasses in business casual"Skip avatar generation entirely by providing a direct URL:
custom_avatar_image_url: "https://example.com/my-avatar.png"
Image should be portrait orientation, high quality, with the subject looking at camera.
Leave custom_script empty to let Claude write it, or provide your own:
custom_script: "This is my custom script. AI is changing how we create content..."
Guidelines for custom scripts:
| custom_avatar_description | custom_avatar_image_url | custom_script | What Claude Generates |
|---|---|---|---|
| Empty | Empty | Empty | Avatar + Script + Slides + Caption |
| Provided | Empty | Empty | Script + Slides + Caption |
| Empty | Provided | Empty | Script + Slides + Caption |
| Empty | Empty | Provided | Avatar + Slides + Caption |
| Provided | Provided | Provided | Slides + Caption only |
The final video uses a picture-in-picture (PiP) layout:
┌─────────────────────────────────┬──────┐
│ │ │
│ │ │
│ SLIDES (78%) │AVATAR│
│ │(22%) │
│ │ │
│ │ │
└─────────────────────────────────┴──────┘
┌─────────────────────────────────────────┐
│ BG ┌───────────────────────────┐ ┌────┐ │
│ │ │ │ │ │
│ │ SLIDES (74%) │ │AVA │ │
│ │ │ │TAR │ │
│ │ │ │20% │ │
│ └───────────────────────────┘ └────┘ │
└─────────────────────────────────────────┘
| Asset | Format | Location |
|---|---|---|
| Final Video | MP4 (1920×1080, 60fps) | Google Drive folder |
| Avatar Image | PNG (1024×1536) | tmpfiles.org (temporary) |
| Slide Images | PNG (1920×1080) | FAL CDN (temporary) |
| Voiceover | MP3 | tmpfiles.org (temporary) |
| Metadata | Row entry | Google Sheets |
| Column | Description |
|---|---|
| topic | Video topic |
| intention | Content intention used |
| brand_name | Brand mentioned |
| slide_style | Visual style used |
| content_theme | 2-3 word theme summary |
| script | Full voiceover script |
| caption | Ready-to-post caption with hashtags |
| num_slides | Number of slides generated |
| video_url | Google Drive link to final video |
| avatar_video_url | VEED talking head video URL |
| audio_url | Temporary audio URL |
| status | done/error |
| created_at | Timestamp |
| Service | Usage | Approximate Cost |
|---|---|---|
| Claude Sonnet 4 | ~2K tokens | ~$0.01 |
| OpenAI gpt-image-1 | 1 image (1024×1536) | ~$0.04-0.08 |
| FAL Flux Pro | 5-7 images (1920×1080) | ~$0.10-0.15 |
| ElevenLabs | ~100 words | ~$0.01-0.02 |
| VEED/FAL.ai | 1 video render | ~$0.10-0.20 |
| Creatomate | 1 video composition | ~$0.10-0.20 |
| Total | ~$0.35-0.65 per video |
Costs vary based on script length and current API pricing.
create-ai-screencast-videos-with-veed-and-automated-slides.json into n8nYOUR_*_API_KEY placeholders with your actual API keystopic, brand_name, target_audience, and trending_hashtagsslide_style and voice_selectionbackground, custom_avatar_description, and/or custom_scriptThis workflow can be exposed to Claude Desktop via n8n's Model Context Protocol (MCP) integration.
{
"mcpServers": {
"n8n-mcp": {
"command": "supergateway",
"args": [
"--streamableHttp",
"https://YOUR_N8N_INSTANCE.app.n8n.cloud/mcp-server/http",
"--header",
"authorization:Bearer YOUR_MCP_ACCESS_TOKEN"
]
}
}
}
Note: Install
supergatewayglobally first:npm install -g supergateway
| Issue | Solution |
|---|---|
| "Organization must be verified" | Verify at platform.openai.com/settings/organization/general |
| VEED authentication error | Re-add FAL.ai credential to VEED node |
| Google Drive "no binary field" | Ensure Download Video outputs to binary field |
| JSON parse error from Claude | Workflow has fallback content; check Claude node output |
| Slides not matching script | Increase seconds_per_slide for fewer slides |
| Avatar cut off in PiP | Avatar is designed for right-side placement |
| MCP "Server disconnected" | Install supergateway globally: npm install -g supergateway |
| Render timeout | Increase wait time in "⏳ Wait for Render" node |
| Version | Date | Changes |
|---|---|---|
| 2.1 | Jan 2026 | Renamed workflow, improved documentation with section sticky notes, consolidated setup information |
| 2.0 | Jan 2026 | Added dynamic slide count, background options, FAL Flux Pro for slides, improved PiP layout |
| 1.0 | Jan 2026 | Initial release with fixed slide count, basic composition |
Built with: