Que contient un fichier .txt d'export WhatsApp ?
Un export de discussion WhatsApp est un fichier .txt UTF-8 brut avec un message par ligne au format <horodatage> - <expéditeur> : <message>. Le format d'horodatage dépend des réglages régionaux du téléphone. Les messages médias sont remplacés par <Média absent>. Les événements système (arrivée, départ, changement) apparaissent en ligne sans expéditeur.
À quoi ressemble une ligne unique ?
La forme canonique, sur un téléphone UK/UE :
14/06/2026, 21:07 - Alex Turner : Est-ce qu'on fait toujours dîner vendredi ?
Décomposée :
14/06/2026— date, JJ/MM/AAAA.21:07— heure, HH:MM sur 24h (sans secondes).-— séparateur littéral (espace, tiret, espace).Alex Turner— nom du contact tel qu'enregistré dans votre répertoire.:— séparateur expéditeur/message.Est-ce qu'on fait toujours dîner vendredi ?— corps du message.
Sur un téléphone US la même ligne devient 6/14/26, 9:07 PM - Alex Turner: .... Même fichier, format différent, et un parseur qui suppose un style casse sur l'autre.
Comment sont représentés les messages multi-lignes ?
Seule la première ligne porte l'horodatage. Tout saut de ligne dans le message d'origine produit des lignes de suite nues :
14/06/2026, 21:08 - Alex Turner : Trois choses :
1. Pizza ou sushis
2. 19h ou 20h
3. Chez qui
Un parseur robuste lit ligne par ligne, et quand une ligne ne commence pas par un horodatage, il l'ajoute au message précédent.
Quels sont les types de lignes spéciaux ?
Quatre catégories au-delà des messages ordinaires :
- Marqueurs de médias —
<Média absent>en français (localisé dans d'autres langues). - Messages vocaux — souvent
<Média absent>aussi, mais certaines versions écriventaudio omis. - Messages supprimés —
Ce message a été supprimé. - Événements système — pas d'expéditeur, pas de deux-points. Exemples :
Alex a ajouté Sam,Nom du groupe changé en "Voyage 2026",Les messages et les appels sont chiffrés de bout en bout.
Le message de chiffrement de bout en bout apparaît toujours en deuxième ligne du fichier. Ce n'est pas un vrai message — filtrez-le.
Comment le format varie-t-il selon la langue ?
Le corps du message est préservé tel quel, mais les chaînes fixes sont localisées. <Media omitted> devient <Média absent> en français, <Medien ausgeschlossen> en allemand, etc. Le séparateur - entre horodatage et expéditeur est universel, mais l'avis de chiffrement et le texte des événements système changent.
Pour un chat multilingue, ça compte. Un parseur qui matche « Media omitted » en string rate les exports non-anglais. Matchez plutôt sur la position structurelle (ligne avec horodatage mais sans :).
Qu'est-ce qui n'est PAS dans le fichier ?
Ce à quoi vous vous attendez mais que vous ne trouverez pas :
- Réactions (tap emoji sur d'autres messages) — supprimées.
- Contexte de réponse — une réponse apparaît comme un message ordinaire sans référence au message d'origine.
- Accusés de réception et statut de livraison — non exportés.
- Photos de profil ou changements de nom — supprimés.
- Résultats de sondages — le texte du sondage apparaît ; les votes individuels non.
- Réactions aux messages — comme ci-dessus, pas de donnée.
L'export est une transcription texte, pas un dump complet de données. Si votre cas d'usage dépend d'un des points ci-dessus, l'export ne couvrira pas.
Comment les gens le parsent-ils en pratique ?
L'approche pragmatique : regex sur l'horodatage, split sur -, split du reste sur le premier :. Pseudo-code :
LINE_REGEX = /^(\d{1,2}\/\d{1,2}\/\d{2,4}), (\d{1,2}:\d{2}(?:\s?[AP]M)?) - (.+)$/
Si une ligne ne matche pas, traitez-la comme la suite du message précédent. Si une ligne matche mais que le troisième groupe n'a pas de :, c'est un événement système.
C'est exactement ce que fait WhatsQuiz côté client avant d'envoyer uniquement le contenu structuré extrait pour la génération des questions — le fichier brut ne quitte jamais votre navigateur.
Pourquoi s'intéresser au format ?
Parce que la forme du fichier vous dit ce qui est possible :
- Les horodatages permettent de bucketiser par heure (qui est le posteur de 2h du mat ?).
- Les noms d'expéditeur permettent de classer par volume (qui domine ?).
- Le texte des messages permet de chercher les blagues récurrentes.
- L'absence de réactions signifie que vous ne pouvez pas mesurer « quel message a fait le plus rire » sans inférer depuis les réponses.
Pour la génération de quiz, l'écriture de discours ou une rétrospective de group chat, le format est plus que suffisant — tant que votre parseur gère le cas multi-ligne et les variations régionales de date.
Où le format apparaît-il dans votre app
Si vous bâtissez sur des exports vous-même, les deux pièges qui plombent presque tous les parseurs de première fois sont (1) le format de date régional et (2) la continuation multi-lignes. Réglez ça et vous avez réglé 95 % des vrais bugs.
Si vous préférez sauter le parsing entièrement, uploadez le fichier sur WhatsQuiz et il vous rendra un quiz prêt à jouer sans jamais toucher au texte.
Questions fréquentes
Le fichier d'export est-il chiffré ?
Non. Une fois exporté, le fichier est du texte UTF-8 brut. Le chiffrement de bout en bout de WhatsApp protège les messages en transit et au repos dans l'app — l'export est une copie que vous avez délibérément générée, et il sort du magasin chiffré.
Peut-on l'ouvrir dans Excel ?
Pas proprement. Excel ne sait pas séparer les colonnes horodatage/expéditeur/message. Importez-le en tab-delimited après conversion des séparateurs, ou utilisez un vrai parseur. La plupart des gens l'ouvrent simplement dans un éditeur de texte.
Quel format de date utilise l'export ?
Celui des réglages régionaux de votre téléphone. Les téléphones UK/UE produisent en général JJ/MM/AAAA, HH:MM. Les téléphones US produisent M/J/AA, H:MM AM/PM. C'est la première source de bugs des parseurs.
Pourquoi certaines lignes n'ont-elles pas d'horodatage ?
Les messages multi-lignes (un message contenant un saut de ligne) apparaissent sur plusieurs lignes du fichier. Seule la première ligne porte l'horodatage ; les suites sont du texte nu. Les parseurs doivent les recoller.