Organize my photos and videos.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Organize my photos and videos.

NPM Build Status js-standard-style Greenkeeper badge



npm install @lukekarrys/organize-photos -g


npm install @lukekarrys/organize-photos --save

What does this do?

  1. Takes a src dir and copies everything to a dest dir
  2. Every file copied is cleaned up with the following
    1. Lowercase file extension
    2. Removes trailing #5 and (3) from filenames
  3. If a file is not a recognized type it is moved to dest/UNKNOWN
  4. If a file has no date associated, it is moved to dest/UNSORTED
  5. If a file does have a date, it is moved to dest/yyyy/mm/dd/yyyy-mm-dd hh:mm:ss.ext
  6. Dates are found by the following
    1. exif CreateDate field
    2. Any other exif fields passed in with exifDate
    3. Some special filenames like screenshots or photobooth files
    4. If the file is named like yyyy-mm-dd hh?:mm?:ss?
    5. A parent directory that is named like yyyy-mm-dd hh?:mm?:ss?
  7. If no exif dates are found, but a date is found from the path, that will be written to exif data
  8. Files are never clobbered but instead a-z is appended to the destination until there are no conflicts
  9. By default, everything is a dry run (can be changed with real)
  10. By default, dest is never cleared but always added to (can be changed with clean)
  11. Can optionally move all the files instead