AO

tool · live · runs on your machine

EXIF & Metadata Remover

See what your photos are quietly carrying — GPS, camera, serial numbers — and strip it without touching a pixel. Nothing is uploaded — your files never leave this tab. No sign-up, no size cap, no daily limit.

Drop files here or click to choose · or paste from clipboard

What your photos are carrying

Every photo a phone takes arrives with a hidden passenger. Tucked into the file, invisible when you look at the picture, is a block of metadata: the exact latitude and longitude where you stood, the time to the second, the camera make and model, often the lens and — on many cameras — a serial number that links every photo you have ever taken to the same physical device.

That data follows the file. Post the photo somewhere that does not strip it, send it to someone, attach it to a listing, and you have shared your home address without knowing it.

Drop a file above and this page will tell you exactly what is in it before you decide anything.

Why a metadata remover must not upload

Most free EXIF strippers work by uploading your photo to a server, removing the location data there, and sending the file back.

Think about what that means. To delete your location, you first hand your location to a stranger. The tool's entire premise defeats itself in its first step — and the file that was only on your phone is now also on someone else's disk, with whatever retention policy you did not read.

This page cannot do that, because there is nowhere for the file to go. The reading and the removing happen in this tab, on your machine. You can verify it: open your browser's network panel, drop a photo, and watch nothing leave.

Lossless, in the strict sense

Many "strippers" quietly re-encode your image, which throws away real picture quality to remove data that was never part of the picture.

This one does not. It removes the metadata blocks from the file's container and copies the compressed image data across byte for byte. Your pixels come out bit-identical to the ones that went in — the file simply gets smaller by exactly the size of what was removed. You are told which blocks were taken out.

What it handles

JPEG — EXIF, XMP, IPTC, Adobe and comment segments. PNG — eXIf, tEXt, iTXt, zTXt and tIME chunks. WebP — EXIF and XMP chunks.

Two honest gaps. HEIC and AVIF store metadata inside nested ISOBMFF boxes; removing it losslessly there is harder, and rather than pass those files through untouched while implying they were cleaned, this tool refuses them for now. And metadata is not the only way a photo reveals its origin — the image content itself still shows what it shows.

For machines

window.AOMetadata.read(blob) -> Promise<{format, tags[], gps, total, hasMetadata}> — Read metadata from a JPEG, PNG or WebP Blob. Returns named tags, a decoded GPS position when present, and a total field count.
window.AOMetadata.strip(blob) -> Promise<{blob, removed[], saved}> — Remove every metadata block losslessly. The compressed image data is copied verbatim, so pixels are bit-identical. Returns which blocks were removed and the bytes saved.

A machine-readable description lives at index.md.