Hoe ik een tekst-naar-commercialgenerator bouwde met ElevenLabs, Gemini en VEO 2
- Geschreven door
- Ryan Morrison
- Gepubliceerd
- Laatst bijgewerkt
LuisterenLuister naar dit artikel
Ik maak al twee decennia content — van journalistiek tot productvideo's. AI maakt volledig nieuwe creatieve workflows mogelijk. Op het snijvlak van vibe coding en steeds realistischer wordende videogeneratie vroeg ik me af of ik een tool kon maken die een eenvoudige prompt omzet in een reclame van 20 seconden.
Het concept was eenvoudig: typ een ruw productidee in en ontvang een volledig geproduceerde reclame van 30 seconden met door AI gegenereerde beelden, voice-over en geluidseffecten. Zo heb ik het gebouwd met de ElevenLabs TTS- en SFX-API's van ElevenLabs, Google's Gemini en VEO 2 van Google voor videogeneratie. Op het moment van maken was VEO 3 nog niet uitgebracht.
De definitieve versie is bijna volledig gemaakt met Anthropic's indrukwekkende Claude 4 Opus, al kostte dat enkele dagen omdat ik steeds tegen de rate limit aanliep.
De stack kiezen: Node.js, Express, React en Claude 4 Opus


Ik koos Node.js met Express voor de backend en React voor de frontend. Node verwerkt realtime updates terwijl video's worden gegenereerd, en de componentgebaseerde architectuur van React maakt de interface met meerdere stappen eenvoudig te beheren en uit te breiden.
Sinds mijn kindertijd programmeer ik af en toe — begonnen met een robotpen op de basisschool. Maar ik ben altijd meer een productdenker dan een fulltime engineer geweest. Tools zoals Claude 4 Opus hebben dat veranderd. Met de juiste prompts kon ik snel werken, functies correct implementeren en me richten op productlogica in plaats van boilerplate.
Het gaat niet om creativiteit uitbesteden aan AI — het gaat om slimmer bouwen met de juiste tools.
Wizard in acht stappen: van prompt tot voltooide reclame

Een reclame voor een nieuw product of nieuwe dienst maken, zelfs eentje van slechts 20 seconden, omvat meerdere complexe stappen. Daarom heb ik het opgedeeld in acht afzonderlijke fasen:
- Productinformatie
- Scriptgeneratie
- Video maken
- Geluidseffecten
- Video samenstellen
- Voice-over
- Definitieve video
- Social posts
Elke stap bouwt voort op de vorige en creëert zo een pipeline die een eenvoudig idee omzet in een complete reclame. In elke fase houdt de mens volledige controle om elk element te wijzigen of elk stuk tekst, video of audio opnieuw te genereren.

Ideeën verfijnen met Gemini Flash
De eerste uitdaging was dat de meeste mensen niet met volledig uitgewerkte productideeën beginnen. Ze typen misschien iets vaags in, zoals "iets voor productiviteit". Daar komt Gemini van pas.
Ik gebruikte Google's Gemini 2.0 Flash-model om ruwe ideeën uit te werken tot concrete productconcepten. Prompt engineering was hierbij cruciaal: ik moest Gemini specifiek en concreet laten zijn, niet vaag en algemeen. In plaats van "iets voor fitness" te accepteren, zet het systeem dat om in iets als "FitPulse AI: een slimme polsband die geavanceerde biometrie gebruikt om gedurende je dag gepersonaliseerde micro-workouts te maken."
Niet-generieke scripts genereren met Gemini
Daarna kwam scriptgeneratie. Opnieuw met Gemini structureerde ik de output als vier scènes van 5 seconden, elk met drie onderdelen:
- Het voice-overscript
- Een prompt voor videogeneratie
- Een beschrijving van geluidseffecten
De sleutel was Gemini stemming en doelgroep te laten begrijpen. Een "eigenzinnige" reclame voor millennials vraagt om ander taalgebruik dan een "professionele" reclame voor zakelijke klanten.
Ik heb veel tijd besteed aan het verfijnen van de prompts om algemene AI-taal te vermijden en scripts te maken die op elk product waren afgestemd.
Scènes van 5 seconden maken met VEO 2
Ik gebruikte de gehoste API van FAL.ai voor Google's VEO 2-model. De videoprompt van elke scène wordt naar FAL.ai gestuurd, dat een videoclip van 5 seconden terugstuurt. Dit was een van de lastigere integraties: lange generatietijden afhandelen, API-limieten beheren en gebruikers feedback geven terwijl ze wachten.
Oorspronkelijk was ik van plan Google AI Studio of Vertex AI te gebruiken voor de Veo 2-API, omdat ik dan dezelfde API-sleutel als voor Gemini kon gebruiken, maar ik kreeg Veo 2 niet aan de praat op mijn account.
Ik implementeerde een systeem voor statusbeheer dat gegenereerde video's lokaal opslaat, zodat gebruikers dure content niet opnieuw hoeven te genereren wanneer ze weggaan en terugkomen. Als je tegen rate limits van Claude aanloopt, is het laatste wat je wilt dat je gegenereerde video's kwijtraakt doordat je de pagina vernieuwt.
De videocontent voor een clip van 20 seconden kostte ongeveer $10, uitgaande van geen herbewerkingen of regeneraties.
ElevenLabs gebruiken voor geluidseffecten en voice-over

Hier werd ik creatief met de API's van ElevenLabs. Hoewel ElevenLabs vooral bekendstaat om stemgeneratie, hebben we ook een zeer indrukwekkende API voor geluidseffecten. Bekijk het geweldige Soundboard als voorbeeld van mogelijke toepassingen.
Ik gebruikte die om voor elke scène vier variaties van geluidseffecten te genereren: opgewekt, energiek, rustig en dramatisch. Gebruikers kunnen elke optie beluisteren en kiezen wat bij hun visie past.
Definitieve video's samenstellen met FFmpeg
Met vier videoclips en vier geluidseffecttracks moest ik ze samenvoegen. Dat betekende dat ik me moest verdiepen in FFmpeg, het Zwitserse zakmes van videoverwerking. De backend voert FFmpeg-opdrachten uit om:
- Geluidseffecten met elke videoclip te mixen
- Alle clips samen te voegen tot één video
- De voice-overtrack aan de definitieve video toe te voegen
De FFmpeg-opdrachten goed krijgen kostte veel debugging. Vooral audiomixing vereist zorgvuldige aandacht voor niveaus en timing. Ik leerde dat het volume van achtergrondgeluid bij het mixen met voice-over moet worden verlaagd tot ongeveer 30% — hoger concurreert het om aandacht, lager kun je het net zo goed weglaten.
Voice-over: waarin ElevenLabs echt uitblinkt
Voor de voice-over heb ik de text-to-speech API van ElevenLabs geïntegreerd om gebruikers een selectie stemmen te bieden. Het systeem maakt één samenhangend voice-overscript van alle scènescripts en stuurt dat vervolgens met geoptimaliseerde steminstellingen naar ElevenLabs:
Deze instellingen zorgen voor een heldere, professionele vertelling die goed werkt voor reclames. Na te hebben geëxperimenteerd met verschillende configuraties, ontdekte ik dat deze balans consistentie biedt zonder robotachtig te klinken.
Robuuste foutafhandeling en gebruikerservaring
Bouwen met meerdere AI-API's betekent omgaan met verschillende soorten fouten. Rate limits, timeoutfouten, onjuist geformatteerde responses — ze komen allemaal voor. Vooral als je om 2 uur 's nachts aan het debuggen bent en VEO 2 besluit iets onverwachts terug te sturen.
Ik implementeerde uitgebreide foutafhandeling met terugvalopties:
- Als Gemini faalt, biedt het systeem intelligente terugvalscripts
- Als videogeneratie faalt, zijn placeholdervideo's beschikbaar
- Als geluidsgeneratie faalt, worden eenvoudige audiotracks gebruikt
Het doel was ervoor te zorgen dat gebruikers hun reclame altijd konden afronden, ook als sommige AI-diensten een slechte dag hadden.
Overwegingen voor performance

Een reclame genereren omvat meerdere AI-API-aanroepen die enkele minuten kunnen duren. Om de ervaring te verbeteren, heb ik:
- Video's waar mogelijk parallel verwerkt
- Realtime voortgangsindicatoren getoond
- Dure gegenereerde content lokaal opgeslagen
- Gebruikers individuele onderdelen opnieuw laten genereren
Ik implementeerde ook een systeem voor statusbehoud. Als iemand de browser tijdens het genereren sluit, kan diegene terugkomen en verdergaan waar diegene was gebleven. Dit stond niet in mijn oorspronkelijke plan, maar nadat ik tijdens het testen een paar keer mijn eigen voortgang was kwijtgeraakt, kreeg het prioriteit.
Belangrijkste lessen en wat volgt
Bij het bouwen van deze tool kwamen drie belangrijke lessen naar voren.
Ten eerste is promptontwerp cruciaal. De kwaliteit van de output van elk AI-model hangt sterk af van hoe je de input formuleert. Ik heb evenveel tijd besteed aan het verfijnen van prompts als aan het schrijven van code.
Ten tweede gaat gebruikerservaring boven technische complexiteit. Gebruikers maakt het niet uit hoeveel AI-diensten erbij betrokken zijn — ze geven erom dat de tool werkt. Voortgangsindicatoren, foutafhandeling en snelle feedbackloops maken het verschil.
Ten derde versnellen AI-assistenten zoals Claude de ontwikkeling. Ik richtte me op productlogica en liet boilerplate en syntaxis over aan het model. Het gaat niet om stappen overslaan — het gaat om slimmer bouwen.
Wat als weekendproject begon, groeide uit tot een echte, uitbreidbare tool. Marketingteams kunnen hem gebruiken voor prototypes, startups voor pitchvideo's en creators voor gesponsorde content.
Het systeem is flexibel ontworpen. Je kunt videostijlen aanpassen door VEO 2-prompts te wijzigen, scenelengtes aanpassen voor verschillende formaten of muziek toevoegen via FFmpeg.
De echte kans ligt in het orkestreren van meerdere AI-systemen. Geen enkel model kan een volledige reclame genereren — maar samen kunnen Gemini, VEO 2 en ElevenLabs iets maken dat veel krachtiger is dan elk van hen afzonderlijk.
Het gaat niet om AI die creators vervangt. Het gaat om creators betere tools geven. Na 20 jaar in content heb ik veel verandering gezien — maar deze verschuiving voelt fundamenteel.
Als je wilt ontdekken hoe technologie van ElevenLabs nieuwe manieren van werken met content en media kan ondersteunen, neem dan contact op met ons salesteam.
Ryan joined ElevenLabs after more than two decades in news and publishing, including roles at the BBC and Future Plc. He focuses on content strategy and storytelling, helping ElevenLabs shape and share its narrative.




