Skip to main content

Making of the Veo Documentary

2 min read By Craig Merry
AI Video Generation Veo Python Aesthetics

Making of the Veo Documentary

I’ve been experimenting with Google’s new Veo 3.1 video generation model to create a series of atmospheric background clips for a quote-based political documentary. The goal was to produce high-quality, 9:16 vertical video clips that feel cinematic, moody, and cohesive without needing a traditional film crew.

The Vision

The concept was simple yet ambitious: visualize a series of powerful quotes through abstract and symbolic imagery. Instead of literal representations, I wanted textures, shadows, and atmospheres—rust, smoke, rain on glass, and isolated monuments in fog.

I curated a list of 15 specific scenes, ranging from “Slow cinematic shot of soft dust particles” to “Extreme close-up of heavy iron chains.” Each prompt was carefully crafted to emphasize lighting (chiaroscuro), color palette (desaturated teal/grey), and mood (melancholic, grave).

The Tech Stack

I built a Python script veo_documentary_generator.py using the google-genai SDK.

Key features of the script:

  • Configuration: Defines a list of prompts with duration and names.
  • Client: Initializes the Google GenAI client with my API key.
  • Generation: Calls api_client.models.generate_videos with model='veo-3.1-generate-preview'.
  • Handling: Saves the output MP4 files locally.

Challenges encountered

1. API Rate Limits

Generating high-quality AI video is computationally expensive. During the process, I hit RESOURCE_EXHAUSTED errors when trying to generate all 15 clips in one go. The Veo model has strict quotas on concurrent or daily usage.

I had to adapt by:

  • Adding pauses between generations.
  • Splitting the job into smaller batches (e.g., generating indices 10-15 separately).
  • Implementing retry logic (manual in this case, but automated would be better for production).

2. Model Versioning

I initially had some trouble finding the correct model name string. The SDK documentation and the actual available models can sometimes drift. I used a small utility script to list all available models on my account to find that veo-3.1-generate-preview was the correct identifier.

The Result

Despite the rate limits, the results are stunning. The model understood the “documentary style” instruction perfectly—delivering static cameras, slow movements, and heavy film grain that matches the somber tone of the project.

I’m now moving into post-production, where I’ll overlay the text quotes onto these generated backdrops. It’s a fascinating glimpse into the future of solopreneur filmmaking.