<div align="center">
<img alt="exif-stripper logo" src="https://github.com/stefmolin/exif-stripper/raw/main/logo.svg">
<table>
<tr>
<td>
<img alt="Last Release" src="https://img.shields.io/badge/last%20release-inactive?style=for-the-badge">
</td>
<td>
<a href="https://pypi.org/project/exif-stripper/" target="_blank" rel="noopener noreferrer">
<img alt="PyPI release" src="https://img.shields.io/pypi/v/exif-stripper.svg">
</a>
<a href="https://pypi.org/project/exif-stripper/" target="_blank" rel="noopener noreferrer">
<img alt="Supported Python Versions" src="https://img.shields.io/pypi/pyversions/exif-stripper">
</a>
<a href="https://github.com/stefmolin/exif-stripper/blob/main/LICENSE" target="_blank" rel="noopener noreferrer">
<img alt="License" src="https://img.shields.io/pypi/l/exif-stripper.svg?color=blueviolet">
</a>
</td>
</tr>
<tr>
<td>
<img alt="Build status" src="https://img.shields.io/badge/build%20status-inactive?style=for-the-badge">
</td>
<td>
<a href="https://codecov.io/gh/stefmolin/exif-stripper" target="_blank" rel="noopener noreferrer">
<img alt="codecov" src="https://codecov.io/gh/stefmolin/exif-stripper/branch/main/graph/badge.svg?token=3SEEG9SZQO">
</a>
<a href="https://github.com/stefmolin/exif-stripper/actions/workflows/ci.yml" target="_blank" rel="noopener noreferrer">
<img alt="CI" src="https://github.com/stefmolin/exif-stripper/actions/workflows/ci.yml/badge.svg">
</a>
</td>
</tr>
<tr>
<td>
<img alt="Downloads" src="https://img.shields.io/badge/%23downloads-inactive?style=for-the-badge">
</td>
<td>
<a href="https://pypi.org/project/exif-stripper/" target="_blank" rel="noopener noreferrer">
<img alt="PyPI downloads" src="https://img.shields.io/pepy/dt/exif-stripper?label=pypi&color=blueviolet">
</a>
</td>
</tr>
</table>
<hr>
</div>
# exif-stripper
An easy-to-use tool to ensure image EXIF metadata is removed. Read more about why this is important [here](https://stefaniemolin.com/articles/devx/pre-commit/exif-stripper/).
## Usage
### Pre-commit hook
Add the following to your `.pre-commit-config.yaml` file:
```yaml
- repo: https://github.com/stefmolin/exif-stripper
rev: 1.1.0
hooks:
- id: strip-exif
```
If you only want to remove certain fields, use the `--fields` argument. Note that this argument supports multiple options, which are shown when running `exif-stripper --help`. Be very careful when doing this as you might be leaving some sensitive information behind. Here, we only remove GPS information:
```yaml
- repo: https://github.com/stefmolin/exif-stripper
rev: 1.1.0
hooks:
- id: strip-exif
args: [--fields=gps]
```
Be sure to check out the [pre-commit documentation](https://pre-commit.com/#pre-commit-configyaml---hooks) for additional configuration options.
### Command line
First, install the `exif-stripper` package from PyPI:
```shell
$ python -m pip install exif-stripper
```
Then, use the `exif-stripper` entry point on the file(s) of your choice (use `strip-exif` for versions before 0.6.0):
```shell
$ exif-stripper /path/to/file [/path/to/another/file]
```
Run `exif-stripper --help` for more information.
### Python
First, install the `exif-stripper` package from PyPI:
```shell
$ python -m pip install exif-stripper
```
Then, use the `process_image()` function on individual files (returns `True` if the file was altered and `False` otherwise):
```python
from exif_stripper import process_image
process_image('/path/to/image')
```
*Note: This requires version 0.4.0 or above.*
## Contributing
Please consult the [contributing guidelines](https://github.com/stefmolin/exif-stripper/blob/main/CONTRIBUTING.md).
Raw data
{
"_id": null,
"home_page": null,
"name": "exif-stripper",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "exif, image processing, metadata, pre-commit",
"author": null,
"author_email": "Stefanie Molin <exif-stripper@stefaniemolin.com>",
"download_url": "https://files.pythonhosted.org/packages/b0/64/0a03bf04ab6138ec2ca44f0d5d82292df160af5564f7faebe872c25194b4/exif_stripper-1.1.0.tar.gz",
"platform": null,
"description": "<div align=\"center\">\n <img alt=\"exif-stripper logo\" src=\"https://github.com/stefmolin/exif-stripper/raw/main/logo.svg\">\n\n<table>\n <tr>\n <td>\n <img alt=\"Last Release\" src=\"https://img.shields.io/badge/last%20release-inactive?style=for-the-badge\">\n </td>\n <td>\n <a href=\"https://pypi.org/project/exif-stripper/\" target=\"_blank\" rel=\"noopener noreferrer\">\n <img alt=\"PyPI release\" src=\"https://img.shields.io/pypi/v/exif-stripper.svg\">\n </a>\n <a href=\"https://pypi.org/project/exif-stripper/\" target=\"_blank\" rel=\"noopener noreferrer\">\n <img alt=\"Supported Python Versions\" src=\"https://img.shields.io/pypi/pyversions/exif-stripper\">\n </a>\n <a href=\"https://github.com/stefmolin/exif-stripper/blob/main/LICENSE\" target=\"_blank\" rel=\"noopener noreferrer\">\n <img alt=\"License\" src=\"https://img.shields.io/pypi/l/exif-stripper.svg?color=blueviolet\">\n </a>\n </td>\n </tr>\n <tr>\n <td>\n <img alt=\"Build status\" src=\"https://img.shields.io/badge/build%20status-inactive?style=for-the-badge\">\n </td>\n <td>\n <a href=\"https://codecov.io/gh/stefmolin/exif-stripper\" target=\"_blank\" rel=\"noopener noreferrer\">\n <img alt=\"codecov\" src=\"https://codecov.io/gh/stefmolin/exif-stripper/branch/main/graph/badge.svg?token=3SEEG9SZQO\">\n </a>\n <a href=\"https://github.com/stefmolin/exif-stripper/actions/workflows/ci.yml\" target=\"_blank\" rel=\"noopener noreferrer\">\n <img alt=\"CI\" src=\"https://github.com/stefmolin/exif-stripper/actions/workflows/ci.yml/badge.svg\">\n </a>\n </td>\n </tr>\n <tr>\n <td>\n <img alt=\"Downloads\" src=\"https://img.shields.io/badge/%23downloads-inactive?style=for-the-badge\">\n </td>\n <td>\n <a href=\"https://pypi.org/project/exif-stripper/\" target=\"_blank\" rel=\"noopener noreferrer\">\n <img alt=\"PyPI downloads\" src=\"https://img.shields.io/pepy/dt/exif-stripper?label=pypi&color=blueviolet\">\n </a>\n </td>\n </tr>\n </table>\n\n <hr>\n</div>\n\n# exif-stripper\n\nAn easy-to-use tool to ensure image EXIF metadata is removed. Read more about why this is important [here](https://stefaniemolin.com/articles/devx/pre-commit/exif-stripper/).\n\n## Usage\n\n### Pre-commit hook\n\nAdd the following to your `.pre-commit-config.yaml` file:\n\n```yaml\n- repo: https://github.com/stefmolin/exif-stripper\n rev: 1.1.0\n hooks:\n - id: strip-exif\n```\n\nIf you only want to remove certain fields, use the `--fields` argument. Note that this argument supports multiple options, which are shown when running `exif-stripper --help`. Be very careful when doing this as you might be leaving some sensitive information behind. Here, we only remove GPS information:\n\n```yaml\n- repo: https://github.com/stefmolin/exif-stripper\n rev: 1.1.0\n hooks:\n - id: strip-exif\n args: [--fields=gps]\n```\n\nBe sure to check out the [pre-commit documentation](https://pre-commit.com/#pre-commit-configyaml---hooks) for additional configuration options.\n\n### Command line\n\nFirst, install the `exif-stripper` package from PyPI:\n\n```shell\n$ python -m pip install exif-stripper\n```\n\nThen, use the `exif-stripper` entry point on the file(s) of your choice (use `strip-exif` for versions before 0.6.0):\n\n```shell\n$ exif-stripper /path/to/file [/path/to/another/file]\n```\n\nRun `exif-stripper --help` for more information.\n\n### Python\n\nFirst, install the `exif-stripper` package from PyPI:\n\n```shell\n$ python -m pip install exif-stripper\n```\n\nThen, use the `process_image()` function on individual files (returns `True` if the file was altered and `False` otherwise):\n\n```python\nfrom exif_stripper import process_image\nprocess_image('/path/to/image')\n```\n\n*Note: This requires version 0.4.0 or above.*\n\n## Contributing\n\nPlease consult the [contributing guidelines](https://github.com/stefmolin/exif-stripper/blob/main/CONTRIBUTING.md).\n",
"bugtrack_url": null,
"license": null,
"summary": "An easy-to-use tool to ensure image EXIF metadata is removed.",
"version": "1.1.0",
"project_urls": {
"Documentation": "https://github.com/stefmolin/exif-stripper",
"Homepage": "https://github.com/stefmolin/exif-stripper",
"Source": "https://github.com/stefmolin/exif-stripper"
},
"split_keywords": [
"exif",
" image processing",
" metadata",
" pre-commit"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "1834a26874743906b52c233d29b91e339a778abdf3d7872eb6f99a6127055802",
"md5": "c5ce51b1cded55fc2e60818925c2104b",
"sha256": "9ba3df8a7ae84b7345f2dbbc21d9fda59acebaeb2af353a90adeca61e8808627"
},
"downloads": -1,
"filename": "exif_stripper-1.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c5ce51b1cded55fc2e60818925c2104b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 10303,
"upload_time": "2025-07-11T04:36:54",
"upload_time_iso_8601": "2025-07-11T04:36:54.735300Z",
"url": "https://files.pythonhosted.org/packages/18/34/a26874743906b52c233d29b91e339a778abdf3d7872eb6f99a6127055802/exif_stripper-1.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b0640a03bf04ab6138ec2ca44f0d5d82292df160af5564f7faebe872c25194b4",
"md5": "2416f0dab00b86d3430026cf6b5255ed",
"sha256": "d43b277e41920740467703fb75ce8b0e00039aa60808693ae2e0fa93f07cfaf0"
},
"downloads": -1,
"filename": "exif_stripper-1.1.0.tar.gz",
"has_sig": false,
"md5_digest": "2416f0dab00b86d3430026cf6b5255ed",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 51546,
"upload_time": "2025-07-11T04:36:56",
"upload_time_iso_8601": "2025-07-11T04:36:56.156487Z",
"url": "https://files.pythonhosted.org/packages/b0/64/0a03bf04ab6138ec2ca44f0d5d82292df160af5564f7faebe872c25194b4/exif_stripper-1.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-11 04:36:56",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "stefmolin",
"github_project": "exif-stripper",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"lcname": "exif-stripper"
}