Your Photos & Videos Never Leave Your Device | ThreadRecap
When you export a WhatsApp chat with media, the zip can contain photos, videos, and voice notes. Most people assume everything gets uploaded.
ThreadRecap does not work that way.
Photos and videos never leave your device. We do not upload them. We do not process them. They are ignored.
We only send what is required to produce a useful recap. You can read more in our privacy policy. Here is what gets uploaded:
Chat text from the export.
Voice notes (audio) if you choose to include media and want transcription.
Everything else stays local.
Understanding exactly why this architecture was chosen — and what it means in practice — requires a closer look at how WhatsApp exports are structured, how ThreadRecap processes them, and what the technical difference is between ignoring a file and simply not storing it after the fact.
ThreadRecap reads the zip locally in your browser, extracts the chat text, identifies voice note files, and ignores photos and videos.
How WhatsApp names and organises media inside the zip
WhatsApp uses predictable naming conventions inside its export ZIPs. Photos are typically named with a timestamp prefix such as `IMG-20240601-WA0001.jpg`, videos follow a similar pattern with `VID-` prefixes, and voice notes use `PTT-` prefixes with `.opus` or `.m4a` extensions. GIFs exported from WhatsApp chats appear as `.mp4` files. Stickers are usually small `.webp` images. ThreadRecap's local parsing step reads these filenames and extensions to categorise every file in the ZIP before anything else happens. Files in the photo and video categories are never read beyond their metadata; their binary content is not touched.
The difference between "export with media" and "export without media"
WhatsApp gives you two export options: with media and without media. When you export without media, the ZIP contains only the `_chat.txt` file. Inline references to media in that file read as `<Media omitted>`. When you export with media, photos, videos, voice notes, and documents are bundled alongside the transcript. ThreadRecap handles both cases. If you export without media, only the chat text is processed and no audio or media upload occurs at all. If you export with media, ThreadRecap still only uploads the chat text and any voice note audio files it finds; the presence of photos and videos in the ZIP does not change that boundary.
What ThreadRecap uploads (and why)
ThreadRecap uploads only:
1) Chat text
Because summaries, decisions, and action items come from the conversation timeline.
The `_chat.txt` file is a plain-text log. It contains timestamps, sender names, and message content. This is the primary input for the AI recap. Without it, there is no conversation to summarise. The file is typically small — a chat with thousands of messages is rarely more than a few megabytes of plain text — so upload time is negligible compared to the total ZIP size when media is included.
2) Voice notes (audio) only
Because voice notes often contain the most important information, and transcription requires sending audio to a speech-to-text model.
WhatsApp exports voice notes in `.opus` format and sometimes `.m4a`. ThreadRecap sends these files to OpenAI Whisper for transcription. Whisper achieves approximately 95% accuracy on clear audio, which is high enough for the transcript to be a reliable input to the recap rather than a source of noise. Once transcribed, the text output is merged into the chat timeline at the correct timestamp, so the recap treats spoken content with the same weight as typed messages. The audio file itself is not stored after transcription.
If there are no voice notes, no audio is uploaded.
What ThreadRecap never uploads
ThreadRecap does not upload:
Photos.
Videos.
GIFs.
Stickers.
Thumbnails.
Any other non-audio media.
Even if those files exist in your exported zip, they stay on your device.
Why ignoring files locally is a stronger guarantee than deleting them server-side
Some tools describe their privacy protection in terms of what they delete after processing. That framing still requires the file to travel across the network and reach a server. ThreadRecap's approach is categorically different: photos and videos are identified during the local ZIP unpacking step and are never placed into the upload queue. They do not enter the pipeline at any point. There is no server-side deletion because there is no server-side arrival. For a user concerned about whatsapp export privacy, this distinction is meaningful: a file that never leaves your device cannot be intercepted, logged, or retained by mistake.
Why this matters
1) Smaller risk surface
Photos and videos can include faces, locations, private scenes, screens, and documents. Not uploading them dramatically reduces exposure.
To be concrete about the scope: a WhatsApp chat exported with a year of media might contain hundreds of photos spanning personal events, shared screenshots, location images, and documents photographed on a phone. Each of these carries metadata and visual content that is unrelated to the conversation summary you are trying to generate. Keeping all of that local is not just a privacy preference — it is the architecturally correct decision for a tool whose only goal is to summarise conversation text and spoken audio.
In practice, a single high-resolution photo from a modern smartphone is between 3 MB and 8 MB. A one-minute video clip can easily be 50 MB or more. A chat with a year of media shared between a group might contain gigabytes of files. By contrast, the `_chat.txt` file for the same period is almost always under 5 MB, and voice notes are typically small files of 30 seconds to a few minutes. Skipping photo and video uploads reduces both privacy risk surface and upload size in a way that compounds quickly as group chat exports grow larger.
3) Better trust
Most tools vaguely say "we respect privacy." The real trust builder is a hard technical constraint: do not upload what you do not need.
ThreadRecap's whatsapp chat analyzer privacy model is built on this constraint. The question "do WhatsApp photos get uploaded?" has a binary answer here: no, because the code that processes the ZIP never reads their contents. Whatsapp video privacy and whatsapp voice notes transcription privacy are treated differently from each other because the use case is different: videos cannot contribute to a text-based recap, so they are ignored; voice notes can, so they are transcribed. The distinction is functional, not arbitrary.
How the flow works (simple mental model)
You upload the WhatsApp zip in your browser.
The zip is unpacked locally.
The chat text is parsed locally.
Photos and videos are ignored locally.
Only chat text and voice notes are sent for analysis.
Transcripts (if any) are merged into the chat timeline.
The AI generates the recap.
The key line: photos and video do not enter the pipeline.
What happens during local unpacking
When you select your ZIP file in the ThreadRecap interface, the browser's native file-reading APIs are used to decompress and inspect the archive without sending anything to a server. This is the same mechanism that powers local file editors and offline web apps. The unpacking step reads filenames and sizes, categorises each file, and builds two lists: files to upload (chat text, voice notes) and files to ignore (everything else). Only the first list is ever touched again. This local-first approach means that even if your network connection were being monitored, an observer would see only the chat text and voice note audio in transit — never the photos or videos.
What the AI models receive
The AI that generates your recap — whether that is a model from OpenAI or Claude — receives the parsed chat text and any voice note transcripts produced by Whisper. It does not receive filenames of photos, video thumbnails, or any other signal derived from your media files. The recap is generated entirely from the text layer of your conversation.
FAQ
If I export with media, are my photos uploaded?
No. Photos stay on your device and are ignored.
If I export with media, are my videos uploaded?
No. Videos stay on your device and are ignored.
What about documents and attachments?
In the MVP, only chat text and voice notes are used. Other attachments are ignored.
Why do voice notes get uploaded?
Because transcription requires sending audio to a speech-to-text model. Without voice notes, the recap often misses decisions and commitments that were spoken.
Can I run ThreadRecap without uploading any media at all?
Yes. Export without media and only the chat text is used.
Want a recap without uploading sensitive media? Export your WhatsApp chat, upload the zip, and generate a structured summary. Photos and videos never leave your device. Only chat text and voice notes are used.
ThreadRecap keeps your photos and videos on-device when processing WhatsApp exports. Only chat text and voice notes are uploaded. Try it for free today.