Vibe coding een transcriptietool in één avond
Hoe ik vibe coding gebruikte om een desktop transcriptietool te bouwen voor mijn cursusvideo's, aangedreven door OpenAI's Whisper. Geen programmeerervaring nodig; alleen de juiste kennis.
Vibe coding een transcriptietool in één avond
Ik maak cursussen, en elke cursus heeft geschreven materiaal nodig. Collegeaantekeningen, hoofdstuktekst, uitleg; het moet allemaal worden opgeschreven. Maar hier is het punt: ik heb al video's opgenomen die alles behandelen wat ik wil zeggen. Waarom zou ik alles opnieuw helemaal uit het niets schrijven als de content al in gesproken vorm bestaat?
Bovendien ben ik dyslectisch. Langere teksten schrijven kost mij aanzienlijk meer tijd en moeite dan bij de meeste mensen. Spreken daarentegen gaat vanzelf. Dus voor mij is een tool die gesproken woorden omzet in geschreven tekst niet zomaar een handige shortcut; het is een game changer.
Dus besloot ik een tool te bouwen die mijn cursusvideo's transcribeert naar tekstbestanden. Ik combineer die transcripties vervolgens met mijn collegeaantekeningen om het uiteindelijke geschreven cursusmateriaal te maken. Wat vroeger uren schrijven kostte, kost nu minuten transcriptie; en ik bouwde de tool zelf in één avond met vibe coding.
Het probleem
Cursusmateriaal maken is een tweezijdige klus. Eerst bereid je de videocolleges voor en neem je ze op. Dan moet je de geschreven versie produceren: de hoofdstukken, de uitleg, het referentiemateriaal dat studenten later kunnen teruglezen. Dat allemaal vanuit het niets schrijven is een enorme hoeveelheid werk; vooral wanneer je alles al hebt gezegd in de video.
Online transcriptiediensten bestaan, maar die kosten geld per minuut audio, hebben bestandsgroottebeperkingen, en vereisen dat je je nog niet uitgebrachte cursuscontent uploadt naar een derde partij. Voor een volledige cursus met tientallen video's loopt dat snel op. En het is weer een externe dienst in je workflow; uploaden, wachten, downloaden, herhalen.
Wat ik wilde was simpel: een lokale tool die direct naast mijn projectbestanden leeft. Ik sleep een collegevideo erin, krijg binnen minuten een tekstbestand terug, en dat bestand staat al op mijn machine; klaar om te combineren met mijn aantekeningen. Geen context switching, geen browsertabs, geen uploads. Gewoon onderdeel van de workflow.
De ingrediënten: weten wat er bestaat
Ik heb zelf geen enkele regel code geschreven. Maar ik bracht wel iets cruciaals mee: kennis van wat er bestaat.
Ik wist van OpenAI's Whisper, een state-of-the-art spraakherkenningsmodel dat lokaal draait. Ik had al eerder met Whisper gewerkt aan een vorig project, waar ik de code zelf schreef. Dus ik wist dat het beschikbaar was op Hugging Face in verschillende groottes; van tiny modellen die op elke laptop draaien tot large modellen die bijna menselijke nauwkeurigheid leveren. En ik wist dat de transformers library van Hugging Face het eenvoudig maakt om deze modellen te laden en te draaien.
Die eerdere ervaring betekende dat ik niet hoefde te onderzoeken wat mogelijk was; ik kende de bouwstenen al. Ik had alleen geen zin om alle code opnieuw te schrijven en er met de hand een mooie GUI omheen te bouwen. Ik wilde de tool, niet het proces van het maken ervan. Daar kwam vibe coding om de hoek kijken.
Dat gezegd hebbende, dit hele project had waarschijnlijk ook zonder enige voorkennis gewerkt. Dit is geen technisch moeilijk probleem; het is alleen tijdrovend om uit te coderen. Als je met Claude of een andere AI-assistent zou gaan zitten en simpelweg zou bespreken wat je nodig hebt ("ik wil video's lokaal transcriberen"), zou het je richting Whisper, Hugging Face en de juiste libraries leiden. Het project is eenvoudig genoeg dat een gesprek over je wensen alles is wat je nodig hebt om te starten.
Het vibe coding proces
Ik opende mijn AI-codingtool en beschreef wat ik wilde. Mijn eerste idee was om een simpele HTML-frontend te bouwen; iets dat ik in een browser kon openen met een drag-and-drop gebied. Maar de AI wees op een probleem: browsers geven het volledige bestandspad van gedropte bestanden niet prijs om veiligheidsredenen. Omdat de transcriptie lokaal moet draaien en toegang nodig heeft tot de daadwerkelijke bestanden op schijf, zou een webgebaseerde UI niet goed werken.
In plaats daarvan stelde het PyQt6 voor; een Python-framework voor het bouwen van native desktopapplicaties. Ik had nog nooit PyQt6 gebruikt, maar dat maakte niet uit. De AI wist hoe het te gebruiken, en ik hoefde alleen te beschrijven wat ik wilde:
"Bouw me een desktopapplicatie met PyQt6. Het moet me video- of audiobestanden laten slepen en neerzetten, ze in een wachtrij plaatsen, en transcriberen met Whisper van Hugging Face. Ik wil verschillende modelgroottes en chunklengtes kunnen kiezen. Oh, en een donker thema; ik ben tenslotte een programmeur."
Dat was in essentie alles. De AI genereerde de hele applicatie: een Transcriber klasse die Whisper-modellen laadt en audio verwerkt via ffmpeg, een DropZone widget voor drag-and-drop, een MainWindow met een bestandswachtrij, voortgangsindicatoren en een gepolijst donker thema.
Heb ik elke regel gereviewed? Nee. Begreep ik de grote lijnen? Ja. Ik wist wat Whisper was, ik wist wat PyQt6 kon, en ik kon aan het draaien van de app zien dat het de juiste dingen deed.
Een paar rondes van "dit werkt niet" en "kun je ook X toevoegen" later, had ik een volledig werkende tool.
Het resultaat

De tool heeft alles wat ik nodig heb:
- Modelselectie — zeven Whisper-varianten van Tiny (snelst) tot Large V3 Turbo (beste kwaliteit)
- Drag and drop — sleep gewoon video- of audiobestanden naar het venster
- Batchverwerking — zet meerdere bestanden in de wachtrij en transcribeer ze achter elkaar
- Chunklengteregeling — configureer hoe de audio wordt opgesplitst voor verwerking. Ik heb dit toegevoegd zodat ik kon tweaken wanneer timestamps worden gegenereerd, wat me helpt hoofdstukmarkeringen voor mijn video's te maken
- Getimestampte output — elke transcriptie bevat timestamps, opgeslagen als een schoon tekstbestand
- Volledig lokaal — er verlaat niets je machine
Het ondersteunt alle gangbare mediaformaten: MP4, MKV, AVI, MOV, WebM, WAV, MP3, FLAC, OGG en M4A. De tool gebruikt ffmpeg onder de motorkap om audio te extraheren en voert het vervolgens in configureerbare chunks aan Whisper.
Een college van 30 minuten? Getranscribeerd in een paar minuten op een fatsoenlijke GPU. Zelfs op CPU werkt het; duurt alleen wat langer. Ik sleep een batch college-opnames erin, druk op Transcribe, en kom terug bij een map vol tekstbestanden klaar om tot cursushoofdstukken te worden gevormd.
Wat dit liet werken
Dit is precies het soort project waar vibe coding uitblinkt. Laat me uitleggen waarom.
Het is een persoonlijke tool. Ik ben de enige gebruiker. Als er iets kapot gaat, fix ik het. Er is geen team dat deze code moet onderhouden, geen klanten die afhankelijk zijn van uptime, geen schalingsvereisten. Het "littekenweefsel"-probleem dat vibe coding gevaarlijk maakt voor productiesoftware is hier simpelweg niet van toepassing. Als je productiecode bouwt, moet je voorzichtiger zijn; daar komt agentic engineering om de hoek kijken. Maar voor een persoonlijke tool als deze doet vibe coding de klus perfect.
De scope is klein en goed gedefinieerd. Ik heb precies één ding nodig: een mediabestand erin, een transcriptie eruit. Er is geen authenticatie, geen database, geen API, geen deployment naar de cloud. De hele app doet één taak.
Het past in een groter workflow. De tool hoeft niet perfect te zijn; hij moet nuttig zijn. De transcripties zijn niet het eindproduct. Ze zijn een ruw ingrediënt dat ik combineer met mijn collegeaantekeningen om gepolijst cursusmateriaal te produceren. Zelfs als de transcriptie een paar ruwe randjes heeft, is het oneindig sneller dan alles vanuit het niets schrijven.
Domeinkennis weegt zwaarder dan code. Het moeilijke deel was niet Python schrijven. Het moeilijke deel was weten dat Whisper bestaat, dat het beschikbaar is in verschillende groottes op Hugging Face, dat transformers het makkelijk te gebruiken maakt, en dat ffmpeg audio uit elk videoformaat kan extraheren. Die kennis kwam van mij; de AI zette het alleen om in werkende code. Met vibe coding ben je in essentie de projectmanager en consultant van je eigen project, en de AI-agent is je ontwikkelteam. Hoe beter je weet wat je wilt, hoe beter het resultaat zal zijn.
Vibe coding om de juiste redenen
Op deze site hebben we geschreven over de beperkingen van vibe coding en waarom agentic engineering de betere aanpak is voor productiesoftware. Dat geldt nog steeds. Als je een product voor klanten bouwt, heb je structuur, architectuur en begrip van je codebase nodig.
Maar voor persoonlijke tools? Vibe coding is een superpower.
Denk eens aan alle kleine ergernissen in je workflow. De repetitieve taken. De dingen die je handmatig doet omdat het bouwen van een tool "te lang zou duren." Met vibe coding betekent "te lang" vaak één avond. Je hoeft geen programmeur te zijn; je moet weten wat mogelijk is en kunnen beschrijven wat je wilt.
Wat ideeën om je op gang te helpen:
- Een tool die bestanden hernoemt en organiseert op basis van regels die je definieert
- Een batch image resizer met een simpele GUI
- Een lokale zoektool voor je notities of documenten
- Een script dat een map monitort en nieuwe bestanden automatisch verwerkt
Dit zijn allemaal kleine, persoonlijke, goed gedefinieerde projecten; precies waar vibe coding in uitblinkt.
Conclusie
Vibe coding heeft een slechte reputatie, en vaak terecht. Maar de kritiek gaat over het gebruiken ervan voor de verkeerde dingen. Voor persoonlijke tools met een duidelijke scope is het oprecht transformatief. Ik ging van "cursusmateriaal schrijven duurt eindeloos" naar een geautomatiseerde pipeline; neem het college op, transcribeer het, combineer het met aantekeningen, klaar.
Het belangrijkste ingrediënt was geen programmeervaardigheid. Het was weten wat er bestaat: welke modellen er zijn, welke libraries ze toegankelijk maken, en wat er mogelijk is. Dat soort kennis is iets dat iedereen kan opbouwen, programmeur of niet.
En coderen met AI hoeft niet bij persoonlijke tools te stoppen. Je kunt absoluut productiewaardige software op deze manier maken; maar dat vereist een grondiger proces en meer kennis. Architectuur begrijpen, weloverwogen technologiekeuzes maken, elke stap valideren. Die aanpak heeft een naam: agentic engineering. Als je geïnteresseerd bent in leren hoe je van vibe coding naar het bouwen van echte, deploybare producten met AI gaat, bekijk dan onze Agentic Engineering klastraining.
Dus de volgende keer dat je iets vervelends en repetitief aan het doen bent, vraag jezelf af: zou een AI hiervoor een tool voor me kunnen bouwen? Het antwoord zou je kunnen verrassen.