#!/usr/bin/env python3 """ Video generation script using Google's Veo 3 API Generates an 8-second video with the prompt "video about a cat dancing" """ import os import time import google.generativeai as genai from typing import Optional from dotenv import load_dotenv load_dotenv() def setup_api_key() -> None: """Setup the Google AI API key from environment variable.""" api_key = os.getenv("GOOGLE_AI_API_KEY") if not api_key: raise ValueError( "GOOGLE_AI_API_KEY environment variable is required. " "Get your API key from https://aistudio.google.com/app/apikey" ) genai.configure(api_key=api_key) def generate_video( prompt: str, model_name: str = "veo-3.0-generate-preview" ) -> Optional[str]: """ Generate a video using the Veo 3 API. Args: prompt: Text prompt for video generation model_name: Model to use (veo-3.0-generate-preview or veo-3.0-fast-generate-preview) Returns: Video file URI if successful, None otherwise """ try: model = genai.GenerativeModel(model_name) print(f"Generating video with prompt: '{prompt}'") print("This may take 11 seconds to 6 minutes...") response = model.generate_content( prompt, generation_config=genai.GenerationConfig( temperature=0.7, ), ) if hasattr(response, "parts") and response.parts: for part in response.parts: if hasattr(part, "file_data"): print(f"Video generated successfully!") print(f"Video URI: {part.file_data.file_uri}") print("Note: Video will be available for 2 days") return part.file_data.file_uri print("No video generated in response") return None except Exception as e: print(f"Error generating video: {e}") return None def main(): """Main function to generate the cat dancing video.""" try: setup_api_key() prompt = "video about a cat dancing" # Try the standard model first video_uri = generate_video(prompt) if video_uri: print(f"\nāœ… Success! Video generated: {video_uri}") else: print("\nāŒ Failed to generate video") except ValueError as e: print(f"āŒ Setup error: {e}") except Exception as e: print(f"āŒ Unexpected error: {e}") if __name__ == "__main__": main()