Duplicate Finder is a Python application designed to identify and handle duplicate images and videos in a specified directory. The application uses the difPy
library for image comparison and a custom DuplicateFinder
class for video comparison. It provides a graphical user interface (GUI) built with PySimpleGUI to facilitate user interaction and display results.
- Image Duplicate Finder: Detects duplicate images in a specified folder and moves them to a dedicated directory.
- Video Duplicate Finder: Identifies duplicate videos and moves them to a separate directory.
- Progress Bar: Visual feedback of the scan progress through a progress bar in the GUI.
- Results Display: Shows a summary of found duplicates in the application window.
To run the Duplicate Finder application, follow these steps:
-
Clone the Repository
git clone https://github.com/jsuyog2/duplicate-finder.git cd duplicate-finder
-
Install Dependencies
pip install -r requirements.txt
-
Run the Application
python app.py
-
Using the GUI
- Click on "Browse" to select the folder you want to scan for duplicates.
- Click on "Find Duplicates" to start the scanning process.
- The progress bar will update as the scan progresses.
- The results will be displayed in the results area, showing duplicate images and videos.
app.py
: The main application file that initializes and runs the GUI.lib/
ImageDuplicateFinder.py
: Contains theImageDuplicateFinder
class for finding duplicate images.VideoDuplicateFinder.py
: Contains theVideoDuplicateFinder
class for finding duplicate videos.DuplicateFinder.py
: Custom class for finding duplicate videos (used byVideoDuplicateFinder
).
requirements.txt
: Lists the required Python packages.
Here's how the output might look after scanning a folder:
Duplicate images found:
Original: /path/to/original/image1.jpg
Duplicates: /path/to/duplicate/image1_1.jpg, /path/to/duplicate/image1_2.jpg
Duplicate videos found:
Original: /path/to/original/video1.mp4
Duplicates: /path/to/duplicate/video1_1.mp4, /path/to/duplicate/video1_2.mp4
Feel free to contribute to this project by submitting issues or pull requests.
- Fork the repository.
- Create a feature branch (
git checkout -b feature/your-feature
). - Commit your changes (
git commit -am 'Add new feature'
). - Push to the branch (
git push origin feature/your-feature
). - Create a new Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
For any questions or feedback, please contact jsuyog2@gmail.com.