WhatsApp-gesprek omzetten naar tekst — privé en gratis

Zet een geëxporteerd WhatsApp-gesprek in je browser om in schone tekst. Verwijdert de versleutelingsmelding, toetredingsberichten en mediamarkeringen. Je gesprek wordt nooit geüpload.

Een geëxporteerd WhatsApp-gesprek opschonen

WhatsApp geeft je je gesprek als tekstbestand, wat klinkt alsof de klus al klaar is. Open het en je merkt van niet. Elke regel draagt een tijdstempel in een formaat dat afhangt van de telefoon waar het vandaan komt. De eerste regel is een mededeling over versleuteling. Verspreid door de rest staan groepstoetredingen, onderwerpwijzigingen, markeringen van verwijderde berichten en — als er foto's in de chat zaten — heel veel regels die <Media omitted> zeggen en verder niets.

Deze pagina maakt daar een leesbaar gesprek van. Sleep de .txt naar binnen, of de .zip waar WhatsApp hem in verpakt, en het resultaat verschijnt hier. Het bestand wordt in dit browsertabblad gelezen en nooit geüpload.

Je WhatsApp-chat exporteren naar tekst

Op zowel iPhone als Android: open de chat, tik bovenaan op de naam van de contactpersoon of groep, scroll naar Chat exporteren en kies Zonder media. De media-optie hangt elke foto en elk spraakbericht eraan, wat een archief oplevert dat honderden keren zo groot is en niets toevoegt aan een teksttranscript — de berichten zelf zijn hoe dan ook identiek.

Het resultaat is een bestand met de naam _chat.txt, meestal in een .zip, afgeleverd via het deelmenu dat je kiest. Zowel het losse tekstbestand als de zip werkt hier.

Waarom het tijdstempelformaat het lastige deel is

Er bestaat geen enkel WhatsApp-exportformaat. Er zijn minstens twee berichtvormen en een open aantal datumnotaties, en wat je krijgt hangt af van het besturingssysteem en de regio-instellingen van de telefoon.

iOS schrijft het tijdstempel tussen blokhaken: [12/03/2024, 14:23:01] Name: message. Android schrijft het kaal, met een streepje tussen tijdstempel en bericht: 12/03/2024, 14:23 - Name: message. Seconden kunnen er wel of niet zijn. De klok kan 24-uurs zijn of 12-uurs met AM en PM. De datum kan met de dag, de maand of het jaar beginnen. Scheidingstekens kunnen schuine strepen, punten of koppeltekens zijn.

De parser accepteert beide berichtvormen en matcht de datum ruim, waarbij hij het tijdstempel vastlegt zonder te proberen het als kalenderdatum te interpreteren. Die laatste keuze is bewust: 03/12/2024 is voor het grootste deel van de wereld 3 december en in de Verenigde Staten 12 maart, en niets in het bestand zegt welke van de twee. Gokken zou de helft van ieders transcript stilletjes verkeerd dateren. De originele string wordt getoond zoals WhatsApp hem schreef, en die is ondubbelzinnig voor wie erbij was.

Berichten over meerdere regels

Een bericht met regelafbrekingen erin — een lijstje, een adres, een lange alinea die iemand heeft opgedeeld — staat in de export als één regel met tijdstempel gevolgd door vervolgregels zonder tijdstempel en zonder markering. Er is geen scheidingsteken. Het enige signaal is de afwezigheid van een tijdstempel.

Elke regel die niet met een herkenbaar tijdstempel begint, wordt daarom aan het bericht erboven geplakt. Dat is de juiste lezing, en het verklaart een faalwijze die je misschien in eenvoudiger scripts hebt gezien: splits het bestand op nieuweregeltekens en je krijgt weesfragmenten die aan niemand worden toegeschreven, met adressen en lijstjes verspreid door het transcript alsof het losse berichten waren.

Wat de filters weghalen

Standaard gaan er twee categorieën uit, en schakelaars halen ze allebei terug:

  • Systeemmeldingen. Het versleutelingsbericht bovenaan, “X heeft Y toegevoegd”, “X heeft de groep verlaten”, “Je hebt dit bericht verwijderd”, onderwerp- en pictogramwijzigingen, meldingen over beveiligingscodes, regels over gemiste oproepen. In een actieve groep kunnen die de echte berichten ruim in aantal overtreffen.
  • Mediamarkeringen. <Media omitted>, de vertaalde varianten zoals “afbeelding weggelaten” en “audio weggelaten”, en het achtervoegsel (file attached). In een chat waarin mensen vooral foto's sturen is dit de meerderheid van de regels, en geen ervan draagt inhoud.

Houd de mediaregels als het patroon van wanneer er iets is gestuurd deel uitmaakt van waar je naar kijkt. Houd de systeemmeldingen als je een verslag nodig hebt van wie wanneer bij een groep kwam. Verder is het allebei ruis, en het weghalen ervan halveert het bestand doorgaans.

Waar mensen dit voor gebruiken

Een kopie van een gesprek bewaren voordat je een groep verlaat of van telefoon wisselt. Een chat klaarmaken als bewijsmateriaal, waar een schoon leesbaar transcript aanzienlijk bruikbaarder is dan een ruw log. Een lange draad aan een model geven om een besluit samen te vatten dat ergens in driehonderd berichten is genomen. Jaren aan berichten doorzoeken op een detail dat niemand ergens anders heeft opgeschreven. De geschiedenis van een familiegroep omzetten in iets wat je kunt afdrukken.

Het privacypunt is niet decoratief

WhatsApp-berichten zijn tijdens het transport end-to-end versleuteld. Op het moment dat je er een exporteert, is die bescherming voorbij: het bestand op je telefoon is platte tekst, leesbaar voor alles waar je het aan geeft. Het uploaden naar een webconverter doet het hele punt teniet van de versleuteling die het tot daar heeft gebracht.

Hier wordt niets geüpload. De parser is JavaScript dat in dit tabblad draait; je export wordt door de browser gelezen, in het geheugen omgezet en weergegeven. Geen server ziet hem, dus er is geen bewaarbeleid om door te lezen en geen verwijderverzoek om in te dienen. Sluit het tabblad en het is weg.

Exports van andere platforms werken op de algemene chatexportpagina, die het formaat automatisch herkent.