Create AI screencast videos with Claude, VEED, OpenAI and automated slides

Create AI screencast videos with VEED and automated slides

Overview

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.

What It Does

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

Pipeline Breakdown

| 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) |

Required Connections

API Keys (entered in Configuration node)

| 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-1 requires organization verification. Go to https://platform.openai.com/settings/organization/general to verify.

n8n Credentials (connect in n8n)

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

Configuration Options

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 }

Slide Style Options

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

Background Options

| 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 Options

| 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 Types

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

Custom Avatar & Script Options

Custom Avatar Description

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"

Custom Avatar Image URL

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.

Custom Script

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: Keep it 25-40 seconds when read aloud (60-100 words) Avoid special characters for TTS compatibility Write naturally, as if speaking

Behavior Matrix

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

Video Layout

The final video uses a picture-in-picture (PiP) layout:

Without Background (Full Bleed) ┌─────────────────────────────────┬──────┐ │ │ │ │ │ │ │ SLIDES (78%) │AVATAR│ │ │(22%) │ │ │ │ │ │ │ └─────────────────────────────────┴──────┘

With Background (Margins + Rounded Corners) ┌─────────────────────────────────────────┐ │ BG ┌───────────────────────────┐ ┌────┐ │ │ │ │ │ │ │ │ │ SLIDES (74%) │ │AVA │ │ │ │ │ │TAR │ │ │ │ │ │20% │ │ │ └───────────────────────────┘ └────┘ │ └─────────────────────────────────────────┘

Output

Per Video Generated

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

Google Sheets Columns

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

Estimated Costs Per Video

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

Setup Checklist

Step 1: Import Workflow [ ] Import create-ai-screencast-videos-with-veed-and-automated-slides.json into n8n

Step 2: Configure API Keys [ ] Open the ⚙️ Workflow Configuration node [ ] Replace all YOUR_*_API_KEY placeholders with your actual API keys [ ] Verify your OpenAI organization at https://platform.openai.com/settings/organization/general

Step 3: Connect n8n Credentials [ ] Click on 🎬 Generate Talking Head (VEED) node → Add FAL.ai credential [ ] Click on 📤 Upload to Drive node → Add Google Drive OAuth2 credential [ ] Click on 📝 Log to Sheets node → Add Google Sheets OAuth2 credential

Step 4: Configure Storage [ ] Update the 📤 Upload to Drive node with your Google Drive folder URL [ ] Update the 📝 Log to Sheets node with your Google Sheets URL [ ] Create column headers in your Google Sheet (see Output section)

Step 5: Customize Content [ ] Update topic, brand_name, target_audience, and trending_hashtags [ ] Choose your preferred slide_style and voice_selection [ ] Optionally configure background, custom_avatar_description, and/or custom_script

Step 6: Test [ ] Execute the workflow [ ] Check Google Drive for the output video [ ] Verify metadata was logged to Google Sheets

MCP Integration (Optional)

This workflow can be exposed to Claude Desktop via n8n's Model Context Protocol (MCP) integration.

To enable MCP:

Add a Webhook Trigger node to the workflow (in addition to the Manual Trigger) Connect it to the ⚙️ Workflow Configuration node Go to Settings → Instance-level MCP → Enable the workflow Configure Claude Desktop with your n8n MCP server URL

Claude Desktop Configuration (Windows):

{ "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 supergateway globally first: npm install -g supergateway

Limitations & Notes

Technical Limitations

tmpfiles.org**: Temporary file URLs expire after ~1 hour. Final videos are safe in Google Drive. VEED processing**: Takes 1-3 minutes for the talking head. Creatomate processing**: Takes 30-60 seconds for composition. Total workflow time**: ~3-5 minutes per video.

Content Considerations

Scripts are optimized for 25-40 seconds (TTS-friendly) Avatar images are AI-generated (not real people) Slides are dynamically generated based on script length Slide count: 5-7 slides depending on script duration

Best Practices

Start simple: Test with default settings before customizing Review scripts: Claude generates good content but review before posting Monitor costs: Check API usage dashboards weekly Use backgrounds: Adding a background image creates a more polished look Match voice to content: Use Spanish voices for Spanish content

Troubleshooting

| 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 History

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

Credits

Built with: n8n** - Workflow automation Anthropic Claude** - Script & slide prompt generation OpenAI** - Avatar image generation FAL.ai** - Slide image generation (Flux Pro) ElevenLabs** - Voice synthesis VEED Fabric** - AI lip-sync video rendering Creatomate** - Video composition Google Workspace** - Storage & logging

0
Downloads
86
Views
8.74
Quality Score
beginner
Complexity
Created:2/13/2026
Updated:3/27/2026

🔒 Please log in to import templates to n8n and favorite templates

Workflow Visualization

Loading...

Preparing workflow renderer

Comments (0)

Login to post comments