Files
proton-drive-linux/docs/PHOTOS.md
T
nvrl 2f2fe96cdf fix(fuse,core,gui,cli): resumable, robust Google Photos import (#94)
A Takeout import cut short by a restart could never be resumed: the
duplicate check failed on the draft the interrupted upload left behind
("invalid type: null, expected a string"). SDK 0.12.0 skips such drafts,
lets the import replace them across logins, and removes the draft of a
failed upload (B285, B286).

The import keeps its archives and outcome in the state directory, so a
run the service did not finish is reported as interrupted and can be
resumed from the app or with `pdfs import-google-photos --resume`. An
unreadable archive is left out instead of failing the scan, a failure
keeps its counts and still files albums, and a cancel or shutdown is
only reported when work was left undone (B287).

ImportStatus carries the phase, its progress, the running counts and
what can be resumed; the summary says dry_run, to_upload and
error_kind. The app shows these in the user's language, and --wait
prints progress. An empty gallery waits for a timeline refresh already
running instead of starting a second one.

The scan imports only the Photos service of an export, reads geoData
into the photo's Location, pairs live and motion photos (.MOV, .MP) with
their stills, and dates a photo by name and EXIF before Google's upload
time (B288).
2026-11-15 17:17:47 +01:00

4.1 KiB

Photos

The Photos page of the app shows your Proton Photos library. Photos are stored apart from My files, so they do not appear in ~/ProtonDrive.

The Photos timeline

Timeline

  • The timeline groups photos by day, month or year as you zoom. Drag the scrubber on the right edge to jump through the years.
  • On this day shows photos taken on the same date in earlier years.
  • Filters narrow the timeline to images, videos or RAW files, to favorites, or to photos that are in no album.
  • RAW + JPEG pairs of the same shot show as one tile. The viewer switches between the two, and moving the tile to the Trash removes both.
  • Upload adds photos from this computer.

Albums

Albums lists your own albums and the albums others share with you. Create, rename and delete albums, and add or remove photos. Deleting an album keeps its photos in the timeline.

Places

Places on the map

Places groups photos by the town they were taken in, as cards or on a map. Town names come from GeoNames data (CC BY 4.0) and the map from Natural Earth (public domain). Both ship with the app, so nothing is fetched online.

A street map from OpenFreeMap (© OpenStreetMap contributors) can be turned on under Preferences → General → Appearance. It is off by default, because the map server learns which areas you look at.

Viewer and duplicates

  • The viewer marks favorites, shows EXIF details, shows a photo on the map, and runs a slideshow (F5).
  • Find Duplicates… in the page menu lists byte-identical copies. Turn on Similar to also find resized or re-encoded copies and burst shots.

Importing from Google Photos

  1. Request a Google Takeout export of Google Photos and download every .zip of it.
  2. In the app, open the Upload menu on the Photos page and choose Import from Google Photos…. Select all the .zip files at once, because a photo and its details are often in different parts of the export.
  3. Choose Scan to see what an import would do without uploading anything, then Import.

From a terminal:

pdfs import-google-photos --dry-run ~/Downloads/takeout-*.zip   # show what would happen
pdfs import-google-photos --wait ~/Downloads/takeout-*.zip

What the import takes from the export:

  • Albums are recreated. A photo that is in several albums is uploaded once and added to each.
  • Dates come from the export's details, else from a date in the file name, else from the photo's EXIF.
  • Places come from the export, so imported photos appear under Places.
  • Favorites are kept.
  • Live photos and motion photos stay one photo: the video is filed with its still.

What it leaves out: photos in Google's trash, and files from other Google services (Drive, YouTube) that are in the same export. A .zip that cannot be read is left out and named in the report; the rest still imports.

Photos already in your library are skipped, so an interrupted import can simply be run again. If the import was cut short, for example by a restart, the Import page offers Resume, and pdfs import-google-photos --resume does the same without naming the archives again. pdfs import-status shows how far an import is, and pdfs cancel-import stops it.

Fixing photos filed under the wrong date

Photos from an earlier import sometimes sit under the day they were uploaded instead of the day they were taken. pdfs redate-photos --dry-run finds those whose file name carries a different date, and pdfs redate-photos fixes them.

Proton cannot change a capture date in place. So each fix uploads the photo again with the right date and moves the original to the Trash. Favorites and albums are kept.