Install the library with
pip install sortpics
Images and movies are renamed based on their creation date. For instance, an image taken on Dec 25th, 2019 at 15:07:12 will be moved to 2019-12/2019-12-25 15.07.12.jpg
.
In addition:
- The library only renames (moves) images. No deletion or copy occurs.
- When two or more images have identical timestamp at the resolution of a second, the name will include milliseconds.
- If, despite the above, two files have the same target, only the file with the largest size on disk is moved.
- Animated movies (joint
.JPG/.MOV
files) are moved in pair. - Custom names are preserved, e.g.
My cute cat.jpg
is renamed to e.g.2019-12/2019-12-12 19.06.44 My cute cat.jpg
. - And, in case you change your mind,
sortpics
generates a undo script 😃
Normalize your image collection with
sortpics
in your picture folder. The output will be like this:
mv '2020-05-23/Custom name.jpg' '2020-05/2020-05-23 17.55.43 Custom name.jpg'
mv 2020-05-23/IMG_1554.JPG '2020-05/2020-05-23 16.55.13.JPG'
mv 2020-05-23/IMG_1555.JPG '2020-05/2020-05-23 16.55.43.JPG'
mv 2020-05-23/IMG_1555.MOV '2020-05/2020-05-23 16.55.43.MOV'
mv 2020/05/23/IMG_1556.JPG '2020-05/2020-05-23 18.55.13.123.JPG'
mv 2020/05/23/IMG_1557.JPG '2020-05/2020-05-23 18.55.13.251.JPG'
# Rerun with --no-test to rename the files, or execute 'bash .sortpics_test_2020-05-23T15.16.27.643763.sh'
# Undo the renaming with 'bash .sortpics_undo_test_2020-05-23T15.16.27.643763.sh'
# When you're done, clean up empty directories with 'find . -type d -empty -delete'
Note that the above only proposes a file renaming, and does not move any file at this stage.
If you agree with the proposal, you can run the script generated by sortpics
, or run sortpics --no-test
.
- Google Takeout is a convenient way to download your Google Photo collection
- Nathan Broadbent's ICloud Photo Downloader works well with ICloud
- Adrian Lopez's fdupes for finding exact duplicates.
To develop in this package, clone the project, and then create a dedicated Python environment with
conda env create --file environment.yml
and activate it with
conda activate sortpics
Then install the development version with
pip install -e .
If you want to contribute back** your changes, please install the pre-commit package with
pre-commit install
The tests for this package are in the tests
folder, and can be run with
pytest