Remove metadata from images and videos recursively
Project description
assets-metadata-remover
Command-line tool that removes metadata from images and videos recursively, generating clean copies in an output folder that mirrors the original structure. Original files are never modified.
Installation
With pipx (recommended)
pipx install assets-metadata-remover
With pip
pip install assets-metadata-remover
System dependencies
- ffmpeg — required for video processing
- exiftool — required for image processing
Install with Homebrew:
brew install ffmpeg exiftool
If a tool is missing, the script detects it at startup and processes only the files it can, showing a clear warning.
Commands
clean — Remove metadata
assets-metadata-remover clean /path/to/your_files
This creates /path/to/your_files_clean/ with the same folder structure and metadata-free files.
Options
usage: assets-metadata-remover clean [-h] [-o OUTPUT] [--dry-run] [-v] [--verify] [--report] input
positional:
input Directory (or file) to process
options:
-o, --output DIR Output directory (default: <input>_clean)
--dry-run Simulate without writing
-v, --verbose Per-file logging
--verify Re-inspect copies and report residual metadata
--report Show table of metadata removed from each file
Examples
Process a directory with custom output:
assets-metadata-remover clean ~/Photos -o ~/Photos_clean
Simulate without writing (dry run):
assets-metadata-remover clean ~/Photos --dry-run
Verbose mode with cleanup verification:
assets-metadata-remover clean ~/Photos -v --verify
Show metadata removal report:
assets-metadata-remover clean ~/Photos --report
Process a single file:
assets-metadata-remover clean ~/photo.jpg -o ~/clean/
read — Display metadata
assets-metadata-remover read /path/to/your_files
Displays metadata from images and videos in a human-readable table format.
Options
usage: assets-metadata-remover read [-h] [--json] input
positional:
input Directory (or file) to inspect
options:
--json Output as JSON
Examples
Read metadata from a single file:
assets-metadata-remover read ~/photo.jpg
Read metadata from a directory:
assets-metadata-remover read ~/Photos
Output as JSON for programmatic use:
assets-metadata-remover read ~/Photos --json
Safety
Original files are never modified. The script always writes to a separate output folder.
Supported formats
Images: JPG, JPEG, PNG, TIFF, TIF, WebP, HEIC, HEIF, GIF, BMP
Videos: MP4, MOV, MKV, AVI, M4V, WebM, WMV, FLV, 3GP
Extension comparison is case-insensitive (.JPG and .jpg are equivalent).
Limitations
- Videos are copied without re-encoding (
-c copy), which is fast and lossless, but some exotic formats may not be compatible with the output container. - Some metadata embedded in proprietary formats may not be fully removed by
exiftool. - Directory symlinks are not followed to avoid loops.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file assets_metadata_remover-1.3.0.tar.gz.
File metadata
- Download URL: assets_metadata_remover-1.3.0.tar.gz
- Upload date:
- Size: 13.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e577807c8ceb9324cfc4cead581498942e1b1d6a0a9b7eaff8331c78be7b2eea
|
|
| MD5 |
48168b6acf3155dced2a3930328d5950
|
|
| BLAKE2b-256 |
ffbb76565f2ff314128b13f0a1b23aa1f55b94f3a6d3f5acb0f34ff28f13080f
|
File details
Details for the file assets_metadata_remover-1.3.0-py3-none-any.whl.
File metadata
- Download URL: assets_metadata_remover-1.3.0-py3-none-any.whl
- Upload date:
- Size: 9.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e004ef95b42df178b05e32caaa5ec230cca6e1fcc4ce6814bcc0d07a67630c1
|
|
| MD5 |
db8d6a1b2e90787c540c858ed847a9fb
|
|
| BLAKE2b-256 |
17fb982c1d444c5f3a2efa41a330a7f6712e8dd02e5b05d352bda139c249c6b2
|