Skip to content

Pictures from Google Photos, ICloud, or your Camera... all sorted!

License

Notifications You must be signed in to change notification settings

mwouts/sortpics

Repository files navigation

Pictures from Google Photos, ICloud, or your Camera... all sorted!

CI codecov.io Language grade: Python Pypi pyversions Code style: black

Installation

Install the library with

pip install sortpics

Main features

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 😃

Sample run

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.

Useful links

Develop in this package

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

About

Pictures from Google Photos, ICloud, or your Camera... all sorted!

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages