Skip to main content
photo-cli info scans photos in a folder, extracts each photo’s EXIF date taken and GPS coordinates, optionally resolves those coordinates to a human-readable address through a reverse geocode provider, and writes all the data to a CSV file. No files are copied or modified. The resulting CSV can be opened in any spreadsheet application or imported directly into Google My Maps or Google Earth for interactive location exploration.

Synopsis

Use cases

  • Audit your photo collection to see which photos are missing dates or GPS data.
  • Build a spreadsheet of photo locations and dates for personal records.
  • Import photo coordinates into Google My Maps to visualize where your photos were taken on an interactive map.
  • Import into Google Earth Desktop and export as KMZ/KML for use in Google Earth Web.

Arguments

Required

string
required
File system path where the CSV report will be written. Include the file name and .csv extension — for example, photo-info.csv.

Optional

string
File system path to read photos from. Defaults to the current working directory. No files in this path are modified.
boolean
Scan all subfolders recursively. Without this flag only the top-level input folder is scanned. No extra value required — pass the flag alone.
enum
Action to take when a photo has no EXIF date taken.
enum
Action to take when a photo has no GPS coordinate.
enum
Action to take when a file cannot be parsed as a valid photo format.
enum
Action to take when any photo has missing reverse geocode information.
enum
Third-party provider used to resolve GPS coordinates into a human-readable address. See reverse geocoding overview for provider setup and API key details.
string
Space-separated OpenStreetMap address property names used to build the address string. Required when --reverse-geocode is OpenStreetMapFoundation or LocationIq. Example: country city town suburb.
string
Space-separated BigDataCloud admin level numbers. Required when --reverse-geocode is BigDataCloud.
string
API key for BigDataCloud. Also configurable via the PHOTO_CLI_BIG_DATA_CLOUD_API_KEY environment variable.
string
Space-separated Google Maps address component types. Required when --reverse-geocode is GoogleMaps.
string
API key for Google Maps. Also configurable via the PHOTO_CLI_GOOGLE_MAPS_API_KEY environment variable.
string
API key for LocationIq. Also configurable via the PHOTO_CLI_LOCATIONIQ_API_KEY environment variable.
boolean
Bypass the free-tier rate limit when using LocationIq with a paid license.
string
Language/culture value to get localized address results from the reverse geocode provider. See your provider’s documentation for supported values.

Example

Console output

CSV output columns

The output CSV contains one row per photo with the following columns:

Google Maps and Google Earth integration

The CSV output from photo-cli info (or photo-cli copy) can be imported directly into Google’s mapping tools to visualize your photo locations on an interactive map. Google My Maps
  1. Open Google My Maps and create a new map.
  2. On a layer, click Import and upload your CSV file.
  3. Select Latitude and Longitude as the location columns, and choose a column such as ReverseGeocodeFormatted as the marker title.
You can add multiple layers — for example, one per year or per trip. Google Earth Desktop
  1. Install Google Earth Desktop.
  2. From the File menu, choose Import and select your CSV file.
  3. Map the latitude/longitude columns when prompted.
Google Earth Web Google Earth Web does not support direct CSV import. Instead, import your CSV into Google Earth Desktop first, then save the result as a KMZ or KML file. You can then create a project in Google Earth Web and add the KML file to it.