Four AI services orchestrated into one coherent pipeline. Source video in, localized derivative video out — for under $1.
Role: Solo Developer·Timeline: 3 months production·Status: Active deployment
01
TranscribeWhisper Large (self-hosted)
02
RewriteGemini — preserve meaning
03
Voicemulti-language TTS
04
Match footageVertex AI + Qdrant
05
AssembleFFmpeg (GPU-accelerated)
The business problem
A media localization agency wanted to adapt source videos into new, market-specific variations — different languages, audiences, and content niches. The requirement: produce genuinely derivative videos (new assembled footage, rewritten scripts, new voiceovers) rather than 1:1 translations, so each output is a distinct asset built for its target market.
The use case was a custom commercial requirement, not an off-the-shelf product — nothing on the market could do it. The client wanted to test a content-scaling hypothesis: could AI adapt source material into new variations at sufficient quality and volume to make the operation economically viable?
What made this hard
A naive approach — translate, re-voice, and republish the same footage — fails for two reasons:
Originality — reusing the source footage and structure produces a near-duplicate; the output has to be a genuinely new asset
Distinctness at scale — every output needs to be visually and structurally distinct, not a copy of the source
The system needed to produce videos with:
New visual footage (assembled from a library, not the source)
All while remaining semantically coherent — the new visuals had to actually match what the new audio was saying
Architecture: two-stage pipeline
Stage 1: library population
The system first builds a searchable visual library:
User submits video URLs in bulk via Telegram bot (queue-based processing)
Videos downloaded server-side, then segmented by scene detection (cut detection, not fixed intervals)
Each segment gets a semantic embedding via Vertex AI
Embeddings + segments stored locally in Qdrant vector database
Each segment also gets a JSON description of its content (improves matching accuracy later)
Architectural decision worth noting: the previous implementation stored embeddings in Firebase, which was expensive and unnecessary. I migrated everything to a locally-hosted Qdrant instance, eliminating the recurring database costs entirely. Only embedding creation costs money now — storage and retrieval are free.
Stage 2: new video generation
When the client wants to produce a new video:
Submit source link + configuration (language, voice, music, emoji, subtitles — all selectable via bot)
FFmpeg extracts audio from source video
Audio transcribed via self-hosted Whisper Large (locally hosted to avoid API costs at scale)
Transcript rewritten by Gemini — preserves semantic meaning while changing phrasing
Rewritten script translated to target language
Multi-language TTS generates voiceover in selected voice/language
Vertex AI matches new audio segments to library footage via embedding similarity
FFmpeg assembles final video: matched footage + new audio + selected enhancements (background music, sound effects, memes, subtitles)
Delivered to client via Telegram
Key technical decisions
Why Vertex AI for embeddings
OpenAI didn't expose API access to the specific video embedding model needed at the time. Local alternatives would be expensive to run. Vertex AI offered the best cost-quality balance for production use.
Why self-hosted Whisper
At scale, API costs for transcription become significant. Self-hosting on local GPU eliminated recurring transcription expense entirely.
Why multi-language TTS via reseller provider
Instead of subscribing directly with rigid plan-based API limits, I used a pay-as-you-go reseller. Same quality output, no subscription lock-in, easier cost scaling.
Why Qdrant locally
Vector database hosted on a local server eliminated cloud database recurring costs. The full library lived on a single home server (i5 10th gen + GTX 1070).
Cost engineering
Per-video cost breakdown for a 20-minute output:
Embedding creation (one-time per source video): negligible
Total per video: under $1, even for long-form 20-minute content.
This is the kind of cost structure that makes large-scale localization economically viable — manually localizing a 20-minute video would take a designer/editor 8–15 hours of work.
Production setup
Deployed on home server (i5-10K + GTX 1070, 16GB RAM)
Throughput: ~2 videos per hour for 20-minute outputs (assembly is the bottleneck)
Scalable design: architecture supports parallel deployment across multiple GPU nodes (didn't require high-end cards — 2060/3060 sufficient for this workload)
Category-based embedding namespaces (e.g., separate libraries for cooking content, gaming content) — keeps semantic matching relevant within domains
Challenges solved
1. Embedding quality for visual matching
Initial implementation produced poor semantic matches — new audio about Topic X would get visually unrelated footage. Solution: augmented each video segment's embedding with a JSON content description, dramatically improving match relevance.
2. Pacing and rhythm in assembled videos
Auto-assembled videos initially looked unnatural — segments too short (under 1.5s) or too long (over 15s), character cuts at awkward moments. Built constraints into the assembly logic: minimum/maximum segment durations, avoiding repeat segments within proximity, audio level normalization.
3. Migration from Firebase to local Qdrant
Inherited architecture stored embeddings in Firebase at recurring cost. Migrated entire pipeline to locally-hosted Qdrant, eliminating ongoing database expense entirely.
4. Whisper translation quality
Standard Whisper translations sometimes produced awkward output. Added Gemini as a rewriting layer that improved both meaning preservation and natural language flow in the target language.
Outcome
< $1
Per 20-minute video produced
4+
AI services orchestrated
~2/hour
Throughput for 20-min outputs
3 mo
Active production use
End-to-end automation — client submits a URL via Telegram, receives ready-to-publish video without intermediate manual steps. Sub-$1 cost per 20-minute output. Scalable architecture designed to expand across multiple GPU instances and category-specific libraries.
Tech stack
Language
Python
Video Processing
FFmpeg (GPU-accelerated)
Embeddings
Vertex AI
Transcription
Whisper Large (self-hosted)
LLM Rewriting
Gemini
Voice Synthesis
Multi-language TTS
Vector Database
Qdrant (self-hosted)
Interface
Telegram Bot
What this demonstrates
Multi-model AI orchestration — coordinated 4+ AI services into a single coherent pipeline
Semantic understanding of video content — embedding-based matching for visual-audio coherence
End-to-end product engineering — from raw input URL to finished deliverable, all automated
Cost optimization through architecture — strategic decisions on what to self-host vs API, keeping per-video cost under $1 even for premium AI stack
Custom solution development — built something that didn't exist as a product, for a specific commercial need