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

⚑ 136 views · 🎬 Content Creation & Video

Description

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

StepToolWhat Happens
1. Script GenerationClaude Sonnet 4Creates hook, script (25-40 sec), slide prompts, caption, and avatar description
2. Avatar GenerationOpenAI gpt-image-1Generates photorealistic portrait image (1024Γ—1536)
3. Slide GenerationFAL Flux ProCreates 5-7 professional slides (1920Γ—1080) with text overlays
4. VoiceoverElevenLabsConverts script to natural speech (multiple voice options)
5. Talking HeadVEED Fabric 1.0Lip-syncs avatar to audio, creates 9:16 talking head video
6. Video CompositionCreatomateCombines slides + avatar in 16:9 PiP layout
7. StorageGoogle DriveUploads final MP4
8. LoggingGoogle SheetsRecords all metadata (script, caption, URLs, timestamps)

Required Connections

API Keys (entered in Configuration node)

ServiceKey TypeWhere to Get
AnthropicAPI Keyhttps://console.anthropic.com/settings/keys
OpenAIAPI Keyhttps://platform.openai.com/api-keys
ElevenLabsAPI Keyhttps://elevenlabs.io/app/settings/api-keys
FAL.aiAPI Keyhttps://fal.ai/dashboard/keys
CreatomateAPI Keyhttps://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)

NodeCredential TypePurpose
🎬 Generate Talking Head (VEED)FAL.ai APIVEED video rendering
πŸ“€ Upload to DriveGoogle Drive OAuth2Store final videos
πŸ“ Log to SheetsGoogle Sheets OAuth2Track 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

StyleDescriptionBest For
dark_professionalDark gradients, white text, sleek lookTech, SaaS, premium brands
light_modernLight backgrounds, dark text, cleanCorporate, educational
vibrant_colorfulBold colors, energetic, eye-catchingSocial media, startups
minimalistLots of whitespace, simple, elegantLuxury, professional services
tech_corporateBlue tones, geometric shapesEnterprise, B2B

Background Options

TypeExampleDescription
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

VoiceLanguageDescription
cristinaSpanishFemale voice
enriqueSpanishMale voice
susieEnglishFemale voice (default)
jeffEnglishMale voice
customAnyUse your ElevenLabs voice clone ID

Intention Types

IntentionContent StyleBest For
informativeEducational, value-driven, builds trustThought leadership, tutorials
lead_generationCreates curiosity, soft CTAProduct awareness, funnels
disruptionBold, provocative, scroll-stoppingViral 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:

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:

Behavior Matrix

custom_avatar_descriptioncustom_avatar_image_urlcustom_scriptWhat Claude Generates
EmptyEmptyEmptyAvatar + Script + Slides + Caption
ProvidedEmptyEmptyScript + Slides + Caption
EmptyProvidedEmptyScript + Slides + Caption
EmptyEmptyProvidedAvatar + Slides + Caption
ProvidedProvidedProvidedSlides + 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

AssetFormatLocation
Final VideoMP4 (1920Γ—1080, 60fps)Google Drive folder
Avatar ImagePNG (1024Γ—1536)tmpfiles.org (temporary)
Slide ImagesPNG (1920Γ—1080)FAL CDN (temporary)
VoiceoverMP3tmpfiles.org (temporary)
MetadataRow entryGoogle Sheets

Google Sheets Columns

ColumnDescription
topicVideo topic
intentionContent intention used
brand_nameBrand mentioned
slide_styleVisual style used
content_theme2-3 word theme summary
scriptFull voiceover script
captionReady-to-post caption with hashtags
num_slidesNumber of slides generated
video_urlGoogle Drive link to final video
avatar_video_urlVEED talking head video URL
audio_urlTemporary audio URL
statusdone/error
created_atTimestamp

Estimated Costs Per Video

ServiceUsageApproximate Cost
Claude Sonnet 4~2K tokens~$0.01
OpenAI gpt-image-11 image (1024Γ—1536)~$0.04-0.08
FAL Flux Pro5-7 images (1920Γ—1080)~$0.10-0.15
ElevenLabs~100 words~$0.01-0.02
VEED/FAL.ai1 video render~$0.10-0.20
Creatomate1 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

Step 2: Configure API Keys

Step 3: Connect n8n Credentials

Step 4: Configure Storage

Step 5: Customize Content

Step 6: Test


MCP Integration (Optional)

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

To enable MCP:

  1. Add a Webhook Trigger node to the workflow (in addition to the Manual Trigger)
  2. Connect it to the βš™οΈ Workflow Configuration node
  3. Go to Settings β†’ Instance-level MCP β†’ Enable the workflow
  4. 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

Content Considerations

Best Practices

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

Troubleshooting

IssueSolution
”Organization must be verified”Verify at platform.openai.com/settings/organization/general
VEED authentication errorRe-add FAL.ai credential to VEED node
Google Drive β€œno binary field”Ensure Download Video outputs to binary field
JSON parse error from ClaudeWorkflow has fallback content; check Claude node output
Slides not matching scriptIncrease seconds_per_slide for fewer slides
Avatar cut off in PiPAvatar is designed for right-side placement
MCP β€œServer disconnected”Install supergateway globally: npm install -g supergateway
Render timeoutIncrease wait time in ”⏳ Wait for Render” node

Version History

VersionDateChanges
2.1Jan 2026Renamed workflow, improved documentation with section sticky notes, consolidated setup information
2.0Jan 2026Added dynamic slide count, background options, FAL Flux Pro for slides, improved PiP layout
1.0Jan 2026Initial release with fixed slide count, basic composition

Credits

Built with:

πŸ”— Nodes Used

Google Sheets, HTTP Request, Google Drive

πŸ“₯ Import

Download workflow.json and import into n8n: Workflow menu β†’ Import from File

πŸ“– Importing guide Β· πŸ”‘ Credential setup