A cross-platform Python tool that monitors a folder for new files and automatically uploads them to Wikimedia Commons with appropriate file titles, license templates, categories and other metadata.
- Monitors a folder for new JPEG files
- Tracks processed files to avoid duplicates
- Web UI to view detected files and their metadata
- EXIF data extraction and display
- Configurable metadata defaults
- Cross-platform support (macOS and Windows)
- Python 3.7 or higher
- pip (Python package installer)
- Clone or download this repository
- Navigate to the project directory
- Run the setup script:
./setup.sh
- Activate the virtual environment:
source venv/bin/activate
- Clone or download this repository
- Navigate to the project directory
- Run the setup script:
setup.bat
- Activate the virtual environment:
venv\Scripts\activate.bat
Edit settings.json to configure:
watch_folder: Path to the folder to monitor (default:./watch)own_work: Whether uploads are your own workcopyright: Default license (e.g., CC-BY-SA-4.0)author: Your namedefault_categories: Default categories for uploadssource: Source of the files
View detected files with full metadata and EXIF data in a web browser.
macOS/Linux:
source venv/bin/activate && python app.pyWindows:
venv\Scripts\activate.bat && python app.pyThen open your browser to: http://localhost:5001
The web interface shows:
- List of all detected files
- File status and metadata
- Complete EXIF data for each image
- Configuration settings
macOS/Linux:
source venv/bin/activate && python monitor.pyWindows:
venv\Scripts\activate.bat && python monitor.pyThis will monitor the configured folder and log when new JPEG files are detected. Press Ctrl+C to stop monitoring.
- Start the monitor with
python monitor.py - Add JPEG files to the watched folder (default:
./watch) - The monitor will detect and log new files
- Currently tracks files for future upload functionality
.
├── app.py # Flask web UI application
├── monitor.py # Command-line monitoring script
├── settings.json # Configuration file
├── requirements.txt # Python dependencies
├── setup.sh # Setup script for macOS/Linux
├── setup.bat # Setup script for Windows
├── templates/ # HTML templates for web UI
│ ├── index.html # File list view
│ └── file_detail.html # File detail view
├── watch/ # Watched folder (configurable)
└── data/ # Tracking database
└── processed_files.json