Wanneer automatisering zinvol is
Handmatige videoproductie loont als je af en toe een video maakt. Automatisering loont zodra je regelmatig video's maakt met dezelfde structuur maar wisselende inhoud.
Voorbeelden waarbij automatisering de doorlooptijd van uren naar minuten terugbrengt:
- Wekelijkse productupdate-video's op basis van een changelog
- Maandelijkse rapportagevideo's op basis van spreadsheet-data
- Gepersonaliseerde salesvideo's per prospect (naam, bedrijf, use case)
- Eventteasers per deelnemende spreker
- Productdemo's per variant in een catalogus
Voor wie is dit bedoeld
Videoproductieautomatisering vereist technische kennis: scripting (Python of Node.js), API-integraties en videorenderpijplijnen. Dit artikel is geschreven voor ontwikkelaars en technisch ingestelde marketeers.
De automatiseringspijplijn
Een pijplijn voor geautomatiseerde videoproductie bestaat uit vier lagen.
Laag 1: Datainname
De variabele data bepaalt de inhoud van elke video. Bronnen:
- Google Sheets (via de Sheets API)
- JSON-bestand of REST API-respons
- Database (PostgreSQL, BigQuery)
- CRM-export (HubSpot, Salesforce)
Elke rij of record staat voor één video. De kolommen zijn de variabelen: productnaam, beschrijving, prijs, beeldprompt.
Laag 2: Scriptgeneratie
Gebruik de Gemini API (of de Claude API) om per record een videoscript te genereren. Gebruik een actueel model: gemini-2.0-flash is per 1 juni 2026 uitgefaseerd, dus kies gemini-2.5-flash voor nieuwe projecten, of een nieuwer Flash-model als dat beschikbaar is.
from google import genai
client = genai.Client(api_key="YOUR_API_KEY")
def genereer_script(product_naam, voordelen):
prompt = f"""Schrijf een videoscript van 60 seconden voor het product {product_naam}.
Voordelen: {voordelen}.
Structuur: opening (10s), drie voordelen (30s), call to action (20s).
Schrijf de voice-over tekst per scene, gescheiden door [SCENE]."""
response = client.models.generate_content(
model="gemini-2.5-flash",
contents=prompt,
)
return response.text
Laag 3: Beeld- of videogeneratie
Voor een data-gedreven pipeline met deterministische output genereer je per scene een achtergrondafbeelding via de Imagen-API op Vertex AI. Imagen 4 is het actuele model (imagen-4.0-generate-001).
import vertexai
from vertexai.preview.vision_models import ImageGenerationModel
vertexai.init(project="JOUW_PROJECT", location="us-central1")
model = ImageGenerationModel.from_pretrained("imagen-4.0-generate-001")
def genereer_scene_afbeelding(scene_beschrijving):
images = model.generate_images(
prompt=f"{scene_beschrijving}, professionele zakelijke stijl, blauw kleurenpalet",
number_of_images=1,
aspect_ratio="16:9",
)
return images[0]
Endpoints verlopen, plan je migratie
Google faseert de losse Imagen 3- en Imagen 4-endpoints uit en raadt aan om vóór 30 juni 2026 over te stappen op gemini-2.5-flash-image voor beeldgeneratie. Controleer de actuele Vertex AI-modelpagina voordat je in productie gaat, want modelnamen veranderen sneller dan de rest van de pipeline.
Wil je echte bewegende video in plaats van stilstaande beelden met overlay, dan kun je de Veo-API gebruiken via de Gemini API. Veo 3.1 genereert clips van circa 8 seconden met natief gegenereerd geluid, in 720p, 1080p of 4k. Dat geeft levendiger resultaat, maar is duurder en minder voorspelbaar per render dan de aanpak met Imagen plus Text-to-Speech.
Laag 4: Video-assemblage
Combineer de gegenereerde beelden, de voice-over (via de Text-to-Speech API) en eventuele tekstoverlays tot één video. Drie veelgebruikte opties:
Optie A: ffmpeg met Python
ffmpeg -loop 1 -i scene1.jpg -i voice_scene1.mp3 \
-c:v libx264 -tune stillimage -c:a aac \
-shortest scene1.mp4
Concateneer daarna alle scenes:
ffmpeg -f concat -safe 0 -i scenes_list.txt -c copy output.mp4
Optie B: Remotion (React-gebaseerd)
Remotion is een React-library die videocomposities rendert als MP4. Ideaal voor video's met complexe tekstoverlays en animaties, omdat je de layout in JSX opbouwt.
Optie C: Creatomate API
Creatomate is een commerciële template-engine met API. Je definieert een JSON-template en Creatomate rendert de video met jouw variabelen. Eenvoudiger dan ffmpeg, maar met kosten per render.
Voice-over met Google Text-to-Speech
De Google Cloud Text-to-Speech API zet je scripttekst om in een voice-over. De Standard-stemmen zijn het goedkoopst; voor een natuurlijker resultaat gebruik je de Chirp 3 HD-stemmen (ongeveer $30 per miljoen tekens, met een gratis maandtegoed van 1 miljoen tekens).
from google.cloud import texttospeech
client = texttospeech.TextToSpeechClient()
def genereer_voice_over(tekst, taal="nl-NL", stem="nl-NL-Standard-A"):
input_text = texttospeech.SynthesisInput(text=tekst)
voice = texttospeech.VoiceSelectionParams(
language_code=taal,
name=stem,
)
audio_config = texttospeech.AudioConfig(
audio_encoding=texttospeech.AudioEncoding.MP3
)
response = client.synthesize_speech(
input=input_text,
voice=voice,
audio_config=audio_config,
)
return response.audio_content
Kies de juiste stem per taal
Controleer met client.list_voices(language_code="nl-NL") welke stemmen voor jouw taal beschikbaar zijn. De namen verschillen per stemfamilie: een Chirp 3 HD-stem heet bijvoorbeeld anders dan een Standard-stem, dus hardcode geen stemnaam zonder te valideren.
Pipeline-orchestratie
Gebruik een workflow-orchestrator om de stappen te coördineren:
- Google Cloud Workflows: serverless, integreert native met Google-diensten
- Apache Airflow: krachtig, self-hosted of via Cloud Composer
- n8n: visuele workflow-builder, geschikt voor minder technische gebruikers
- Python-script: voor eenvoudige pijplijnen volstaat een script met sequentiële stappen
Kwaliteitscontrole in de pipeline
Bouw automatische controles in zodat foute output niet ongezien live gaat:
- Controleer de videoduur: te kort of te lang triggert een handmatige review
- Valideer dat alle scenes zijn gegenereerd (geen lege scene)
- Sla per video een preview-thumbnail op voor steekproefsgewijze controle
- Log alle API-responsstatussen voor foutopsporing
- Verwerk SynthID-watermerken op gegenereerd beeld correct en wees transparant dat de video AI-gegenereerd is
Zo zet je een minimale pipeline op
- Definieer je dataschema: één rij per video, met kolommen als
product_naam,voordelenenbeeldprompt. - Genereer per rij een script met
gemini-2.5-flashen split het op[SCENE]. - Genereer per scene een beeld met Imagen 4 (of
gemini-2.5-flash-image) en een voice-over met Text-to-Speech. - Assembleer de scenes met ffmpeg of Remotion tot één MP4.
- Voer de kwaliteitscontroles uit en publiceer alleen video's die slagen.
Hoe hoog zijn de kosten van een geautomatiseerde videopijplijn?
Reken globaal per video: Imagen ongeveer $0,02 tot $0,08 voor vijf scenes, Text-to-Speech vanaf circa $0,004 per 1000 tekens voor Standard-stemmen (Chirp 3 HD ligt hoger, rond $30 per miljoen tekens), plus wat compute voor de orchestratie. Schat ruwweg $0,10 tot $0,50 per video. Bij honderd video's per maand kom je dan op tien tot vijftig euro. Veo-video kost duidelijk meer per render. Controleer altijd de actuele prijslijst, want tarieven wijzigen regelmatig.
Kan ik de pipeline hosten op Google Cloud?
Ja. Cloud Run (containerized) of Cloud Functions (serverless) zijn geschikte hosts. Je triggert de pipeline via Pub/Sub, Cloud Scheduler of een webhook.
Hoe voeg ik achtergrondmuziek toe aan de gegenereerde video?
Voeg een royalty-free muziektrack toe via ffmpeg. Mix de muziek op laag volume (rond -20dB) met de voice-overtrack en voeg beide samen toe tijdens de assemblage.
Is er een no-code alternatief voor deze pijplijn?
Ja. Combineer n8n of Make.com met Creatomate en een TTS-dienst zoals ElevenLabs voor een grotendeels no-code pipeline. Dat is minder flexibel, maar vereist nauwelijks code.
Wat als Google een model uitfaseert dat ik gebruik?
Hardcode geen modelnaam diep in je pipeline. Zet de modelnaam in configuratie of een omgevingsvariabele, zodat je bij een uitfasering (zoals gemini-2.0-flash per 1 juni 2026) snel kunt overstappen zonder code te herschrijven.
Kan ik in plaats van stilstaande beelden echte bewegende video genereren?
Ja, via de Veo-API op de Gemini API. Veo 3.1 maakt korte clips met natief geluid in tot 4k. Houd er rekening mee dat dit duurder en minder deterministisch is dan de combinatie van Imagen-beeld met een Text-to-Speech-voice-over.