NAME

gphoto2 - command-line gphoto2 client

SYNOPSIS

gphoto2 [--debug] [--debug-logfile  FILENAME] [--debug-loglevel LEVEL] [[-q] | [--quiet]] [[-v] | [--verbose]] [[-h] | [--help]] [--usage]
 
[--hook-script  FILENAME]
 
[--list-cameras] [--list-ports] [--stdout] [--stdout-size] [--parsable]
 
[--auto-detect] [--port  PATH] [--speed SPEED] [--camera  MODEL]
 
[--filename  FILENAME] [--filenumber FILENUMBER]
 
[--usbid  USBIDS]
 
[[-a] | [--abilities]]
 
[[--folder  FOLDER] | [-f FOLDER]] [[[-R] | [--recurse]] | [--no-recurse]]
 
[[-l] | [--list-folders]]
 
[[-L] | [--list-files]] [[-m  NAME] | [--mkdir NAME]]
 
[[-r  NAME] | [--rmdir NAME]] [[-n] | [--num-files]]
 
[[-p  RANGE or NAME] | [--get-file RANGE or NAME]] [[-P] | [--get-all-files]]
 
[[-t  RANGE or NAME] | [--get-thumbnail RANGE or NAME]]
 
[[-T] | [--get-all-thumbnails]]
 
[--get-raw-data  RANGE or NAME] [--get-all-raw-data]
 
[--get-audio-data  RANGE or NAME] [--get-all-audio-data]
 
[--get-metadata  RANGE or NAME] [--get-all-metadata] [--upload-metadata  FILENAME]
 
[--force-overwrite]
 
[--new]
 
[[-d  RANGE or NAME] | [--delete-file RANGE or NAME]] [[-D] | [--delete-all-files]]
 
[[-u  FILENAME] | [--upload-file FILENAME]] [--config]
 
[--list-config] [--list-all-config]
 
[--get-config  CONFIGENTRY] [--set-config CONFIGENTRY=CONFIGVALUE] [--set-config-index  CONFIGENTRY=CONFIGINDEX] [--set-config-value  CONFIGENTRY=CONFIGVALUE] [--reset]
 
[--capture-preview] [--show-preview]
 
[[-F  COUNT] | [--frames COUNT]] [[-I SECONDS] | [--interval  SECONDS]]
 
[--reset-interval]
 
[--capture-image] [--trigger-capture] [--capture-movie  SECONDS or COUNT] [--capture-sound]
 
[--capture-tethered  SECONDS, COUNT or STRING]
 
[--wait-event  SECONDS, COUNT or STRING] [--wait-event-and-download  SECONDS, COUNT or STRING]
 
[--keep] [--no-keep]
 
[--show-info  RANGE or NAME]
 
[--show-exif  RANGE or NAME]
 
[--storage-info]
 
[--summary]
 
[--manual]
 
[--about]
 
[--shell]

DESCRIPTION

libgphoto2(3) is a cross-platform digital camera library, and is a command-line client for it.
Where an option takes a RANGE of files, thumbnails, or other data, they are numbered beginning at 1. A range is a comma-separated list of numbers or spans (“ first-last”). Ranges are XOR (exclusive or), so that “1-5,3,7” is equivalent to “1,2,4,5,7”.
--debug
Turn on debugging output. Debugging output is written to stderr by default, or to the filename given to the --debug-logfile option.
--debug-logfile FILENAME (since 2.3.0)
The logfile to write the debugging info to, if --debug is given.
--debug-loglevel LEVEL (since 2.5.5)
The verbosity of debug logging. Possible values with incrementing verbosity are: error, debug, data, all. Default is all.
--hook-script FILENAME (new after 2.3.0)
Execute the hook script FILENAME every time a certain event happens within gphoto2. The hook script reads the environment variable ACTION. It must ignore ACTION values unknown to it.
ACTION=init
gphoto2 has just been initialized. If the hook script returns with a non-zero exit code now, gphoto2 will abort.
ACTION=start
gphoto2 has just finished parsing the command line and is about to start executing the commands given on the command line.
ACTION=download
gphoto2 has just downloaded a file to the computer, storing it in the file indicated by the environment variable ARGUMENT.
ACTION=stop
gphoto2 is about to finish. Do your final cleanups here.
 
All other environment variables are passed to the hook script unchanged. You can make use of that to pass data to the hook script.
 
Hook script may be specified in the ~/.gphoto/settings file as gphoto2=hook-script= filename.
-q, --quiet
Quiet output (default=verbose).
-v, --version
Display version and exit.
-h, --help
Display options and short description.
--usage
Display a short usage message.
--list-cameras
List supported camera models.
--list-ports
List supported port devices.
--stdout
Send file to stdout.
--stdout-size
Print filesize before data.
--parsable
Outputs the filelist in a line based format that could be passed into a shellscript or other filter.
--auto-detect
List auto-detected cameras and the ports to which they are connected.
--port PATH
Specify port device. The --list-ports prints a list of valid, usable ports. In case of multiple USB cameras, the --auto-detect shows you the specific port each camera is connected to.
--speed SPEED
Specify serial transfer speed.
--camera MODEL
Specify camera model. The --list-cameras option prints a list of all explicitly supported cameras.
 
Most model names contain spaces: remember to enclose the name in quotes so that the shell knows it is one parameter. For example: --camera "Kodak DC240".
 
Note that if you specify --camera, you must also specify --port. Otherwise the --camera option will be silently ignored.
--filename FILENAME
When downloading files from the camera, specify the file name or file name pattern to use when storing the downloaded file on the local disk. When uploading a file to the camera, specify the filename to store the uploaded file as on the camera.
 
The --filename option accepts %a, %A, %b, %B, %d, %H, %k, %I, %l, %j, %m, %M, %S, %y, %%, (see date(1)) and, in addition, %n for the number, %C for the filename suffix, %f for the filename without suffix, %F for the foldername, %: for the complete filename in lowercase.
 
Note that %: is still in alpha stage, and the actual character or syntax may still be changed. E.g. it might be possible to use %#f and %#C for lower case versions, and %^f and %^C for upper case versions.
 
%n is the only conversion specifier to accept a padding character and width: %03n will pad with zeros to width 3 (e.g. print the number 7 as “007”). Leaving out the padding character (e.g. %3n) will use an implementation specific default padding character which may or may not be suitable for use in file names.
 
Default value for this option can be specified in the ~/.gphoto/settings file as gphoto2=filename=value.
--filenumber FILENUMBER
If you specify the filename using the --filename option and use the %n pattern, this pattern usually starts at 1. For incremental usage, you can use --filenumber to have it start at another number FILENUMBER.
--usbid USBIDS
(Expert only) Override USB IDs. USBIDS must be of the form DetectedVendorID :DetectedProductID= TreatAsVendorID :TreatAsProductID to treat any USB device detected as DetectedVendorID:DetectedProductID as TreatAsVendorID:TreatAsProductID instead. All the VendorIDs and ProductIDs should be hexadecimal numbers beginning in C notation, i.e. beginning with '0x'.
 
Example: --usbid 0x4a9:0x306b=0x4a9:0x306c
-a, --abilities
Display the camera and driver abilities specified in the libgphoto2 driver. This all does not query the camera, it uses data provided by the library. Use --summary to query an overview of the camera.
-f, --folder FOLDER
Specify camera folder (default="/").
-R, --recurse
Recursion (default for download).
--no-recurse
No recursion (default for deletion).
-l, --list-folders
List folders in folder.
-L, --list-files
List files in folder.
-m, --mkdir NAME
Create a directory.
-r, --rmdir NAME
Remove a directory.
-n, --num-files
Display number of files.
-p, --get-file RANGE
Get files given in range.
-P, --get-all-files
Get all files from folder.
-t, --get-thumbnail RANGE
Get thumbnails given in range.
-T, --get-all-thumbnails
Get all thumbnails from folder.
--get-raw-data RANGE
Get raw data given in range.
--get-all-raw-data
Get all raw data from folder.
--get-audio-data RANGE
Get audio data given in range.
--get-all-audio-data
Get all audio data from folder.
--upload-metadata FILENAME
Upload meta data for the specific file, taken from a file prefix with meta_ .
--get-metadata RANGE
Get meta data given in range.
--get-all-metadata
Get all meta data from folder.
--force-overwrite
Overwrite files without asking.
--skip-existing
Skip files if they exist already on the local directory.
--new
Only get not already downloaded files. This option depends on camera support of flagging already downloaded images and is not available for all drivers.
-d, --delete-file RANGE
Delete files given in range.
-D, --delete-all-files
Delete all files in folder (defaults to --no-recurse).
-u, --upload-file FILENAME
Upload a file to camera.
--capture-preview
Capture a quick preview.
-B--bulb SECONDS
Do a bulb capture for the specified amount of seconds.
--show-preview
Capture a quick preview and displays it in the terminal using Ascii Art (if aalib was used during build).
-F COUNT, --frames COUNT
Number of frames to capture in one run. Default is infinite number of frames.
-I SECONDS, --interval SECONDS
Time between capture of multiple frames.
 
(Since 2.4) If SIGUSR1 signal is received, a picture is taken immediately without waiting for the end of the current interval period (see the section called “SIGNALS”). A value of -1 will let gphoto2 wait forever, i.e. until a signal arrives. See also --reset-interval.
--reset-interval
Setting this option will reset the time interval to the value given by the -I|--interval option when a SIGUSR1 signal is received in time-lapse mode.
--capture-image
Capture an image and keep it on the camera.
--capture-image-and-download
Capture an image and download it immediately to the computer.
--trigger-capture
Triggers the capture an image and return. If you want to get the image downloaded, see --wait-event-and-download.
 
This feature is only available for some camera brands and drivers.
--keep
When doing --capture-image-and-download or interval capture, this option will keep the images on the memory card of the camera.
--no-keep
When doing --capture-image-and-download or interval capture, this option will not keep the images on the memory card of the camera after downloading them during capture. (default)
--keep-raw
When doing --capture-image-and-download or interval capture, this option will keep the RAW images on the memory card of the camera, but still download the JPEG images. This is useful when doing dual mode capture and you want to review the JPEGs already during capture.
--capture-movie SECONDS
Capture a movie. If the camera supports previews, this will capture a stream of previews (motion-jpeg) as fast as the camera can.
 
If not argument is specified, it will capture preview frames until you press Ctrl-C. Arguments that can be specified are either seconds of capture or number of preview frames.
--capture-sound
Capture an audio clip. No driver supports this at this time.
--capture-tethered SECONDS, MILLISECONDS, COUNT or MATCHSTRING
Lets gphoto2 wait for notifications from the camera that an object was added. This is useful for tethered capture, where pressing the shutter on the camera immediately transfer the image to the machine for processing.
 
Together with the --hook-script to immediately postprocess or display the images this can help a studio workflow.
 
This option requires support in the driver and by the camera, currently newer Canon EOS and Nikon DLSR work.
--wait-event SECONDS, MILLISECONDS, COUNT or MATCHSTRING, --wait-event-and-download SECONDS, MILLISECONDS, COUNT or MATCHSTRING
Lets gphoto2 wait for notifications from the camera for various events. This is useful for seeing what the camera does and waiting for objects to be added. The objects are kept on camera in the “--wait-event” version, with “--wait-event-and-download” they are downloaded.
 
--wait-event-and-download is equivalent to --capture-tethered.
 
The time to wait can be either specified as full seconds with a "s" suffix, a number of milliseconds with a "ms" suffix, as a number of events (just a number), or a sub-string to match. If nothing happens, a timeout is generated after 1 second, so a “wait-event=5” will take at most 5 seconds. A “--wait-event=5s” will take exactly 5 second.
 
It is also possible to wait for MATCHSTRING, for things like CAPTURECOMPLETE, FILEADDED, TIMEOUT or other events printed out.
 
If no argument is given, the wait time is 1 million events (basically forever).
 
In the download variant this can be used together with the --hook-script to immediately postprocess or display the images this can help a studio workflow.
 
This option requires support in the driver and by the camera.
 
If gphoto2 receives a SIGUSR1 during the wait, it will immediately take a picture (similar to “--capture-image”), and depending on mode either leave it on camera or download it. (Since 2.5.28)
 
If gphoto2 receives a SIGUSR2 during the wait, it will safely end the tethering. (Since 2.5.25)
--show-info RANGE
Show information for a single or multiple images, like width, height, size and/or the capture time
--config
Starts a ncurses based text configuration menu. gphoto2 needs to built against CDK for this feature.
--list-config
List all configuration entries.
--list-all-config
List all configuration entries and their values and choices.
 
This command is a combination of --list-config and calling --get-config on all the entries.
--get-config CONFIGENTRY
Get the specified configuration entry.
 
This command will list the type, the current value and also the available options of this configuration value.
--set-config CONFIGENTRY=CONFIGVALUE
Set the specified configuration entry. For lists of choices of values this setting first looks up CONFIGVALUE as value and then as index into the choice list. Since this is not fully clear, you can use --set-config-index or --set-config-value to be more clear what is searched for.
 
Look at the output of --get-config to see what values are possible to set here.
--set-config-index CONFIGENTRY=CONFIGINDEX
Set the specified configuration entry by specifying the index into the list of choices for the configuration value. This of course only works for configuration settings that offer list of choices.
 
Look at the output of --get-config to see what indices are possible to set here.
--set-config-value CONFIGENTRY=CONFIGVALUE
Set the specified configuration entry by specifying its new value. For lists of choices the value is looked up and set.
 
Look at the output of --get-config to see what values are possible to set here.
--reset
Resets the specified (or autodetected) USB port.
 
This command resets the USB port of either the first auto-detected camera, or the port specified with --port usb:XXX,YYY. This option is useful if somehow the protocol talking to the camera locked up and simulates plugging out and in the camera.
--storage-info
Display information about the camera's storage media.
--summary
Summary of camera status.
--manual
Camera driver manual.
--about
About the camera driver.
--shell
Start the gphoto2 shell, an interactive environment. See SHELL MODEfor a detailed description.

SHELL MODE

The following commands are available:
cd DIRECTORY
Change to the specified directory on the camera.
ls
List the contents of the current directory on the camera.
lcd DIRECTORY
Change to the specified directory on the local machine.
get FILENAME
Download the specified file to the current directory.
put FILENAME
Upload the specified file from the current system directory to the cameras current directory.
get-thumbnail FILENAME
Download the specified thumbnail to the current directory.
get-raw FILENAME
Download the specified raw data to the current directory.
show-info FILENAME
Show information of the specified file.
delete FILENAME
Delete the specified file or directory.
mkdir DIRECTORY
Creates a directory named “DIRECTORY”.
rmdir DIRECTORY
Removes a directory named “DIRECTORY”.
show-exif FILENAME
Show EXIF information (only if compiled with EXIF support).
capture-image
Captures a single image and keeps it on the camera.
capture-image-and-download
Captures a single image and downloads it from the camera.
capture-preview
Captures a preview image and downloads it from the camera.
list-config
Lists all configuration values.
get-config NAME
Gets the configuration specified by “NAME”.
set-config NAME=VALUE
Sets the configuration specified by “NAME” to “VALUE”.
set-config-value NAME=VALUE
Sets the configuration specified by “NAME” to “VALUE”.
set-config-index NAME=VALUE
Sets the configuration specified by “NAME” to the “INDEX” into the list of choices. Works only for Menu or Radio button entries.
wait-event COUNT or SECONDS
Waits for events from the camera for the specified time in SECONDS (if suffixed with s) or the COUNT of events from the camera, where every seconds a timeout event happens. Newly added images are kept on the camera.
 
Default is 1 event.
wait-event-and-download COUNT or SECONDS, capture-tethered COUNT or SECONDS
Waits for events from the camera for the specified time in SECONDS (if suffixed with s) or the COUNT of events from the camera, where every seconds a timeout event happens. Newly added images are downloaded from the camera.
 
Default is 1 event.
help, ?
Displays command usage.
exit, quit, q
Exit the gphoto2 shell.

ENVIRONMENT VARIABLES

CAMLIBS
If set, defines the directory where the libgphoto2 library looks for its camera drivers (camlibs). You only need to set this on OS/2 systems and broken/test installations.
IOLIBS
If set, defines the directory where the libgphoto2_port library looks for its I/O drivers (iolibs). You only need to set this on OS/2 systems and broken/test installations.
LD_DEBUG
Set this to all to receive lots of debug information regarding library loading on ld based systems.
USB_DEBUG
If set, defines the numeric debug level with which the libusb library will print messages. In order to get some debug output, set it to 1.

SIGNALS

SIGUSR1 (since 2.4)
In time-lapse capture and in tethering or wait-event mode, receiving a SIGUSR1 signal makes gphoto2 take a picture immediately.
 
If the --reset-interval option is given, the time counter is reset to the value given by the -I|--interval option. Note that the camera will need some time (from 50ms to a few seconds) to actually capture the image.
SIGUSR2 (since 2.5.26)
In tethering or wait-event mode, receiving a SIGUSR2 signal ends the tethering or wait-event mode. This is useful if you do not know the end before hand, but still want to safely exit the waiting.

SEE ALSO

libgphoto2(3), The gPhoto2 Manual[1],
 
The gphoto.org website[2], Digital Camera Support for UNIX, Linux and BSD[3]

EXAMPLES

gphoto2 --list-ports
Shows what kinds of ports (USB and serial) you have.
gphoto2 --auto-detect
Shows what camera(s) you have connected.
gphoto2 --list-files
List files on camera.
gphoto2 --get-file 7-13
Get files number 7 through 13 from the list output by gphoto2 --list-files.
gphoto2 --capture-image --interval 60 --hook-script /usr/share/doc/gphoto2/test-hook.sh
Capture one image every 60 seconds from now to eternity. The example hook script will be called after each captured image has been stored on the computer.
To track down errors, you can add the --debug parameter to the gphoto2 command line and, if dealing with USB problems, setting the environment variable USB_DEBUG=1.

AUTHORS

Tim Waugh
Author.
Hans Ulrich Niedermann, current maintainer <[email protected]>
Author.
Michael J. Rensing
Author.
Marcus Meissner <[email protected]>
Author.
Miscellanous Contributors.
The gPhoto2 Team
Author.
Tim Waugh <[email protected]>
Original man page author.
Hans Ulrich Niedermann <[email protected]>
Current man page editor.

NOTES

1.
The gPhoto2 Manual
2.
The gphoto.org website
3.
Digital Camera Support for UNIX, Linux and BSD

Recommended readings

Pages related to gphoto2 you should read also: