If you’ve been following the AI space or just scrolling through Twitter in the last couple of days, you’ve probably seen those VEO3-generated ads popping up everywhere. And for good reason. These things look amazing — and if no one told you, you’d never guess they were made by AI. Marketing videos that used to cost hundreds of thousands of dollars are now being made for literally under a dollar using AI.
As someone who doesn’t know much about marketing or design 😅, I was curious to see what I could come up with myself. So I built a simple app that lets anyone start generating these videos in seconds.
▶️ See the ad I generated in seconds for “Mercedes F1 Car Launch” — made entirely with VEO3. You won’t believe it’s AI:
🚀 Want to try it out? Test the live demo: VEO3 Ads Generator
🤔 New to VEO3? Read my previous post: Turn Any Topic into Viral AI Videos Using Google's VEO3 Model
🎬 What Are These Viral VEO3 Ads?
If you've been on Twitter lately, you've probably seen these incredibly realistic marketing videos popping up everywhere:
- IKEA furniture assembly ads that look professionally shot
- Tesla car commercials with cinematic quality
- Sneaker launch videos that rival Nike's production value
The secret? These aren't traditional video productions. They're AI-generated using Google's VEO3 model, and they're created using specially formatted prompts that unlock VEO3's hidden potential.
🔍 The Magic Behind Structured Prompts
What makes these ads so effective isn't just VEO3 itself - it's the structured prompt format that creators discovered. Instead of simple text descriptions, these prompts use markup languages like YAML and JSON:
# YAML Format Example scene: "Close-up of hands assembling IKEA furniture" character: "Person in casual clothing, focused expression" environment: "Modern living room, natural lighting" camera: "Handheld, intimate perspective"
{ "scene": "Luxury car driving through mountain roads", "character": "Confident driver, hands on steering wheel", "lighting": "Golden hour, dramatic shadows", "audio": "Engine purr, wind through windows" }
This structured approach works because VEO3 was trained on the entire internet - and the internet runs on structured data formats like these. When you feed VEO3 a properly formatted prompt, it understands exactly what you want.
🛠️ Building The Ads Video Generation
I built a simple system that automates the entire video generation workflow. Here's how it works:
1️⃣ Prompt Library Management
I started by diving deep into Twitter to collect any good prompts I could find from the community (Thanks to everyone for sharing them publicly!). There are tons of people experimenting with VEO3 designs right now, so I probably missed a lot of amazing prompts out there!
To make them all work together in a standard format, I converted everything into JSON and compiled a small prompt library that we can use as reference for our ad creative generation:
# Each prompt is a Python dict with structured data amazon_gamer_room = { "name": "Amazon Gamer Room Setup", "scene": "Close-up of hands unboxing gaming gear", "character": "Gamer in casual hoodie, excited expression", "environment": "Modern bedroom, RGB lighting, gaming setup", "camera": "Handheld, first-person perspective", "lighting": "Colorful RGB ambiance, dramatic shadows", "audio": "Unboxing sounds, excited breathing" }
📚 Want to see all the prompts? Check out the complete prompt library on GitHub - there are prompts for IKEA, Tesla, Nike, Jeep, and many more!
2️⃣ AI-Powered Prompt Generation
The core of the system is an AI agent that takes a brand brief and transforms it using inspiration from the prompt library:
async def generate_veo3_video_prompt(ad_idea: str, inspiration_prompt: str): """Generate a VEO3-optimized prompt based on user idea and inspiration""" system_prompt = """ Edit a structured prompt object (JSON) based on the provided user creative idea. # Instructions: - Adapt the inspiration prompt to the user creative direction including style, room, background, elements, motion, ending, text, keywords - Do not modify any part of the structure unless the user explicitly requests it. - Maintain original structure and intention unless asked otherwise. # **Output**: Your response should be in the following structure: { "title": "Title of the video", "prompt": "Prompt for the video" } """ user_message = f""" Create a VEO3 prompt for this ad idea: {ad_idea} Follow and get instructions directly from this prompt: {inspiration_prompt} """ result = await ainvoke_llm( model="gpt-4.1", system_prompt=system_prompt, user_message=user_message, temperature=0.3, response_format=VideoDetails # Structured output ) return result
💡 Pro tip: I use structured output to make the LLM return both the ad title and the video prompt in a consistent format:
class VideoDetails(TypedDict): title: str = Annotated[str, "Title of the video"] prompt: str = Annotated[str, "Prompt for the video"]
This ensures we always get clean, structured data that's easy to work with.
3️⃣ VEO3 Integration via Kie AI
There are lots of ways to use Google's VEO3 model currently, but the best one I found is Kie AI. They offer great pricing and don't require a subscription, so it's perfect for testing:
def start_video_generation(prompt: str, aspect_ratio: str = "16:9", model: str = "veo3_fast"): """Submit video generation request to Kie AI""" url = "https://api.kie.ai/v1/video/generate" payload = { "prompt": prompt, "model": model, "aspect_ratio": aspect_ratio } headers = { "Authorization": f"Bearer {os.environ['KIE_API_TOKEN']}", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) if response.status_code == 200: return response.json().get("taskId") else: raise Exception(f"Failed to start generation: {response.text}")
📌 What we need to provide to Kie AI:
- Prompt: The structured video description we generated
- Model: Either
veo3_fast
(cheaper/faster) orveo3
(higher quality/more expensive) - Aspect ratio:
16:9
for horizontal or9:16
for vertical videos
4️⃣ Automated Video Generation
The system handles the complete workflow automatically:
async def run_workflow(inputs): """Complete video generation workflow""" try: # 1. Generate optimized prompt video_details = await generate_veo3_video_prompt( inputs["ad_idea"], inputs["inspiration_prompt"] ) # 2. Submit to VEO3 taskid = start_video_generation( video_details.prompt, inputs["aspect_ratio"], inputs["model"] ) # 3. Wait for completion result = wait_for_completion(taskid) # 4. Log and return results if result.get("status") == "completed": video_url = result.get("response", {}).get("resultUrls", [])[0] return { "title": video_details.title, "prompt": video_details.prompt, "video_url": video_url } except Exception as e: print(f"Workflow error: {str(e)}") return None
🎨 Streamlit App
I know some people just want to test the power of the model and don't care about the code 😄, so I built a Streamlit web app that allows to get started easily, you just need to setup your API keys and you're good to go:
# Streamlit app for easy video generation st.title("🎬 AI Video Generator") # User inputs video_idea = st.text_area("Describe your video concept:") selected_prompt = st.selectbox("Choose prompt inspiration:", prompt_options) aspect_ratio = st.selectbox("Aspect ratio:", ["16:9", "9:16"]) model = st.selectbox("Model:", ["veo3_fast", "veo3"]) if st.button("🎬 Generate Video"): with st.spinner("Generating your video..."): result = asyncio.run(run_workflow({ "ad_idea": video_idea, "inspiration_prompt": selected_prompt['prompt'], "aspect_ratio": aspect_ratio, "model": model })) if result: st.success("✅ Video generated successfully!") st.video(result["video_url"])
💰 Cost Breakdown
The economics are incredible:
- VEO3 Fast: ~$0.40 per video (or $2 per video with the higher quality VEO3)
- GPT-4 for prompt generation: ~$0.02 per request
- Total cost per video: under $0.50
Compare this to traditional video production costs of $10,000-$100,000+ and the value proposition is obvious.
📊 Keeping Track of Everything
One thing I found super helpful was that all the videos and prompts generated are automatically saved to an Excel file, so you can review them whenever you want. This creates a nice history of:
- Video titles and prompts that were generated
- Direct links to the video files
- Generation timestamps for tracking
- Model settings used (VEO3 fast vs VEO3)
- Aspect ratios chosen
This way, you can easily go back and see what worked well, reuse successful prompts, or share specific videos with others. It's like having a personal library of all your AI-generated content!
🔗 Try It Yourself
If you want to try it right now, you can use the free app I deployed here:
👉 https://veo3-ads-generator.streamlit.app/
But if you prefer to check out the code and run it on your own machine, here’s how to get started:
1- Clone the repository from 🌐 GitHub
2- Install the required dependencies:
cd viral-ai-vids/video-ads-generation python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -r requirements.txt
3- Create a .env file and add your API keys:
First, create an account on Kie AI. as I said before, their platform currently offers the best pricing options for accessing the VEO3 model. Once registered, generate your API key from your Kie AI dashboard.
For AI models, I usually use OpenRouter to access various LLMs in one place — but you can use any other provider like OpenAI, Claude, or DeepSeek, since LangChain supports them all.
Now, create a .env file and add your API keys:
KIE_API_TOKEN=your_kie_ai_token_here OPENROUTER_API_KEY=your_openrouter_key_here # For LLM access
4- Run the script directly:
python main.py
5- Or if you prefer a more user-friendly interface, run the Streamlit app:
streamlit run streamlit_app.py
The app will open in your browser where you can:
- 📝 Add your API keys
- 💡 Enter your video idea
- 🎨 Choose prompt inspiration from the library
- ⚙️ Select VEO3 model and aspect ratio
- 🎬 Generate professional marketing videos
- 📥 Download the video
🚀 What This Means for Everyone
We're witnessing a massive shift in content creation. The ability to create professional-quality video content for under a dollar changes everything:
- Small businesses can now compete with major brands without huge budgets
- Content creators can experiment freely without financial constraints
- Marketing agencies can scale video services without massive overhead
And we're just getting started! Right now we're limited to 8-second videos, but that's temporary. The models are improving rapidly, and the community keeps discovering new creative techniques daily.
The real exciting part? This is just VEO3. Imagine what's coming next!
🎬 Ready to Get Started?
The barrier to entry is incredibly low - just a laptop, some API credits, and curiosity. While others are still figuring out how to use these tools manually, you could be generating professional marketing videos at scale.
The question isn't whether AI will transform marketing - it's whether you'll be part of that transformation from the beginning.
What do you think about this approach? Have you experimented with Google VEO3? Share your experiences in the comments below!
Top comments (0)