{"id":29178337,"url":"https://github.com/per2jensen/scrubexif","last_synced_at":"2025-07-01T18:46:06.085Z","repository":{"id":301879130,"uuid":"1010541233","full_name":"per2jensen/scrubexif","owner":"per2jensen","description":"Lightweight, Dockerized EXIF cleaner for fast publishing of JPEG photos without leaking sensitive metadata","archived":false,"fork":false,"pushed_at":"2025-06-29T19:49:35.000Z","size":23,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-29T20:32:47.343Z","etag":null,"topics":["docker","exif","image-scrubber","metadata-cleaner","photo","photography-tool","privacy"],"latest_commit_sha":null,"homepage":"","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/per2jensen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-29T09:45:19.000Z","updated_at":"2025-06-29T19:49:38.000Z","dependencies_parsed_at":"2025-06-29T11:43:41.635Z","dependency_job_id":null,"html_url":"https://github.com/per2jensen/scrubexif","commit_stats":null,"previous_names":["per2jensen/jpeg-scrubber","per2jensen/scrubexif"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/per2jensen/scrubexif","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/per2jensen%2Fscrubexif","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/per2jensen%2Fscrubexif/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/per2jensen%2Fscrubexif/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/per2jensen%2Fscrubexif/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/per2jensen","download_url":"https://codeload.github.com/per2jensen/scrubexif/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/per2jensen%2Fscrubexif/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263019619,"owners_count":23400933,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","exif","image-scrubber","metadata-cleaner","photo","photography-tool","privacy"],"created_at":"2025-07-01T18:46:05.565Z","updated_at":"2025-07-01T18:46:06.077Z","avatar_url":"https://github.com/per2jensen.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# scrubexif\n\n🧼 `scrubexif` is a lightweight, Dockerized EXIF cleaner designed for fast publishing of JPEG photos without leaking sensitive metadata.\n\nIt removes most embedded EXIF, IPTC, and XMP data while preserving useful tags like exposure settings, lens information, and author credits — ideal for privacy-conscious photographers who still want to share meaningful technical info.\n\n📦 **GitHub**: [per2jensen/scrubexif](https://github.com/per2jensen/scrubexif)\n\n---\n\n## 🚀 Quick Start\n\nThere are **two modes**:\n\n### ✅ Manual mode (default)\n\nManually scrub one or more `.jpg` / `.jpeg` files from the current directory.\n\n#### Scrub specific files\n\n```bash\ndocker run -it --rm -v \"$PWD:/photos\" per2jensen/scrubexif \"file1.jpg\" \"file2.jpeg\"\n```\n\n#### Scrub all JPEGs in current directory\n\n```bash\ndocker run -it --rm -v \"$PWD:/photos\" per2jensen/scrubexif\n```\n\n#### Recursively scrub nested folders\n\n```bash\ndocker run -it --rm -v \"$PWD:/photos\" per2jensen/scrubexif -r\n```\n\n---\n\n### 🤖 Auto mode (`--from-input`)\n\nScrubs everything in a predefined input directory and saves output to another — useful for batch processing.\n\nYou **must** mount three volumes:\n\n- `/photos/input` — input directory (e.g. `$PWD/input`)\n- `/photos/output` — scrubbed files saved here\n- `/photos/processed` — originals are moved here (or deleted if `--delete-original` is used)\n\n#### Example:\n\n```bash\ndocker run -it --rm \\\n  -v \"$PWD/input:/photos/input\" \\\n  -v \"$PWD/output:/photos/output\" \\\n  -v \"$PWD/processed:/photos/processed\" \\\n  per2jensen/scrubexif --from-input\n```\n\nOptional flags:\n\n- `--delete-original` — Delete originals instead of moving them\n- `--dry-run` — Show what would be scrubbed, but don’t write files\n\n---\n\n## 🔧 Options (Manual mode)\n\nThe container accepts:\n\n- **Filenames**: one or more `.jpg` or `.jpeg` file names\n- `-r`, `--recursive`: Recursively scrub `/photos` and all subfolders\n- `--dry-run`: Show what would be scrubbed, without modifying files\n\n**Examples:**\n\nScrub all `.jpg` files in subdirectories:\n\n```bash\ndocker run -it --rm -v \"$PWD:/photos\" per2jensen/scrubexif -r\n```\n\nDry-run (preview only):\n\n```bash\ndocker run -it --rm -v \"$PWD:/photos\" per2jensen/scrubexif --dry-run\n```\n\nMix recursion and dry-run:\n\n```bash\ndocker run -it --rm -v \"$PWD:/photos\" per2jensen/scrubexif -r --dry-run\n```\n\nIf no arguments are provided, it defaults to scanning `/photos` for JPEGs.\n\n---\n\n## ✅ Features\n\n- Case insensitive, works on .jpg, .JPG, .jpeg \u0026 .JPEG\n- Removes most EXIF, IPTC, and XMP metadata\n- **Preserves** useful photography tags:\n  - `ExposureTime`, `FNumber`, `ISO`\n  - `LensModel`, `FocalLength`\n  - `Artist`, `Copyright`\n- Based on [ExifTool](https://exiftool.org/) inside a minimal Ubuntu base image\n- Docker-friendly for pipelines and automation\n\n---\n\n## 🧼 What It Cleans\n\nThe tool removes:\n\n- GPS location data\n- Camera serial numbers\n- Software version strings\n- Embedded thumbnails\n- XMP/IPTC descriptive metadata\n- MakerNotes (where safely possible)\n\nIt **preserves** key tags important for photographers and viewers.\n\n---\n\n## 🐳 Docker Image\n\nPull the image:\n\n```bash\ndocker pull per2jensen/scrubexif\n```\n\nUse it to clean all .jpg and .jpeg in `$PWD`:\n\n```bash\ndocker run -it --rm -v \"$PWD:/photos\" per2jensen/scrubexif\n```\n\nInspect version and help:\n\n```bash\ndocker run --rm per2jensen/scrubexif --version\ndocker run --rm per2jensen/scrubexif --help\n```\n\n---\n\n## 🔍 Viewing Metadata\n\nTo inspect the metadata of an image before/after scrubbing:\n\n```bash\nexiftool \"image.jpg\"\n```\n\nInside the container (optional):\n\n```bash\ndocker run --rm -v \"$PWD:/photos\" per2jensen/scrubexif exiftool \"image.jpg\"\n```\n\n---\n\n## 📦 Inspecting the Image Itself\n\nTo view embedded labels and metadata:\n\n```bash\ndocker inspect per2jensen/scrubexif:latest | jq '.[0].Config.Labels'\n```\n\nYou can also check the digest and ID:\n\n```bash\ndocker image inspect per2jensen/scrubexif --format '{{.RepoDigests}}'\n```\n\n---\n\n## 📁 Example Integration\n\nThis image is ideal for:\n\n- Web galleries\n- Dog show photo sharing\n- Social media publishing\n- Backup pipelines before upload\n- Static site generators like Hugo/Jekyll\n\n---\n\n## 🔧 Build Locally (Optional)\n\n```bash\ndocker build -t scrubexif .\n```\n\n---\n\n## ✍️ License\n\nLicensed under the GNU General Public License v3.0 or later  \nSee the `LICENSE` file in this repository.\n\n---\n\n## 🙌 Related Tools\n\n📸 [file-manager-scripts](https://github.com/per2jensen/file-manager-scripts) — Nautilus context menu integrations  \n📸 image-scrubber — Browser-based interactive metadata removal  \n📸 jpg-exif-scrubber — Python tool that strips all metadata (no preservation)\n\n`scrubexif` focuses on **automated, container-friendly workflows** with **safe defaults** for photographers.\n\n---\n\n## 💬 Feedback\n\nSuggestions, issues, or pull requests are always welcome.  \nMaintained by **Per Jensen**\n\n---\n\n## 🔗 Project Homepage\n\nSource code, issues, and Dockerfile available on GitHub:\n\n👉 [https://github.com/per2jensen/scrubexif](https://github.com/per2jensen/scrubexif)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fper2jensen%2Fscrubexif","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fper2jensen%2Fscrubexif","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fper2jensen%2Fscrubexif/lists"}