A simple EXIF metadata viewer and editor.
Project description
ExifPlus - Short Description & ReadMe
ExifPlus is a versatile and user-friendly metadata viewer and editor for image and video files. It allows you to view and modify EXIF, IPTC, and XMP metadata, making it an essential tool for photographers, videographers, and anyone who needs to manage media metadata easily. With a sleek GUI powered by ttkbootstrap and advanced functionality through libraries like pyexiv2, hachoir, and exifread, ExifPlus makes it simple to interact with file metadata in just a few clicks.
ReadMe & Instruction Manual
ExifPlus - Metadata Viewer and Editor
Overview
ExifPlus is a modern and intuitive tool designed for managing metadata in image and video files. Whether you're a photographer looking to adjust your photo's metadata or a content creator dealing with video files, ExifPlus offers powerful features to read and modify various types of metadata like EXIF, IPTC, and XMP.
Key Features
- Read and Edit EXIF, IPTC, and XMP metadata from images and videos.
- User-friendly GUI built with
tkinterandttkbootstrapfor a sleek and responsive interface. - Supports multiple media formats including
.jpg,.png,.tiff,.heic,.mp4,.avi,.mov, and.mkv. - Batch processing to edit metadata across multiple files (future versions).
- Save changes to metadata and overwrite the original file.
- Context Menu with an option to delete rows of metadata for easy data management.
- Cross-platform support (Windows, macOS, Linux).
Installation
You can install ExifPlus directly from PyPI using pip. To install the package, simply run the following command in your terminal or command prompt:
pip install exifplus
Ensure that you have the required dependencies installed for full functionality:
pyexiv2(for metadata extraction and editing)hachoir(for reading video metadata)ttkbootstrap(for the GUI)
pip install pyexiv2 hachoir ttkbootstrap
Usage
-
Launch ExifPlus: After installation, you can run ExifPlus directly from the command line (or from your Python script).
python -m exifplus
This will open the ExifPlus GUI, where you can load your files and begin editing metadata.
-
Open File: Click the "Open File" button to choose an image or video file. Supported formats include:
- Images:
.jpg,.jpeg,.png,.tiff,.heic - Videos:
.mp4,.mov,.avi,.mkv
- Images:
-
View and Edit Metadata: Once the file is loaded, the metadata will be displayed in a table format with columns for the metadata Key and Value. You can:
- Double-click a cell to edit its value.
- Right-click to bring up a context menu with options like deleting the metadata row.
-
Save Metadata: After editing metadata, click the "Save Metadata" button to save your changes. The metadata will be saved back to the file.
-
Delete Metadata Row: To delete a specific metadata entry, right-click on a row and select "Delete Row". A confirmation dialog will appear to ensure you want to proceed with the deletion.
-
About Window: Click on the "About" button to view information about the tool and the author.
Troubleshooting
-
Error:
pyexiv2is missing or fails to load: Make sure you've installed the necessary dependencies. You may need to install system packages forpyexiv2to work properly on some systems (Linux or macOS). Refer to thepyexiv2documentation for installation instructions. -
Error:
Invalid metadata key: When trying to modify metadata, ensure that the key you're trying to modify exists in the original file. You can view all the available keys in the table after loading a file.
📦 Installation
🔹 Recommended (Pipx)
If you intend to run ExifPlus as an application:
pipx install exifplus
Then run it:
exifplus
🔹 Using pip (Virtual Environment)
python3 -m venv venv
source venv/bin/activate
pip install exifplus
Run:
exifplus
⚠️ Debian/Ubuntu/Parrot/Kali Users
These systems use PEP 668 and block global installs. If you try:
pip install exifplus
You may see:
error: externally-managed-environment
To fix, use either:
pipx install exifplus
or:
python3 -m venv venv
source venv/bin/activate
pip install exifplus
🔧 Optional (Not required but allowed)
If you really want to install system-wide:
pip install exifplus --break-system-packages
Not recommended.
🚀 Running
After installation:
exifplus
or
python -m exifplus
Screenshot
Contributing
Contributions to ExifPlus are welcome! If you'd like to report a bug, suggest a feature, or submit a pull request, feel free to fork the project and submit changes.
- Fork the repository.
- Clone your fork to your local machine.
- Make your changes (bug fixes, features, improvements).
- Submit a pull request with a clear description of your changes.
👨💻 Author
Developed by:
👉 Mohammed Zahid Wadiwale
- 🌐 Website — https://www.webaon.com
- 💻 GitHub — https://github.com/ZahidServers
- 📰 Blog — https://blog.webaon.com
- 🎓 Academy — https://academy.webaon.com
Support development by buying:
- Hosting
- Domains
- Websites
- Cybersecurity services
- Courses
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 exifplus-1.1.4.tar.gz.
File metadata
- Download URL: exifplus-1.1.4.tar.gz
- Upload date:
- Size: 9.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0101d9ac9557ce6df446c3f1fa24d9f7e4a8153742b51df1dbe22a49d50e8a8a
|
|
| MD5 |
86e31663c40c8e91598fab06c3e4a48c
|
|
| BLAKE2b-256 |
86be8beda6e5523787c2a3092d4df058556b7cc9537fa33c928810dd2e2747c7
|
File details
Details for the file exifplus-1.1.4-py3-none-any.whl.
File metadata
- Download URL: exifplus-1.1.4-py3-none-any.whl
- Upload date:
- Size: 9.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
949c0c0ad9dafc6927ce4922cd49ae2ccac8346c62ec188ed3057c7ec2458c53
|
|
| MD5 |
5c97e5bb2e01836b9cb1c5a2fcd1c662
|
|
| BLAKE2b-256 |
86255ea6fafe1f9d4c96f8b6c094e5c6d2854e8f5c5e9a5c3ff85b2db95f62e7
|