sandy-sp/metadata-cleaner

GitHub: sandy-sp/metadata-cleaner

一个注重隐私的 CLI 工具,用于查看、编辑和批量移除多种文件格式中的元数据。

Stars: 35 | Forks: 2

# Metadata Cleaner [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/ad60b02e1d015432.svg)](https://github.com/sandy-sp/metadata-cleaner/actions/workflows/ci.yml) [![Release](https://img.shields.io/github/release/sandy-sp/metadata-cleaner.svg)](https://github.com/sandy-sp/metadata-cleaner/releases) [![PyPI version](https://badge.fury.io/py/metadata-cleaner.svg)](https://pypi.org/project/metadata-cleaner/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) Metadata Cleaner 是一个注重隐私的 CLI 工具,用于查看和移除本地文件中的元数据。 默认情况下,它会生成清理后的副本,避免就地修改原始文件。 ## 支持的文件 - 图像:JPG、JPEG、PNG、TIFF、WEBP、AVIF、HEIC、HEIF - 文档:PDF、DOCX、EPUB、ODT、TXT - 音频:MP3、WAV、FLAC、OGG、AAC、M4A、WMA - 视频:MP4、MKV、MOV、AVI、WEBM、FLV 视频支持需要 `ffmpeg` 和 `ffprobe`。AVIF 和更广泛的元数据处理可得益于 `exiftool`。 ## 安装说明 需要 Python 3.11 或更新版本。 ``` pip install metadata-cleaner metadata-cleaner --help ``` 用于开发: ``` git clone https://github.com/sandy-sp/metadata-cleaner.git cd metadata-cleaner poetry install --with dev poetry run metadata-cleaner --help ``` ## CLI 用法 查看元数据: ``` metadata-cleaner view sample.jpg ``` 打印元数据用于自动化: ``` metadata-cleaner view sample.jpg --json ``` 移除单个文件的元数据: ``` metadata-cleaner delete sample.jpg ``` 写入特定文件: ``` metadata-cleaner delete sample.jpg --output cleaned/sample.jpg ``` 递归处理文件夹: ``` metadata-cleaner delete ./photos --output ./cleaned-photos ``` 预览运行而不写入文件: ``` metadata-cleaner delete ./photos --dry-run ``` 编写 JSON 摘要报告: ``` metadata-cleaner delete ./photos --summary-file reports/summary.json ``` 摘要报告包含每个文件的状态和输出路径,用于审计追踪。 添加 `--checksums` 以包含输入/输出哈希值。SHA-256 是默认值;使用 `--checksum-algorithm sha512` 或 `--checksum-algorithm blake2b` 可生成更强的哈希报告。 当清理后的文件需要保留源文件时间时,请添加 `--preserve-timestamps`。 使用 `--report-detail compact` 或 `--report-detail summary` 生成较小的报告。 使用 `--report-filter failed` 仅列出失败的逐文件条目。 涉及重写、重新保存或重封装数据的格式,在 JSON 摘要报告中会包含逐文件警告。 在受支持的情况下编辑元数据: ``` metadata-cleaner edit song.mp3 --changes '{"artist": "Unknown"}' ``` ## 开发检查 ``` python3 manage.py test python3 manage.py lint python3 manage.py check ``` CI 会在拉取请求和推送到 `main` 分支时运行测试、lint 和 `pip-audit`。 ## Docker ``` docker build -t metadata-cleaner . docker run --rm -v "$(pwd)/photos:/data" metadata-cleaner delete /data ``` 已发布的发布镜像可从 GitHub Container Registry 获取: ``` docker run --rm -v "$(pwd)/photos:/data" ghcr.io/sandy-sp/metadata-cleaner:latest delete /data ``` ## 日志 默认情况下,日志仅输出到 stderr。如需写入日志文件,请显式启用: ``` METADATA_CLEANER_LOG_FILE=./metadata-cleaner.log metadata-cleaner delete sample.jpg ``` 在需要时使用 debug 日志: ``` METADATA_CLEANER_LOG_LEVEL=DEBUG metadata-cleaner view sample.jpg ``` ## 资源 - [API 参考](docs/API_REFERENCE.md) - [使用指南](docs/USAGE.md) - [架构](docs/ARCHITECTURE.md)
标签:DOCX处理, Exiftool, EXIF清除, Ffmpeg, meg, MP3处理, MP4处理, PDF处理, Poetry, Pypi, Python, Python 3.11, SHA-256, 二进制发布, 信息安全, 元数据清理, 元数据清除, 匿名化, 哈希校验, 图片处理, 审计追踪, 开源工具, 批量处理, 数据脱敏, 文件保密, 文件处理, 文档处理, 无后门, 网络安全, 网络安全审计, 请求拦截, 逆向工具, 防溯源, 隐私保护, 音视频处理