Strip EXIF, GPS, and device metadata from photos and videos — locally on macOS.
Drag files in. MetaBurn writes cleaned copies next to the originals. Originals stay untouched. Optional mute removes video audio. What’s visible in the frame is not altered.
Photo cleans use Image I/O at maximum practical JPEG quality (kCGImageDestinationLossyCompressionQuality = 1.0) while stripping privacy metadata. HEIC/HEIF become cleaned .jpg. Videos prefer remux (no visual re-encode).
↓ Download MetaBurn.dmg · All releases
- Local-first privacy — metadata stays on your Mac; nothing is uploaded
- Drag-and-drop — drop photos and videos together onto the window
- Safe by default — writes cleaned copies; originals never overwritten
- Max-quality photo strip — JPEG quality 1.0 for HEIC conversion and for stripping existing JPG/JPEG/other stills
- HEIC / HEIF →
.jpg— single-pass convert + strip (creator-friendly.jpgextension) - EXIF / GPS / device tags — stripped natively (ImageIO for photos, AVFoundation for videos)
- Optional video mute — omit audio tracks from cleaned video copies (no quality re-encode when passthrough works)
- Output location — next to the originals (
MetaBurn/Photos,Videos,Skippable) - iCloud Drive (optional) — drops from iCloud work; online-only files download first (can be slow)
- Apple Silicon native — Swift / SwiftUI · no Homebrew tools required
- Download
MetaBurn.dmg - Open the DMG and drag MetaBurn.app to
/Applications - First launch — right-click → Open (ad-hoc signed build)
Requires macOS on Apple Silicon.
- Open MetaBurn
- Drop photos and/or videos onto the window (mixed batches are fine)
- Find cleaned copies next to the originals (
<source>/MetaBurn/{Photos,Videos,Skippable}) - Enable mute when you also want audio removed from video copies
Unsupported files (GIF, WebM, AVI, MKV, etc.) land in Skippable/ with a
skipped-summary.txt when applicable.
| Category | Extensions |
|---|---|
| Photos | jpg, jpeg, png, heic, heif, webp, tiff, bmp, jp2 |
| Videos | mov, mp4, m4v |
| Skippable | gif, webm, avi, mkv, and other unsupported types |
Duplicate output names use zero-padded suffixes (photo-001.jpg, not -1).
swift build
swift run
swift test # requires full Xcode.appPackage a macOS .app + DMG (ad-hoc signed) inside this repo:
./scripts/build-mac.sh
# → build/Release/MetaBurn.dmg
# → build/Release/MetaBurn.app (used while packaging; DMG is the ship artifact)- docs/ARCHITECTURE.md — MetaBurnCore vs app layers, services
- BUILD_AND_RELEASE.md
- docs/HEIC-ICLOUD-IMPLEMENTATION-PLAN.md
- CONTRIBUTING.md
- SECURITY.md
- CODE_OF_CONDUCT.md
MIT — see LICENSE.
