Create & Approve POV Videos with AI, ElevenLabs & Multi-Posting (TikTok/IG/YT)
POV Video Creator: Automating TikTok-Style Instagram Video Automation, Approval, and Multi-Platform Posting Using AI, ElevenLabs, Google Sheets, and Social Media APIs
Description
What Problem Does This Solve? 🎥
This workflow automates the creation, rendering, approval, and posting of TikTok-style POV (Point of View) videos to Instagram, with cross-posting to Facebook and YouTube. It eliminates manual video production, approval delays, and inconsistent posting schedules. It ensures high-quality content creation and distribution for social media managers and content creators
Target audience: Social media managers, content creators, small to medium-sized businesses, and n8n users familiar with AI tools, Google Sheets, and social media APIs
What Does It Do? 🌟
Generates daily POV video ideas using OpenAI
Creates images, videos, and audio with PIAPI.ai and ElevenLabs
Renders final videos with Creatomate
Manages approvals via email and Google Sheets
Posts approved videos to Instagram, Facebook, and YouTube
Tracks progress in a Google Sheet for transparency
Key Features
AI-driven idea generation and script creation
Automated media production with image, video, and audio synthesis
Email-based approval system for quality control
Cross-platform posting to Instagram, Facebook, and YouTube
Real-time tracking in Google Sheets and Google Drive
Error handling for rendering and posting failures
Setup Instructions
Prerequisites
n8n Instance**: Self-hosted or cloud n8n instance
API Credentials**:
OpenAI API: API key for idea generation, stored in n8n credentials
PIAPI.ai API: API key for image and video generation, stored in n8n credentials
ElevenLabs API: API key for audio generation, stored in n8n credentials
Creatomate API: API key for video rendering, stored in n8n credentials
Google Sheets/Drive API: OAuth2 credentials from Google Cloud Console with Sheets and Drive scopes
Gmail API: OAuth2 credentials from Google Cloud Console with Gmail scope
Instagram Graph API: User Access Token with instagram_content_publish permission from a Facebook App
Facebook Graph API: Access Token from the same Facebook App
YouTube API: OAuth2 credentials for YouTube uploads
Google Sheet**: A sheet named "POV Videos" with a tab "Instagram" and columns: Timestamp, ID, Subject, Topic, Caption, POV_Status, Prompt, Publish_Status, Link, Final Video, Approval, row_number
Creatomate Template**: A pre-configured template with video, audio, and text elements
Installation Steps
Import the Workflow:
Copy the workflow JSON from the “Template Code” section (to be provided)
Import it into n8n via “Import from File” or “Import from URL”
Configure Credentials:
Add API credentials in n8n’s Credentials section for OpenAI, PIAPI.ai, ElevenLabs, Creatomate, Google Sheets/Drive, Gmail, Instagram Graph, Facebook Graph, and YouTube
Assign credentials to respective nodes. For example:
In "Text-to-Image", use PIAPI.ai credentials: {{ $credentials.PIAPI }}
In "Render with Creatomate", use Creatomate credentials: {{ $credentials.Creatomate }}
In "Send Approval Request", use Gmail credentials
Set Up Nodes:
Schedule Trigger: Configure to run daily
Approval Email (Send Approval Request): Customize the HTML email template with approval/rejection links
Post to Social Media Nodes (Instagram Container, Facebook Posts, Post YouTube): Configure with your Instagram Business Account ID, Facebook Page ID, and YouTube channel details
Configure Google Sheet and Drive:
Create "POV Videos" Google Sheet with "Instagram" tab and specified columns
Share the sheet with your Google Sheets credential email
Create "Audio" and "Video" folders in Google Drive, noting their IDs
Test the Workflow:
Run manually to verify idea generation, media creation, and posting
Check email notifications, Google Sheet updates, and social media posts
Schedule the Workflow:
Enable "Schedule Trigger" and "Schedule Trigger1" for daily runs
Enable "Get Latest Approved Video" to poll at 7 PM daily
How It Works
High-Level Steps
Generate Video Ideas: Creates daily POV video concepts with OpenAI
Create Media: Produces images, videos, and audio using AI tools
Render Video: Combines media into a final video with Creatomate
Manage Approvals: Sends approval emails and processes decisions
Post to Platforms: Publishes approved videos to Instagram, Facebook, and YouTube
Detailed Descriptions
Detailed node descriptions are available in the sticky notes within the workflow (to be provided). Below is a summary of key actions
Node Names and Actions
Video Idea Generation and Script Creation
Schedule Trigger**: Initiates daily workflow
Get Title**: Fetches pending video ideas from Google Sheet
Generate Topics**: Uses OpenAI to create a new video idea
Format Row**: Structures the idea into a Google Sheet row
Insert new Prompt, Caption and Title/Topic**: Adds the idea to Google Sheet
Generate Ideas**: Produces 3 POV sequences
Generate Script**: Expands a sequence into a detailed script
Set Topics**: Stores the script for media creation
Media Creation
Text-to-Image**: Generates an image with PIAPI.ai
Get Image**: Retrieves the generated image
Generate Video Prompt**: Creates a video prompt from the image
Generate Video**: Produces a 5-second video with PIAPI.ai
Access Videos**: Retrieves the video URL
Store Video**: Updates Google Sheet with video URL
Generate Sound Prompt**: Creates an audio prompt
Text-to-Sound**: Generates a 20-second audio clip with ElevenLabs
Store Sound**: Uploads audio to Google Drive
Allow Access**: Sets audio file permissions
Video Rendering
Merge**: Combines script, video, and audio data
List Elements**: Formats data for Creatomate
Render with Creatomate**: Renders the final video
Check Video Status**: Routes based on render success/failure
Storage and Notification
Google Drive**: Uploads the rendered video
New Render Video Alert**: Sends success email
Failed Render**: Sends failure email
Render Video Link**: Updates Google Sheet with final video URL
Approval Process
Approval Email**: Sends approval request email
Handle Approval/Rejection1**: Processes approval/rejection via webhook
Video Update1**: Updates Google Sheet with approval status
Social Media Posting
Get Latest Approved Video**: Polls for approved videos
Check Approval**: Routes based on approval status
Instagram Container**: Creates Instagram media container
Post to Instagram**: Publishes to Instagram
Facebook Posts**: Posts to Facebook
Download Video**: Downloads video for YouTube
Post YouTube**: Uploads to YouTube
Mark Rejected**: Updates status for rejected videos
Update Google Sheet**: Updates publish status
Customization Tips
Expand Platforms**: Add nodes to post to other platforms
Modify Approval Email**: Update the Send Approval Request node to customize the HTML template
Alternative Notifications**: Add nodes for Slack or Telegram alerts
Adjust Video Duration**: Modify Generate Video node to change duration (default: 5 seconds)