1
0
mirror of https://github.com/sashacmc/photo-importer.git synced 2024-11-16 10:08:40 +02:00
Command line and web tools for photo importing/renaming/rotating
Go to file
2024-10-31 00:55:55 +01:00
.github/workflows Fix CI pipelines 2024-10-31 00:49:57 +01:00
debian Add Clear button for server import 2024-10-31 00:45:19 +01:00
photo_importer Add Clear button for server import 2024-10-31 00:45:19 +01:00
web Add Clear button for server import 2024-10-31 00:45:19 +01:00
.gitignore Update setup scripts 2022-11-28 00:25:35 +01:00
LICENSE Initial commit 2018-05-05 18:36:38 +02:00
photo-importer Python/Debian packages and systemd service added. 2019-11-27 23:52:37 +01:00
photo-importer-server Python/Debian packages and systemd service added. 2019-11-27 23:52:37 +01:00
photo-importer-server.bat Add Windows support 2022-01-31 00:12:34 +01:00
photo-importer-win.cfg Add add_orig_name option 2022-12-20 01:05:10 +01:00
photo-importer.cfg Version 1.2.4 2024-05-22 23:27:02 +02:00
photo-importer.service Python/Debian packages and systemd service added. 2019-11-27 23:52:37 +01:00
README.md Update dependencies for debian package test build 2024-07-09 00:48:05 +02:00
requirements.txt Add python workflow and dependencies file 2023-05-25 21:27:10 +02:00
setup.py Update setup.py version 2024-10-31 00:55:55 +01:00

Photo Importer

CodeQL PyPI - Version PyPI - Downloads Code style: black

Command line tools for photo importing/renaming/rotating

Features:

  • Media files scan
  • Time when picture was taken detection (by EXIF, by file name, by file attributes)
  • Media files moving/copying to configurable hierarchy
  • Lossless rotations (via exiftran or jpegtran)

Photo Importer Server

Standalone web server for fast media import for headless computer

Features:

  • Mounted storages detection (by path mask)
  • Storages mount/unmount (via pmount)
  • The same as photo-importer but without console

Installation

Requirements:

  • Python 3.3+

Supported OS:

  • Debian based Linux (other Linux versions not officially supported, but might work)
  • Windows 7 and above
  • MacOS X and above (with brew installed, only console version)

Dependencies:

Installation Options:

Installing via PyPi

sudo apt install exiftran exiftool pmount pip
sudo pip install photo-importer

Installing as debian package

debuild -b
sudo apt install pip python3-exif python3-progressbar exiftran python3-psutil
sudo pip install PyExifTool
sudo dpkg -i ../photo-importer_1.2.5_all.deb

Installing via setup.py

sudo apt install exiftran exiftool pmount pip
sudo pip install PyExifTool progressbar psutil
sudo python3 ./setup.py install

Installing for Windows

Download and install python3 for you Windows distributive https://www.python.org/downloads/windows/

Download and install exiftool https://exiftool.org/

Download and extract jpegtran to photo_importer folder http://sylvana.net/jpegcrop/jpegtran/

Install with python dependencies

python -m pip install pypiwin32 photo-importer

Usage

Command-Line Interface

photo-importer /path/to/media/files

Will process files (reanaming/rotating) in-place. In place example

photo-importer /path/to/media/files /output/path

Will import (by default move, but it can be changed in config) files from /path/to/media/files to /output/path with date hierarchy creation and reanaming/rotating

Move example

Web Interface

  • attach usb-drive / usert memory card
  • open http://servername:8080
  • click "Mount"
  • click "Import"
  • click "Unmount"

Web interface example

Windows command line

cd photo_importer
run.py -c ..\photo-importer-win.cfg path\to\media\files \output\path

Windows web

photo-importer-server.bat

Configuration

The server config file located in /etc/photo-importer.cfg

Command line tool config file located in ~/.photo-importer.cfg

Also config file can be specified by mean of -c command line option.

For options details see comments in the config file.

Acknowledgements

Thanks to everyone who tested and gave advice.

Bug reports, suggestions and pull request are welcome!

Show your support

Give a ️ if this project helped you!