summaryrefslogtreecommitdiff
path: root/README.rst
blob: ca09bbff8489f02d35a480a10c4f0cc7d9c00b96 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
Rapid Photo Downloader
======================

Contents
--------

- `Description`_
- `Install on Ubuntu, openSUSE, Debian, and Fedora`_
- `Supported Linux Versions`_
- `Software Requirements and Program Installation on Other Systems`_
    - `Satisfying Software Requirements`_
    - `Installation`_
    - `Uninstallation`_

Description
===========

Rapid Photo Downloader imports photos and videos from cameras, phones,
memory cards and other devices at high speed. It can be configured to
rename photos and videos with meaningful filenames you specify. It can also
back up photos and videos as they are downloaded. It downloads from and backs
up to multiple devices simultaneously.

Unique to Rapid Photo Downloader is its Timeline, which groups photos and
videos based on how much time elapsed between consecutive shots. Use it to
identify photos and videos taken at different periods in a single day or
over consecutive days.

Written by a photographer_ for professional and amateur photographers, Rapid
Photo Downloader is easy to configure and use. Program preferences are
configured without the need for complicated codes. Common tasks can be
automated, such as unmounting a memory card when the download is complete.

A helper command-line program accompanying Rapid Photo Downloader is
``analyze_pv_structure``, which analyzes photos and videos to help determine
how much of a file needs to be read to extract its metadata and thumbnail.

Rapid Photo Downloader currently runs only on Linux. Theoretically it could be
ported to both Mac and Windows with minimal effort. The one gotcha is that
that Windows lacks gphoto2, meaning when run under Windows, it could not
download directly from cameras unless it used something else.

The program is licensed under the GPL3_ or later.

Install on Ubuntu, openSUSE, Debian, and Fedora
===============================================

To install Rapid Photo Downloader, run as your regular user (i.e. *without* sudo):

``python3 install.py``

The program sudo may prompt for your administrator (root) password during the
install process, if required.

For a list of optional commands you can give the insaller, run:

``python3 install.py --help``

Finally, to uninstall:

``python3 -m pip uninstall rapid-photo-downloader``

If you installed the man pages, they are found in ``/usr/local/share/man/man1``.

Supported Linux Versions
========================

 - Ubuntu 16.04 or newer
 - LinuxMint 18 or newer
 - Debian 9, unstable or testing
 - Fedora 25 or newer
 - openSUSE Leap 42.2 or newer
 - Any distribution meeting the software requirements below

Software Requirements and Program Installation on Other Systems
===============================================================

The program is installed using the Python tool pip_, which automates almost
all aspects of the program's installation by using PyPi_ to download Python modules.

Rapid Photo Downloader requires:

 - Python 3.4 or greater, and its development headers
 - PyQt_ 5.4 or greater
 - Qt_ 5.4 or greater
 - `Python gobject introspection`_ modules:
    - GUdev 1.0
    - UDisks 2.0
    - GLib 2.0
    - GExiv2 0.10
    - Gst 1.0
    - Notify 0.7
 - `python-gphoto2`_ 1.4.0 or newer
 - pyzmq_
 - tornado_
 - psutil_ 3.4.2 or newer
 - pyxdg_
 - Arrow_
 - dateutil_ 2.2 or newer
 - exiv2_
 - ExifTool_ 0.97.4 or older (0.98 has a critical bug)
 - EasyGUI_
 - Colour_
 - pymediainfo_
 - SortedContainers_
 - rawkit_: renders thumbnails from RAW images from which a thumbnail cannot be extracted using
   libraw_, which is especially useful when downloading DNG files from Android phones or working
   with old RAW formats.
 - `Qt5 plugin for reading TIFF images`_
 - Requests_
 - intltool_
 - If using Python 3.4, these additional modules:
    - typing_
    - scandir_

Highly recommended, optional dependencies:

 - colorlog_: generates coloured program output when running Rapid Photo Downloader from the
   terminal.
 - pyprind_: shows a progress bar on the command line while running the program
   ``analyze_pv_structure``.

Satisfying Software Requirements
--------------------------------

While Rapid Photo Downloader's installer will automatically download and install most
required Python modules not already found on your system, there are some it cannot install.
You must install these Python modules and a few other programs prior to installing Rapid Photo
Downloader. The Python module requirements are the Python 3 versions of:

 - PyQt_ 5.4 or greater
 - All `Python gobject introspection`_ modules listed above

The non-Python programs required are:

 - ExifTool_
 - exiv2_
 - Given `python-gphoto2`_ will almost certainly be installed from PyPi_, the development
   packages for libgphoto2 and Python3 must be installed first, e.g. libgphoto2-dev
   and python3-dev
 - Likewise, given pymediainfo_ will almost certainly be installed from PyPi_,
   the package libmediainfo must be installed.
 - If installing pyzmq_ from PyPi_, you must first install the development
   packages for libzmq3 and Python3, e.g. libzmq3-dev and python3-dev
 - Qt5 plugin for reading TIFF images
 - If installing rawkit_ from PyPi_, libraw is required, e.g. libraw10 or libraw15.
 - If installing EasyGUI_ from PyPi_, ensure the Tkinter package for Python 3 is installed.

Installation
------------

After `satisfying software requirements`_ using your Linux distribution's standard package
installation tools, you should install Rapid Photo Downloader using the following steps.

First, you may need to update your user's copy of pip and setuptools:

``python3 -m pip install --user --upgrade pip``

``python3 -m pip install --user --upgrade setuptools wheel``

The following command will install all required and optional Python modules not already
installed on your system, with the exception of those specified above in
`satisfying software requirements`_:

``python3 install.py``

**Caution:** *untarring the archive, building it and installing it using* ``sudo python3 setup.py
install`` *is* **not** *supported, and* **not** *recommended.*

Uninstallation
--------------

Assuming you installed using the instructions above, run:

``python3 -m pip uninstall rapid-photo-downloader``

If you installed the man pages, they are found in ``/usr/local/share/man/man1``.


.. _website: http://damonlynch.net/rapid
.. _Python gobject introspection: https://wiki.gnome.org/action/show/Projects/PyGObject
.. _python-gphoto2: https://github.com/jim-easterbrook/python-gphoto2
.. _pyzmq: https://github.com/zeromq/pyzmq
.. _psutil: https://github.com/giampaolo/psutil
.. _pyxdg: https://www.freedesktop.org/wiki/Software/pyxdg/
.. _Arrow: https://github.com/crsmithdev/arrow
.. _dateutil: https://labix.org/python-dateutil
.. _typing: https://pypi.python.org/pypi/typing
.. _scandir: https://github.com/benhoyt/scandir
.. _colorlog: https://github.com/borntyping/python-colorlog
.. _rawkit: https://github.com/photoshell/rawkit
.. _pyprind: https://github.com/rasbt/pyprind
.. _exiv2: http://www.exiv2.org/
.. _ExifTool: http://www.sno.phy.queensu.ca/~phil/exiftool/
.. _PyPi: https://pypi.python.org/pypi
.. _GPL3: http://www.gnu.org/licenses/gpl-3.0.en.html
.. _photographer: http://www.damonlynch.net
.. _pip: https://pip.pypa.io/en/stable/
.. _libraw: http://www.libraw.org/
.. _PyQt: https://riverbankcomputing.com/software/pyqt/intro
.. _EasyGUI: https://github.com/robertlugg/easygui
.. _Colour: https://github.com/vaab/colour
.. _intltool: https://freedesktop.org/wiki/Software/intltool/
.. _Tkinter: https://wiki.python.org/moin/TkInter
.. _`Qt5 plugin for reading TIFF images`: http://doc.qt.io/qt-5/qtimageformats-index.html
.. _pymediainfo: https://github.com/sbraz/pymediainfo
.. _Qt: https://www.qt.io/
.. _SortedContainers: http://www.grantjenks.com/docs/sortedcontainers/
.. _Requests: http://docs.python-requests.org/
.. _tornado: http://www.tornadoweb.org/