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)