BLA
BLA는 오픈소스 Blue Defense MCP와 CLI로, 소프트웨어 자산을 자동 AI 리버스 엔지니어링으로부터 보호합니다
브라우저에서 사진·영상의 EXIF·GPS·C2PA·AI 메타데이터를 무료로 제거, 업로드 없이 품질 손실 없음
Free online image metadata remover. Strip EXIF, GPS, C2PA and AI metadata from photos and video in your browser — no upload, no quality loss.
보안TypeScript · PythonGitHub @fazal-bhinder온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Read and losslessly strip EXIF, GPS, XMP, IPTC, C2PA and AI metadata from JPEG, PNG, WebP, GIF, TIFF, HEIC, AVIF, MP4 and MOV. No re-encoding. Engine behind metadataremoverai.com
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Read and strip photo and video metadata (EXIF, GPS, XMP, IPTC, C2PA content credentials, AI-generator tags) without re-encoding. The engine edits the file container and copies the image or video data through byte for byte, so quality never changes. After stripping, it parses the output again from scratch to confirm nothing sensitive is left.
It is the engine behind metadataremoverai.com, which runs it entirely in the browser with no uploads.
| Format | How it is stripped |
|---|---|
| JPEG | Drops APP1 (EXIF/XMP), APP3–APP15 except APP14 (including APP11 JUMBF/C2PA and APP13 IPTC) and COM. Drops the APP2 ICC profile unless it's kept. A kept orientation or copyright is rebuilt into a minimal EXIF block. |
| PNG | Drops tEXt, iTXt, zTXt, eXIf, tIME and caBX (C2PA) chunks |
| WebP | Drops EXIF/XMP RIFF chunks and fixes the VP8X flags |
| GIF | Drops comment and application extensions, keeps the NETSCAPE loop block |
| TIFF | Rebuilds the IFD; pixel strips never move |
| HEIC / AVIF | Zeroes metadata payloads in place, so iloc offsets stay valid |
| MP4 / MOV | Turns metadata atoms into free padding, streamed rather than loaded whole |
npm install lossless-metadata
import { readMetadata, stripFile, verify, DEFAULT_STRIP_OPTIONS } from 'lossless-metadata';
const report = await readMetadata(file); // tags, GPS, C2PA, AI generator, thumbnail
const result = await stripFile(file, DEFAULT_STRIP_OPTIONS);
const { verification } = await verify(file, result, new Set());
result.blob; // the cleaned file
result.lossless; // true when the pixels were copied through untouched
verification.clean; // false if any sensitive tag survived
verification.pixelsIdentical;
file is a File (or a Blob with a name), so the same code runs in browsers, Web Workers and Node 22+. The options keep the ICC colour profile and EXIF orientation by default, because dropping them can shift colours or rotate the photo. Set keepCopyright: true to keep Artist and Copyright.
Most tools redraw the image on a canvas and export a new JPEG. That removes the metadata, but it also recompresses the image, can lose the colour profile, and silently drops HEIC, video and C2PA. This engine never decodes the pixels, which is why it can promise byte-identical image data.
ChatGPT and Gemini exports are the case that motivated the verify step. They carry no EXIF at all, only a signed C2PA manifest in a PNG caBX chunk, so tools that count EXIF tags report them as clean when they are not.
npm test # 154 engine checks, then 143 independent checks
The independent checks need Python with Pillow, plus ffprobe. They confirm with separate tools that forbidden EXIF IDs are gone, that pixels are identical, and that video tags don't leak. The fixtures are generated by test/make-fixtures.py. The two C2PA manifests in test/c2pa/ are real ChatGPT and Gemini manifests spliced onto small test images.
MIT