π¬ GPT-4o, RunwayML, ElevenLabs for Social Media
β‘ 1,375 views Β· π¬ Content Creation & Video
π‘ Pro Tip β Since TikTok doesnβt have a public API, getting data usually means fragile HTTP scraping. ScraperNode is a community node that gives you clean JSON for TikTok profiles, videos, and comments β drop it into your workflow and skip the parsing.
Description
π₯ AI Tour Video Generator with GPT-4o, RunwayML & ElevenLabs for Social Mediaβ
This n8n workflow generates 20-second faceless videos for social media by combining AI-generated images, audio, and video clips for a given tour destination.
The output is a ready-to-publish video file, which can be pushed to social platforms and logged in a tracking sheet.
βοΈ Workflow Overview
This system is divided into 4 main sections:
- π§ Generate Image Prompts
- π¨ Generate Media (Images, Videos, Audio)
- π οΈ Render & Upload
- π Future Enhancements
π Integration Setup Table
| Integration | Service Used | Setup Instruction |
|---|---|---|
| OpenAI | GPT-4o (Prompt Generation) | Get API Key and configure in n8n |
| Google Sheet | Idea I/O tracking | Connect Google account with OAuth/Credentials in n8n |
| Piapia API | AI Image Generation | Sign up at piapia.ai and get API key |
| Runway API | AI Video Generation | Register at runwayml.com for access |
| ElevenLabs | AI Voice Generation | Sign up at elevenlabs.io for API key |
| CreateMate API | Render Final Video | Visit createmate.ai to access API |
| Google Drive | Upload/Share Final Video | Use n8n Google Drive node to configure credentials |
β Required Services & Tools
Ensure you have active accounts with the following tools and services:
- β OpenAI (GPT-4o + Embeddings)
- β Google Sheets (for destination ideas and tracking)
- image.png
- β Piapia API (Image generation)
- β RunwayML API (Video generation)
- β ElevenLabs API (Voiceover TTS)
- β Google Drive (Storage & Sharing)
- β CreateMate (Video Rendering)
- β Social Media Scheduler (Optional - Zapier, Buffer, Make.com)
π§ 1. Generate Image Prompts
> Purpose: Prepares the content idea and generates visual prompts.
| Step | Node Name | Function |
|---|---|---|
| π Trigger | Schedule or Manual | Starts the workflow |
| π₯ Grab Idea | Read Sheet | Pulls destination idea from Google Sheet |
| βοΈ Set Content | Manual Input | Adds structure/narrative to the idea |
| π Split | Split Out | Breaks input into chunks |
| π€ GPT Agent | Image Prompt Agent | Uses GPT-4o to generate creative image prompts |
| π§Ή Clean | Remove \n | Cleans up formatting |
| π Save | Set Prompts | Finalizes prompts for next stage |
πΌοΈ 2. Generate Media
π¨ Generate Images
| Step | Function |
|---|---|
| Generate Image | Calls Piapia API with AI-generated prompts |
| Wait | Adds delay for rendering (90 sec) |
| Get Images | Retrieves final images for video |
π₯ Generate Videos
| Step | Function |
|---|---|
| Generate Video | Calls RunwayML to generate video clips from the prompts |
| Wait | 2-minute delay to allow video generation |
| Get Videos | Fetches completed video clips |
π Generate Audio
| Step | Function |
|---|---|
| Update Status | Logs progress in Google Sheet |
| Sound Agent | Gemini or GPT generates narration text |
| Set Audio | Formats narration for voice synthesis |
| Generate Audio | Uses ElevenLabs for realistic voiceover |
| Upload to Drive | Saves final audio to Google Drive |
| Share File | Creates sharable URL for audio file |
π οΈ 3. Render & Upload
> Purpose: Combines all elements (image, video, audio) into a single output and prepares for social media.
| Step | Function |
|---|---|
| Merge | Combines images, videos, and audio |
| Split Out Parts | Breaks content for rendering |
| Render Video | Uses CreateMate to render the final 20-second video |
| Wait | Short delay to complete rendering |
| Download Video | Saves output video locally or on Drive |
| Update Sheet | Logs final video URL/status in Google Sheet |
| Social Upload | (Coming Soon) Post to Instagram, YouTube Shorts, TikTok, etc. |
π§© Pre-Conditions
Before running the workflow:
- β Google Sheet should be created with destination ideas
- β All API keys must be configured in n8n
- β Google Drive folder must exist for output videos
- β Sufficient credit/quota must be available on AI platforms
- β Internet access must be stable for external API calls
π Outcome
- A polished 20-second travel destination video
- Combines AI visuals, short clips, and AI narration
- Ready for instant social media upload
- Fully automated from idea to video file
π§ Tech Stack Summary
| Component | Tools Used |
|---|---|
| Language Model | GPT-4o (OpenAI), Gemini (Google) |
| Image Generator | Piapia API |
| Video Generator | RunwayML |
| Audio Generator | ElevenLabs |
| Storage | Google Drive |
| Video Composer | CreateMate API |
| Orchestration | n8n |
π Future Enhancements
β Smart Enhancements
- Dynamic hashtags & captions via AI
- Auto-post to TikTok, Instagram, YouTube via Buffer/Zapier
- Scene detection + matching B-roll
- Multilingual narration (e.g., Arabic, French, Malay)
- A/B testing of video versions to analyze performance
π§ͺ Testing Add-ons
- Add preview screen before upload
- Error tracking & retry flow
- Manual override before publishing
π§° Customization Guide
| Element | How to Customize |
|---|---|
| βοΈ Prompt Format | Change structure inside Set Content or Prompt Agent |
| π Destination Ideas | Modify Google Sheet for different destinations/categories |
| π¨ Image Style | Customize prompt to Piapia (e.g., βin Pixar styleβ, β3D renderβ) |
| ποΈ Voiceover Script | Adjust tone/structure in the Sound Agent |
| π Posting Schedule | Use Zapier/Buffer for timed posting |
| π― Target Duration | Adjust number of clips or frame duration |
π Community Value
This workflow is ideal for:
- πΈ Travel content creators
- π Destination marketers
- ποΈ Tourism boards
- π§³ Travel SMEs looking for automation
Feel free to fork, remix, or request a JSON export in the comments below!
π Nodes Used
Google Sheets, HTTP Request, Google Drive, Schedule Trigger, AI Agent, OpenAI Chat Model
π₯ Import
Download workflow.json and import into n8n:
Workflow menu β Import from File