Quote

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:

  1. OpenAI API key - for generating themes and prompts (2 models) https://openai.com/api/ 
  2. SerpAPI key - to get Google Trends https://serpapi.com/dashboard 
  3. Fal.ai API key - to access Google Veo3 https://fal.ai/dashboard/keys 
  4. Blotato API key - for posting on social media https://my.blotato.com/settings 
  5. 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:

  1. Cinematic shooting - professional quality
  2. The protagonist - random name, description of appearance
  3. Selfie shooting - an indication of using a selfie stick
  4. Emotional dialogue - viral content
  5. Frame dynamics - camera movement for engagement
  6. 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:

  1. Sends a prompt to the Veo3 queue
  2. Gets request_id to track status
  3. 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:

  1. When clicking 'Test workflow'Get trends
  2. Get trendsGenerating a theme
  3. Generating a themePrompt generation
  4. Prompt generationAdd to table
  5. Add to tableCreate a video

Video waiting cycle: 6. Create a videoWait 7. WaitVerification 8. VerificationIf 9. If (False) → Wait (repeat the cycle) 10. If (True) → Get the video

Publication: 11. Get the videoAdd video to the table 12. Add video to the tableSet Accounts 13. Set AccountsUpload 14. UploadTIKTOK

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.

Читайте также