Strip metadata from audio, images and videos. 👑 Written in Nim language
nimble install striptease / clue install striptease --build
- Open Source |
MITLicense - Written in Nim language
- Zero dependencies, single static binary
- Audio:
.wav— dropsLIST INFO,id3,bext,iXMLand friends (rebuilds file, keepsfmt+data) - Images:
.jpg/.jpeg(dropsAPP0–APP15,COM),.png(dropstEXt/zTXt/iTXt,eXIf,iCCP,tIME),.gif(drops comments, plain text and non-NETSCAPEapp extensions),.webp(dropsEXIF,XMP,ICCP) - Video:
.mp4/.mov/.m4v(neutralisesudta,meta,uuid, zeroesmvhd/tkhd/mdhdtimestamps),.avi(neutralisesLIST INFO,id3),.mkv/.webm(voidsTags,Attachments,Infotitle / date / apps) - RAW photos:
.cr2.nef.nrw.arw.srf.dng(incl. Apple ProRAW).rw2.orf.pef.srw.tif/.tiff— zeroes Artist, GPS, XMP and thumbnail metadata in place. MakerNote is preserved (it can hold serials/shutter count, but removing it breaks Apple decoders). - Canon
.cr3(EXIFuuidsanitised, XMP zeroed) and.heic/.heif(Exif item sanitised, XMP items zeroed, image items untouched). Stripped Live Photo stills and videos stay playable standalone but lose their Live pairing. - Video-safe: size-preserving edits keep
stco,idx1andCuesoffsets valid, no re-encode - Text:
.txt.text.md.markdown.json.csv.html.htm.xml.yaml.yml— strips invisible Unicode, exotic spaces, bidi overrides, tag chars (safe-preserve defaults: emoji glue, paired embeddings, script joiners kept) - Media
--inspectJSON values are scrubbed for invisible carriers -
--dry-runand--verbosereporting,--overwriteprotection by default -
--inspectprints embedded metadata as pretty JSON without touching files
striptease 0.2.0 – strip metadata from photos, PDFs, videos, and documents
MIT license | Made by Humans from OpenPeeps
https://github.com/openpeeps/striptease
usage: striptease <input|input-dir> --out:<dir> [options]
required:
<input> file or directory (mixed formats allowed)
-o, --out:<dir> output directory for cleaned copies
(single file input plus --out:foo.ext writes one file,
not needed with --inspect)
supported formats:
audio: .wav | images: .jpg .jpeg .png .gif .webp
raw: .cr2 .nef .nrw .arw .srf .dng .rw2 .orf .pef .srw .tif .tiff
video: .mp4 .mov .m4v .avi .mkv .webm | canon raw: .cr3 | heic: .heic .heif .hif
text: .txt .text .md .markdown .json .csv .html .htm .xml .yaml .yml
options:
--dry-run report only, write nothing
--inspect print metadata as pretty JSON, write nothing
--verbose per file kept and dropped chunks plus bytes saved
--overwrite overwrite existing files in out dir (default: skip)
--keep-musical WAV only: also keep cue, smpl, inst, acid chunks
--nfkc text: accepted for compat, NFKC normalize is currently a no-op in the Nim build
--aggressive-homoglyphs text: map Cyrillic/fullwidth Latin confusables to ASCII
--no-normalize-spaces text: keep exotic spaces as-is (default: rewrite to U+0020)
--strip-emoji-glue text: paranoid, also strip load-bearing invisibles (emoji glue, joiners, flag tags)
--strip-bidi text: also strip legitimate RTL/LTR marks and isolates
--force-text text: treat binary-looking input as text anyway
-h, --help show this help
--version show version
Strip a single photo (writes one file):
striptease photo.jpg --out:clean.jpg --verboseStrip a mixed folder of audio, images and video:
striptease ./uploads --out:./clean --overwriteReport only, write nothing:
striptease clip.mp4 --out:./clean --dry-runInspect embedded metadata as pretty JSON (writes nothing, --out not needed):
striptease photo.jpg --inspectKeep WAV musical chunks (cue, smpl, inst, acid):
striptease take.wav --out:./clean --keep-musicalStrip invisible Unicode from text (safe defaults preserve emoji glue and RTL marks):
striptease notes.md --out:clean.md --verbose
striptease notes.md --inspectLanguages whose typography relies on a non-breaking space (French « … »,
the space before ; : ! ?) should pass --no-normalize-spaces.
Invisible carriers are still removed; only the space rewrite is skipped.
--nfkc is accepted for CLI compat but NFKC normalize is currently a
no-op in the Nim build (stdlib has no NFKC table).
- 🐛 Found a bug? Create a new Issue
- 👋 Wanna help? Fork it!
MIT license. Made by Humans from OpenPeeps.
Copyright OpenPeeps & Contributors — All rights reserved.