Google Veo3 Generator Pro - Automating viral video creation

Goal:
Creating a fully automated system for generating trending video content that saves hours of manual work and ensures a stable flow of viral content for social networks.
Scope of application:
For bloggers — regular content without effort
For SMM agencies — scaling video production
For business — viral marketing based on current trends
For arbitrageurs — a quick launch of advertising creatives

Process description
This automation is a complete system for automatically creating viral videos using Google Veo3 and publishing them on social networks. The system automatically receives current trends, generates a topic and a prompt for videos, creates videos via AI, saves results to Google Sheets and publishes them on TikTok.
Required API keys and settings
Main services:
- OpenAI API key - for generating themes and prompts (2 models) https://openai.com/api/
- SerpAPI key - to get Google Trends https://serpapi.com/dashboard
- Fal.ai API key - to access Google Veo3 https://fal.ai/dashboard/keys
- Blotato API key - for posting on social media https://my.blotato.com/settings
- Google Sheets OAuth2 - to save data (log in to your Google account at the touch of a button)
Detailed automation architecture
STAGE 1: LAUNCH AND GET TRENDS
1.1 Manual launch - When clicking 'Test workflow'
Purpose: Entry point to start automation
Settings:
- Type: Manual Trigger
- Purpose: Allows you to run workflow manually for testing or creating videos once
1.2 Getting trends - Get trends
Purpose: Gets trending topics from Google Trends
HTTP Request settings:
- Method: POST
- URL: https://serpapi.com/search?engine=google_trends_trending_now
- Authentication: SerpAPI account
- Body Parameters:
- engine: “google_trends_trending_now”
- geo: “RU” (gets trends for Russia)


What we get: An array of trending_searches with current trending queries that are used to generate video ideas.
STAGE 2: AI CONTENT GENERATION
2.1 Generating a theme - Generating a theme
Purpose: AI selects one of the trending topics and creates a short video topic
Connected components:
- OpenAI Chat Model1 (gpt-4o-mini)
Prompt:
You're an AI agent who should generate me a topic for a viral video made on Google veo3.
Describe the topic briefly in English - two or three words, without comments. Here are the current trending topics from which you should choose one: {{$json.trending_searches [1] .query}}, {{$json.trending_searches [2] .query}}, {{$json.trending_searches [3] .query}}, {{$json.trending_searches [4] .query}}, {{$json.trending_searches [5] .query}}, {{$json.trending_searches [6] .query}}, {{$json.trending_searches [7] .query}}, {{$json.trending_searches [8] .query}} {$json.trending_searches [9] .query}}, {{$json.trending_searches [10] .query}}, {{$json.trending_searches [11] .query}}
Input data: Trending topics from positions 1-11 from SerpAPI results.
The result: A short topic in English (2-3 words) based on current trends.
2.2 Prompt generation
Purpose: AI creates a detailed Google Veo3 prompt based on the chosen topic
Connected components:
- OpenAI Chat Model (gpt-4o)
Input data:
{{$json.output}}
(Topic generated by the previous node)
System prompt:
You are an AI designed to create a veo of 3 texts for a video to create a viral social media video on a given topic. The prompt should describe one 8-second frame. Indicate that you are shooting with a selfie stick held by the character. There should only be one main character to whom you give a random name.
Here is an example of an assignment
A cinematic shot of Chris (a 28-year-old man, large muscles, toned, athletic, wearing a sleeveless shirt) shooting a selfie video in an empty zoo. Chris yells emotionally: I snuck into the zoo to prove that penguins are friendly. The camera quickly moves to a group of penguins who are playing and looking cute.
Make sure that the length of your output is similar to the example. Let one sentence start with the character's name, followed by a dialogue sentence.
Generate a prompt in English.
Prompt structure:
- Cinematic shooting - professional quality
- The protagonist - random name, description of appearance
- Selfie shooting - an indication of using a selfie stick
- Emotional dialogue - viral content
- Frame dynamics - camera movement for engagement
- 8 seconds - optimal length for social media
The result: A detailed English prompt for Veo3, ready for creating a viral video.
STEP 3: SAVE DATA
3.1 Add to table - Add to table
Purpose: Saves the generated prompt to Google Sheets for tracking
Google Sheets settings:
- Operation: Append
- Document ID: 1G7WPS0JYBV5575LBSPPGWB3G9WE_XMOD7FI6ABAGLL4
- Sheet Name: Sheet1
- Columns Mapping:
- Status: “todo” (task status)
- Prompt: {{$json.output}} (generated prompt)
Table structure:
Prompt
Status
URL
[AI prompt]
todo
[empty]

STEP 4: VIDEO CREATION
4.1 Video creation — Create video
Purpose: Sends a video creation request via the Veo3 API
HTTP Request settings:
- Method: POST
- URL: https://queue.fal.run/fal-ai/veo3
- Authentication: Fal API key
- Body Parameters:
- prompt: {{$ ('Add to table') .item.json.prompt}}
What's going on:
- Sends a prompt to the Veo3 queue
- Gets request_id to track status
- Veo3 starts video generation (asynchronously)
The result:
{
“status”: “IN_QUEUE”,
“request_id”: “dab5d6d9-F5d1-4a17-8cfb-3a18ff367e30",
“response_url”:” ... “,
“status_url”:” ... “,
“queue_position”: 0
}


STEP 5: WAITING AND CHECKING STATUS
5.1 Expectation - Wait
Purpose: Pause before checking the generation status
Settings:
- Amount: 30 seconds
- Why: Veo3 takes time to generate videos, 30 seconds is a minimal pause
5.2 Status Check - Check
Purpose: Checks if the video is ready
HTTP Request settings:
- Method: GET
- URL: https://queue.fal.run/fal-ai/veo3/requests/ {{$ ('Create video') .item.json.request_id}} /status
- Authentication: Fal API key

Possible statuses:
- IN_QUEUE - in the queue
- IN_PROGRESS - generated
- COMPLETED - Done
- FAILED - error
5.3 Conditional Logic - If
Purpose: Checks status and decides what to do next
Condition:
{{$json.status}} equals “COMPLETED”
Logic:
- True (COMPLETED): Goes to receiving videos
- False (not ready): Returns to Wait (wait cycle)
It is important: A Wait → Check → If loop is created.
STEP 6: RETRIEVE AND SAVE VIDEOS
6.1 Getting a video - Get a video
Purpose: Downloads the finished video
HTTP Request settings:
- Method: GET
- URL: https://queue.fal.run/fal-ai/veo3/requests/ {{$ ('Create video') .item.json.request_id}}
- Authentication: Fal API key
The result:
{
“video”: {
“url”: "https://v3.fal.media/files/penguin/fKiVQAHafyY5hvWC585eU_output.mp4 “,
“content_type”: “video/mp4",
“file_name”: "output.mp4 “,
“file_size”: 2661251
}
}

6.2 Update the table - Add video to the table
Purpose: Updates the status and adds the video URL to Google Sheets
Google Sheets settings:
- Operation: Update
- Matching Column: Prompt
- Columns Mapping:
- Status: “done”
- URL: {{$json.video.url}}
- Prompt: {{$ ('Add to table') .item.json.prompt}}
The result is in the table:
Prompt
Status
URL
[AI prompt]
done
[video URL]
STAGE 7: POSTING ON SOCIAL MEDIA
7.1 Setting up accounts - Set Accounts
Purpose: Sets account IDs for various social platforms
JSON configuration:
{
“blotato_api_key”: “”,
“instagram_id”: “”,
“youtube_id”: “”,
“tiktok_id”: “”,
“facebook_id”: “”,
“facebook_page_id”: “”,
“threads_id”: “”,
“twitter_id”: “”,
“linkedin_id”: “”,
“pinterest_id”: “”,
“pinterest_board_id”: “”,
“bluesky_id”: “”,
“video_caption”: “{{$ ('Theme Generation') .item.json.output}}”
}
It is important: Fill in your real account IDs and the Blotato API key for the publication to work.
You can get them in the Settings section in Blotato https://my.blotato.com/settings

7.2 Uploading media - Upload
Purpose: Uploads videos to Blotato for publication
HTTP Request settings:
- Method: POST
- URL: https://backend.blotato.com/v2/media
- Headers:
- blotato-api-key: {{$ ('Set Accounts') .item.json.blotato_api_key}}
- Body Parameters:
- url: {{$ ('Get video') .item.json.video.url}}


The result: Blotato returns the internal URL of the uploaded video for use in posts.
7.3 Posting on TikTok - TIKTOK
Purpose: Creates and publishes a TikTok post
HTTP Request settings:
- Method: POST
- URL: https://backend.blotato.com/v2/posts
- Headers:
- blotato-api-key: {{$ ('Set Accounts') .item.json.blotato_api_key}}
JSON Body:
{
“post”: {
“target”: {
“targetType”: “tiktok”,
“isYourBrand”: false,
“DisabledDuet”: false,
“PrivacyLevel”: “PUBLIC_TO_EVERYONE”,
“IsaiGenerated”: false,
“DisabledStitch”: false,
“DisabledComments”: false,
“isBrandedContent”: false
},
“content”: {
“text”: “{{$ ('Set Accounts') .item.json.video_caption}}”,
“platform”: “tiktok”,
“MediaURLS”: ["{{$json.url}}"]
},
“accountID”: “{{$ ('Set Accounts') .item.json.tiktok_id}}”
}
}


Post settings:
- Publicity: PUBLIC_TO_EVERYONE
- Duets/Stitchy: Allowed
- Comments: Allowed
- AI Generated: false (important for algorithms)
Node connection diagram
Main stream:
- When clicking 'Test workflow' → Get trends
- Get trends → Generating a theme
- Generating a theme → Prompt generation
- Prompt generation → Add to table
- Add to table → Create a video
Video waiting cycle: 6. Create a video → Wait 7. Wait → Verification 8. Verification → If 9. If (False) → Wait (repeat the cycle) 10. If (True) → Get the video
Publication: 11. Get the video → Add video to the table 12. Add video to the table → Set Accounts 13. Set Accounts → Upload 14. Upload → TIKTOK
AI Connections:
- OpenAI Chat Model1 (gpt-4o-mini) → Generating a theme
- OpenAI Chat Model (gpt-4o) → Prompt generation
Setting up social media accounts:
In a node Set Accounts enter real IDs:
- tiktok_id - Your TikTok account ID on Blotato
- blotato_api_key is your Blotato API key
- The rest of the fields are for expansion to other platforms
Google Sheets structure:
Create a table with columns:
- Prompt - generated prompt
- Status - status (todo/done)
- URL - link to the finished video
Work features
Asynchronous processing:
- Veo3 does not create videos instantly (1-5 minutes)
- The system uses the Wait → Check → If cycle to wait
- When the status is “COMPLETED”, it goes to the next stage
Trending topics:
- Gets current trends from Google Trends for Russia
- AI selects one of the 11 most popular topics
- Creates content based on real trends
Video quality:
- Google Veo3 is the top AI model for video generation
- 8 seconds is the optimal length for TikTok
- Cinematic shooting for a professional look
Process tracking:
- All steps are logged to Google Sheets
- You can track the prompt, status, and the finished video
- The history of all videos created
The result of automation
What happens is:
- 8-second video high quality from Google Veo3
- Trending topic based on relevant searches
- Viral content with an emotional hero and selfie format
- Automated publishing on TikTok
- Logging the whole process in the table
Application:
- Content makers - automatic video creation
- SMM agencies - mass production of content
- Bloggers - regular TikTok posts
- Marketers - viral ads based on trends
Scaling:
- Can be run several times a day
- Expand to other platforms (Instagram, YouTube)
- Add more AI models for variety
This automation turns current trends into ready-made viral videos for TikTok in 5-10 minutes!
You can always get a JSON file and instructions in video format by joining our unique Automation club.