Python scripts for pictures archival purposes.
Fork of Will Ho whatsapp-media-tools repository (manage WhatsApp media backups for archival purposes).
Scripts are using python piexif module to manage exif metadata.
Best practice is to create a virtual environment to manage dependencies. Below commands example for bash shell :
# Create a virtual environment named 'myenv' python3 -m venv myvenv # Source virtual env variables source myvenv/bin/activate # Check paths which python3 which pip3 # Install python module requirements in the virtual env python3 -m pip install -r requirements.txt # once finished with scripts, deactivate the virtual env deactivateusage: restore-exif.py [-h] [-r] [-m] path Restore discarded Exif date information in WhatsApp media based on the filename. For videos, only the created and modified dates are set. positional arguments: path Path to WhatsApp media folder options: -h, --help show this help message and exit -r, --recursive Recursively process media -m, --mod Set file created/modified date on top of exif for images usage: find-duplicates.py [-h] [-c CHUNK_SIZE] [-f] [-r] [--dry-run] path Remove duplicated media, preserving the file with the shortest filename or earliest date encoded in the filename. positional arguments: path Path to WhatsApp media folder options: -h, --help show this help message and exit -c CHUNK_SIZE, --chunk-size CHUNK_SIZE Chunk size for heuristic, smaller values are generally faster but if many files have identical starting chunks, performance degrades as more full hashes are computed -f, --force Delete duplicates without prompting -r, --recursive Recursively process media --dry-run Dry run deletion (no files deleted) usage: sort-by-year.py [-h] [-r] [-m] rootpath Stow pictures in directories 'year' based on picture exif metadata or whatsapp filename date positional arguments: rootpath Path to pictures folder options: -h, --help show this help message and exit -r, --recursive Recursively process media -m, --month Create month directories along with year directories usage: compare-dir.py [-h] src_dir tgt_dir Find files from source directory in target directory (based on file's checksum) positional arguments: src_dir Path to source directory tgt_dir Path to target directory options: -h, --help show this help message and exit