A Python script to keep my photos from Dropbox organized.
Project description
photosorter
===========
.. image:: https://img.shields.io/pypi/v/minchin.scripts.photosorter.svg?style=flat
:target: https://pypi.python.org/pypi/minchin.scripts.photosorter/
.. image:: https://travis-ci.org/MinchinWeb/minchin.scripts.photosorter.svg?branch=master
:target: https://travis-ci.org/dbader/photosorter)
.. image:: https://coveralls.io/repos/MinchinWeb/minchin.scripts.photosorter/badge.svg?branch=master
:target: https://coveralls.io/r/dbader/photosorter?branch=master
A little Python script to keep my photos from Dropbox organized. Designed to be
run intermittently, but will run forever by default.
It watches a *source directory* for modifications and moves new image files to
a *target directory* depending on when the photo was taken, using EXIF data and
creation date as a fallback.
Directory and file names follow a simple naming convention
(``YYYY-MM/YYY_MM_DD/YYYY-MM-DD hh:mm:ss.ext``) that keeps everything neatly
organized. Duplicates are detected and ignored based on their SHA1 hash. Photos
taken in the same instant get de-duplicated by adding a suffix (``-1``, ``-2``,
etc) to their filenames.
The result looks somewhat like this:
├── 2013-01
│  ├── 2013_01_05
│ │  ├── 2013-01-05\ 13.24.45.jpg
│ │  ├── 2013-01-05\ 14.25.54.jpg
│ │  └── 2013-01-05\ 21.28.48-1.jpg
│  ├── 2013_01_06
│ │  ├── 2013-01-06\ 16.05.02.jpg
│ │  ├── 2013-01-06\ 19.59.25.jpg
│ │  ├── 2013-01-06\ 20.40.28.jpg
│ │  └── 2013-01-06\ 21.14.38.jpg
│  └── 2013_01_08
│   └── 2013-01-08\ 11.45.51.jpg
├── 2013-02
| └─ ...
├── ...
├── 2013-12
├── 2014-01
├── 2014-02
├── ...
├── 2014-12
├── ...
I use ``C:\Users\[windows username\Dropbox\Camera Uploads`` as the source
directory and ``Z:\Photos`` as the target. This allows me to move my photo from
Dropbox to a local drive, and merge them with the rest of my photo collection.
Inspired by
- <http://simplicitybliss.com/exporting-your-iphoto-library-to-dropbox/>
- <https://github.com/wting/exifrenamer>
- <http://chambersdaily.com/learning-to-love-photo-management/>
- <https://dbader.org/blog/how-to-store-photos-in-the-cloud-and-avoid-vendor-lock-in>
Setup
-----
The easiest way to install the script is through pip:
> pip install minchin.scripts.photosorter
Run
---
Watch `src_dir` and sort incoming photos into ``dest_dir``:
> photosorter src_dir dest_dir
When you're done with it, ``Ctrl + C`` will end the program.
If you also want to move the existing files in ``src_dir`` (which are, by
default, ignored):
> photosorter src_dir dest_dir --move-existing
Run on System Startup
---------------------
.. note:: This is currently un-tested.
1. Move `photosorter.conf.example` to `/etc/init` as `photosorter.conf`
and edit it to suit your needs by replacing the user, source and target
directories.
2. Run `$ sudo start photosorter`.
3. Check the logs at `/var/log/upstart/photosorter.log`.
Meta
----
Distributed under the MIT license. See ``LICENSE.txt`` for more information.
https://github.com/MinchinWeb/minchin.scripts.photosorter
Changes
------
2.1.0 -- 2017-08-28
"""""""""""""""""""
- also move MP4 files
- add changelog to readme
2.0.0 -- 2017-08-27
"""""""""""""""""""
- move to ``minchin.scripts.photosorter`` namespace
- do releases via ``minchin.releaser``
- add option to move existing files
===========
.. image:: https://img.shields.io/pypi/v/minchin.scripts.photosorter.svg?style=flat
:target: https://pypi.python.org/pypi/minchin.scripts.photosorter/
.. image:: https://travis-ci.org/MinchinWeb/minchin.scripts.photosorter.svg?branch=master
:target: https://travis-ci.org/dbader/photosorter)
.. image:: https://coveralls.io/repos/MinchinWeb/minchin.scripts.photosorter/badge.svg?branch=master
:target: https://coveralls.io/r/dbader/photosorter?branch=master
A little Python script to keep my photos from Dropbox organized. Designed to be
run intermittently, but will run forever by default.
It watches a *source directory* for modifications and moves new image files to
a *target directory* depending on when the photo was taken, using EXIF data and
creation date as a fallback.
Directory and file names follow a simple naming convention
(``YYYY-MM/YYY_MM_DD/YYYY-MM-DD hh:mm:ss.ext``) that keeps everything neatly
organized. Duplicates are detected and ignored based on their SHA1 hash. Photos
taken in the same instant get de-duplicated by adding a suffix (``-1``, ``-2``,
etc) to their filenames.
The result looks somewhat like this:
├── 2013-01
│  ├── 2013_01_05
│ │  ├── 2013-01-05\ 13.24.45.jpg
│ │  ├── 2013-01-05\ 14.25.54.jpg
│ │  └── 2013-01-05\ 21.28.48-1.jpg
│  ├── 2013_01_06
│ │  ├── 2013-01-06\ 16.05.02.jpg
│ │  ├── 2013-01-06\ 19.59.25.jpg
│ │  ├── 2013-01-06\ 20.40.28.jpg
│ │  └── 2013-01-06\ 21.14.38.jpg
│  └── 2013_01_08
│   └── 2013-01-08\ 11.45.51.jpg
├── 2013-02
| └─ ...
├── ...
├── 2013-12
├── 2014-01
├── 2014-02
├── ...
├── 2014-12
├── ...
I use ``C:\Users\[windows username\Dropbox\Camera Uploads`` as the source
directory and ``Z:\Photos`` as the target. This allows me to move my photo from
Dropbox to a local drive, and merge them with the rest of my photo collection.
Inspired by
- <http://simplicitybliss.com/exporting-your-iphoto-library-to-dropbox/>
- <https://github.com/wting/exifrenamer>
- <http://chambersdaily.com/learning-to-love-photo-management/>
- <https://dbader.org/blog/how-to-store-photos-in-the-cloud-and-avoid-vendor-lock-in>
Setup
-----
The easiest way to install the script is through pip:
> pip install minchin.scripts.photosorter
Run
---
Watch `src_dir` and sort incoming photos into ``dest_dir``:
> photosorter src_dir dest_dir
When you're done with it, ``Ctrl + C`` will end the program.
If you also want to move the existing files in ``src_dir`` (which are, by
default, ignored):
> photosorter src_dir dest_dir --move-existing
Run on System Startup
---------------------
.. note:: This is currently un-tested.
1. Move `photosorter.conf.example` to `/etc/init` as `photosorter.conf`
and edit it to suit your needs by replacing the user, source and target
directories.
2. Run `$ sudo start photosorter`.
3. Check the logs at `/var/log/upstart/photosorter.log`.
Meta
----
Distributed under the MIT license. See ``LICENSE.txt`` for more information.
https://github.com/MinchinWeb/minchin.scripts.photosorter
Changes
------
2.1.0 -- 2017-08-28
"""""""""""""""""""
- also move MP4 files
- add changelog to readme
2.0.0 -- 2017-08-27
"""""""""""""""""""
- move to ``minchin.scripts.photosorter`` namespace
- do releases via ``minchin.releaser``
- add option to move existing files
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for minchin.scripts.photosorter-2.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b16f237945063c09c1ffc7d9416da59a78e1af6a71f0b95ad9525e2e5aab5d17 |
|
MD5 | 021682c0698bf2ba42ee65feaf125e00 |
|
BLAKE2b-256 | 8b1826452697bf9c560d878b8a54fd7227ab62b7c5b6dd61ed9f8289ac3e6f3b |
Close
Hashes for minchin.scripts.photosorter-2.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13440ac61d2a52618ffea1c39efc8f05fa08baf5dd479eb9bdc660256bb03e80 |
|
MD5 | f554af98e77cce7b31c824b1da848fce |
|
BLAKE2b-256 | 161c9f74c76d142ea6b3f605ae9484a8d47a3383e7afc01703a85dcce0c62f73 |