What is the problem you are having with rclone?
In short: some photos are added to the album, others are copied. Explanation and context below.
First of all there is no straightfoward command to add photos into an album, so the "move" command seemed to be the closest one, even if the photo will not be deleted from the Photo Library after it is in the Album. I did some research, I checked the man pages, the git repo, and here in the forum, this guy had basically the same issue, but there was no solution in that case.
I tried to use the move
command in random photos and the result was that it was creating a new photo in the album instead of adding the the photo in the album. The final situation is that I end up with 2 photos, the original one in no album (Photo Library) and the copy in the album. And you can notice the one in the Album (IMG_0759_Original.JPG) is a copy because:
- The photo details in GPhoto says "Uploaded from rclone", instead of "Uploaded from iOS" as the photo out of the Album
- The photo detail shows "Backed up (1.8 MB) Original Quality", as opposed to the photo outside of the shows "Backed up (3.6 MB) Original Quality"
- The photo does NOT have GPS details, differently from the photo outside of the Album that does have GPS information.
But then, by chance, I tried another photo (IMG_1650_Original.JPG) and that one was not copied. It was indeed added to the album.
I removed it from the album, deleted the copy in the album, kept the album empty again and tried several times, and it is always the same result.
I'm showing some screenshots of what I described
The 3 photos in question (the 2 original ones and the copy). You can see in the top left that they are the result of a search in Google Photos, then the 3 photos are expanded below and then you see that the first is the original that was not added to the Album (it is larger in MB, it has GPS, and it says it was uploaded by iOS), the second one is the copy of the first one that was added to the album (you can see the album name on the top of the information, it also says it was uploaded by rclone, it has no GPS coordinates and it is smaller in MB). The third one is the one that was actually added to the album (album name on top, it says it was uploaded by iOS and it has GPS coordinates
PS: I wanted to provide here the 2 photos for simulation, but the 2 photos are Live, and if you download them, Google provides the JPG and the MOV, and I don't know if that would impact the simulation.
It is clear that with one of the photos rclone can do something that is actually adding the photo to the album, and with the other photo, rclone is downloading it locally and re-uploading to the album. I gues the questions here are:
- Why is it behaving like that (some photos, maybe most are copied while some others are added)?
- How to make rclone always add photos to albums withouth creating copies?
- Is there another process to do that that I'm not aware of?
Run the command 'rclone version' and share the full output of the command.
rclone v1.65.2
- os/version: linuxmint 20.2 (64 bit)
- os/kernel: 5.4.0-74-generic (x86_64)
- os/type: linux
- os/arch: amd64
- go/version: go1.21.6
- go/linking: static
- go/tags: none
Which cloud storage system are you using? (eg Google Drive)
Google Photos
The command you were trying to run (eg rclone copy /tmp remote:tmp
)
rclone move remote-ap2:media/all/IMG_0759_Original.JPG remote-ap2:album/Temp_Album_20385
rclone move remote-ap2:media/all/IMG_1650_Original.JPG remote-ap2:album/Temp_Album_20385
Please run 'rclone config redacted' and share the full output. If you get command not found, please make sure to update rclone.
[remote-ap2]
type = google photos
token = XXX
### Double check the config for sensitive info before posting publicly
A log from the command that you were trying to run with the -vv
flag
Command:
rclone -vv move remote-ap2:media/all/IMG_0759_Original.JPG remote-ap2:album/Temp_Album_20385
Result:
2024/02/07 18:08:48 DEBUG : rclone: Version "v1.65.2" starting with parameters ["rclone" "-vv" "move" "remote-ap2:media/all/IMG_0759_Original.JPG" "remote-ap2:album/Temp_Album_20385"]
2024/02/07 18:08:48 DEBUG : Creating backend with remote "remote-ap2:media/all/IMG_0759_Original.JPG"
2024/02/07 18:08:48 DEBUG : Using config file from "/home/alien/.config/rclone/rclone.conf"
2024/02/07 18:08:48 DEBUG : Google Photos path "media/all": NewObject: remote="IMG_0759_Original.JPG"
2024/02/07 18:08:48 DEBUG : Google Photos path "media/all": List: dir=""
2024/02/07 18:08:48 DEBUG : remote-ap2: Loaded invalid token from config file - ignoring
2024/02/07 18:08:48 DEBUG : Saving config "token" in section "remote-ap2" of the config file
2024/02/07 18:08:48 DEBUG : remote-ap2: Saved new token in config file
2024/02/07 18:09:08 DEBUG : Google Photos path "media/all": >List: err=<nil>
2024/02/07 18:09:08 DEBUG : Google Photos path "media/all": >NewObject:
2024/02/07 18:09:08 DEBUG : fs cache: adding new entry for parent of "remote-ap2:media/all/IMG_0759_Original.JPG", "remote-ap2:media/all"
2024/02/07 18:09:08 DEBUG : Creating backend with remote "remote-ap2:album/Temp_Album_20385"
2024/02/07 18:09:08 DEBUG : Google Photos path "media/all": NewObject: remote="IMG_0759_Original.JPG"
2024/02/07 18:09:08 DEBUG : Google Photos path "media/all": List: dir=""
2024/02/07 18:09:24 DEBUG : Google Photos path "media/all": >List: err=<nil>
2024/02/07 18:09:24 DEBUG : Google Photos path "media/all": >NewObject:
2024/02/07 18:09:24 DEBUG : Google Photos path "album/Temp_Album_20385": NewObject: remote="IMG_0759_Original.JPG"
2024/02/07 18:09:24 DEBUG : Google Photos path "album/Temp_Album_20385": List: dir=""
2024/02/07 18:09:25 DEBUG : Google Photos path "album/Temp_Album_20385": >List: err=<nil>
2024/02/07 18:09:25 DEBUG : Google Photos path "album/Temp_Album_20385": >NewObject:
2024/02/07 18:09:25 DEBUG : IMG_0759_Original.JPG: Need to transfer - File not found at Destination
2024/02/07 18:09:25 DEBUG : IMG_0759_Original.JPG: Size:
2024/02/07 18:09:25 DEBUG : IMG_0759_Original.JPG: >Size:
2024/02/07 18:09:25 DEBUG : IMG_0759_Original.JPG: Size:
2024/02/07 18:09:25 DEBUG : IMG_0759_Original.JPG: >Size:
2024/02/07 18:09:25 DEBUG : IMG_0759_Original.JPG: Size:
2024/02/07 18:09:25 DEBUG : IMG_0759_Original.JPG: >Size:
2024/02/07 18:09:25 DEBUG : IMG_0759_Original.JPG: Size:
2024/02/07 18:09:25 DEBUG : IMG_0759_Original.JPG: >Size:
2024/02/07 18:09:25 DEBUG : IMG_0759_Original.JPG: Open:
2024/02/07 18:09:26 DEBUG : IMG_0759_Original.JPG: >Open:
2024/02/07 18:09:26 DEBUG : IMG_0759_Original.JPG: Size:
2024/02/07 18:09:26 DEBUG : IMG_0759_Original.JPG: >Size:
2024/02/07 18:09:26 DEBUG : IMG_0759_Original.JPG: ModTime:
2024/02/07 18:09:26 DEBUG : IMG_0759_Original.JPG: >ModTime:
2024/02/07 18:09:26 DEBUG : Google Photos path "album/Temp_Album_20385": Target remote doesn't support streaming uploads, creating temporary local FS to spool file
2024/02/07 18:09:26 DEBUG : Creating backend with remote "/tmp/rclone-spool3084899157"
2024/02/07 18:09:26 NOTICE: Local file system at /tmp/rclone-spool3084899157: --checksum is in use but the source and destination have no hashes in common; falling back to --size-only
2024/02/07 18:09:26 DEBUG : IMG_0759_Original.JPG: Size of src and dst objects identical
2024/02/07 18:09:26 DEBUG : Google Photos path "album/Temp_Album_20385": Put: src=IMG_0759_Original.JPG
2024/02/07 18:09:26 DEBUG : IMG_0759_Original.JPG: Update: src=IMG_0759_Original.JPG
2024/02/07 18:09:26 DEBUG : Google Photos path "album/Temp_Album_20385": Adding "IMG_0759_Original.JPG" to batch
2024/02/07 18:09:27 DEBUG : Google Photos path "album/Temp_Album_20385": Batch idle for 1s so committing
2024/02/07 18:09:27 DEBUG : Google Photos path "album/Temp_Album_20385": Committing sync batch length 1 starting with: IMG_0759_Original.JPG
2024/02/07 18:09:29 DEBUG : Google Photos path "album/Temp_Album_20385": Committed sync batch length 1 starting with: IMG_0759_Original.JPG
2024/02/07 18:09:29 DEBUG : IMG_0759_Original.JPG: >Update: err=<nil>
2024/02/07 18:09:29 DEBUG : Google Photos path "album/Temp_Album_20385": >Put:
2024/02/07 18:09:29 DEBUG : IMG_0759_Original.JPG: Size:
2024/02/07 18:09:29 DEBUG : IMG_0759_Original.JPG: >Size:
2024/02/07 18:09:29 INFO : IMG_0759_Original.JPG: Copied (new)
2024/02/07 18:09:29 DEBUG : IMG_0759_Original.JPG: Size:
2024/02/07 18:09:29 DEBUG : IMG_0759_Original.JPG: >Size:
2024/02/07 18:09:29 DEBUG : IMG_0759_Original.JPG: Size:
2024/02/07 18:09:29 DEBUG : IMG_0759_Original.JPG: >Size:
2024/02/07 18:09:29 INFO : IMG_0759_Original.JPG: Copied (Rcat, new)
2024/02/07 18:09:29 DEBUG : IMG_0759_Original.JPG: Size:
2024/02/07 18:09:29 DEBUG : IMG_0759_Original.JPG: >Size:
2024/02/07 18:09:29 DEBUG : IMG_0759_Original.JPG: Size:
2024/02/07 18:09:29 DEBUG : IMG_0759_Original.JPG: >Size:
2024/02/07 18:09:29 ERROR : IMG_0759_Original.JPG: Couldn't delete: google photos API only implements removing files from albums
2024/02/07 18:09:29 ERROR : Attempt 1/3 failed with 1 errors and: google photos API only implements removing files from albums
2024/02/07 18:09:29 DEBUG : Google Photos path "media/all": NewObject: remote="IMG_0759_Original.JPG"
2024/02/07 18:09:29 DEBUG : Google Photos path "media/all": List: dir=""
2024/02/07 18:09:46 DEBUG : Google Photos path "media/all": >List: err=<nil>
2024/02/07 18:09:46 DEBUG : Google Photos path "media/all": >NewObject:
2024/02/07 18:09:46 ERROR : Attempt 2/3 failed with 1 errors and: object not found
2024/02/07 18:09:46 DEBUG : Google Photos path "media/all": NewObject: remote="IMG_0759_Original.JPG"
2024/02/07 18:09:46 DEBUG : Google Photos path "media/all": List: dir=""
2024/02/07 18:10:03 DEBUG : Google Photos path "media/all": >List: err=<nil>
2024/02/07 18:10:03 DEBUG : Google Photos path "media/all": >NewObject:
2024/02/07 18:10:03 ERROR : Attempt 3/3 failed with 1 errors and: object not found
2024/02/07 18:10:03 INFO :
Transferred: 3.356 MiB / 3.356 MiB, 100%, 55.377 KiB/s, ETA 0s
Errors: 1 (retrying may help)
Checks: 1 / 1, 100%
Deleted: 1 (files), 1 (dirs)
Transferred: 1 / 1, 100%
Elapsed time: 1m15.7s
2024/02/07 18:10:03 DEBUG : 10 go routines active
2024/02/07 18:10:03 INFO : Google Photos path "media/all": Committing uploads - please wait...
2024/02/07 18:10:03 INFO : Google Photos path "album/Temp_Album_20385": Committing uploads - please wait...
2024/02/07 18:10:03 Failed to move: object not found
Command:
rclone -vv move remote-ap2:media/all/IMG_1650_Original.JPG remote-ap2:album/Temp_Album_20385
Result:
2024/02/07 18:10:48 DEBUG : rclone: Version "v1.65.2" starting with parameters ["rclone" "-vv" "move" "remote-ap2:media/all/IMG_1650_Original.JPG" "remote-ap2:album/Temp_Album_20385"]
2024/02/07 18:10:48 DEBUG : Creating backend with remote "remote-ap2:media/all/IMG_1650_Original.JPG"
2024/02/07 18:10:48 DEBUG : Using config file from "/home/alien/.config/rclone/rclone.conf"
2024/02/07 18:10:48 DEBUG : Google Photos path "media/all": NewObject: remote="IMG_1650_Original.JPG"
2024/02/07 18:10:48 DEBUG : Google Photos path "media/all": List: dir=""
2024/02/07 18:11:05 DEBUG : Google Photos path "media/all": >List: err=<nil>
2024/02/07 18:11:05 DEBUG : Google Photos path "media/all": >NewObject:
2024/02/07 18:11:05 DEBUG : fs cache: adding new entry for parent of "remote-ap2:media/all/IMG_1650_Original.JPG", "remote-ap2:media/all"
2024/02/07 18:11:05 DEBUG : Creating backend with remote "remote-ap2:album/Temp_Album_20385"
2024/02/07 18:11:05 DEBUG : Google Photos path "media/all": NewObject: remote="IMG_1650_Original.JPG"
2024/02/07 18:11:05 DEBUG : Google Photos path "media/all": List: dir=""
2024/02/07 18:11:21 DEBUG : Google Photos path "media/all": >List: err=<nil>
2024/02/07 18:11:21 DEBUG : Google Photos path "media/all": >NewObject:
2024/02/07 18:11:21 DEBUG : Google Photos path "album/Temp_Album_20385": NewObject: remote="IMG_1650_Original.JPG"
2024/02/07 18:11:21 DEBUG : Google Photos path "album/Temp_Album_20385": List: dir=""
2024/02/07 18:11:22 DEBUG : Google Photos path "album/Temp_Album_20385": >List: err=<nil>
2024/02/07 18:11:22 DEBUG : Google Photos path "album/Temp_Album_20385": >NewObject:
2024/02/07 18:11:22 DEBUG : IMG_1650_Original.JPG: Need to transfer - File not found at Destination
2024/02/07 18:11:22 DEBUG : IMG_1650_Original.JPG: Size:
2024/02/07 18:11:22 DEBUG : IMG_1650_Original.JPG: >Size:
2024/02/07 18:11:22 DEBUG : IMG_1650_Original.JPG: Size:
2024/02/07 18:11:22 DEBUG : IMG_1650_Original.JPG: >Size:
2024/02/07 18:11:22 DEBUG : IMG_1650_Original.JPG: Size:
2024/02/07 18:11:22 DEBUG : IMG_1650_Original.JPG: >Size:
2024/02/07 18:11:22 DEBUG : IMG_1650_Original.JPG: Size:
2024/02/07 18:11:22 DEBUG : IMG_1650_Original.JPG: >Size:
2024/02/07 18:11:22 DEBUG : IMG_1650_Original.JPG: Open:
2024/02/07 18:11:22 DEBUG : IMG_1650_Original.JPG: >Open:
2024/02/07 18:11:22 DEBUG : IMG_1650_Original.JPG: Size:
2024/02/07 18:11:22 DEBUG : IMG_1650_Original.JPG: >Size:
2024/02/07 18:11:22 DEBUG : IMG_1650_Original.JPG: ModTime:
2024/02/07 18:11:22 DEBUG : IMG_1650_Original.JPG: >ModTime:
2024/02/07 18:11:22 DEBUG : Google Photos path "album/Temp_Album_20385": Target remote doesn't support streaming uploads, creating temporary local FS to spool file
2024/02/07 18:11:22 DEBUG : Creating backend with remote "/tmp/rclone-spool1868595433"
2024/02/07 18:11:22 NOTICE: Local file system at /tmp/rclone-spool1868595433: --checksum is in use but the source and destination have no hashes in common; falling back to --size-only
2024/02/07 18:11:22 DEBUG : IMG_1650_Original.JPG: Size of src and dst objects identical
2024/02/07 18:11:22 DEBUG : Google Photos path "album/Temp_Album_20385": Put: src=IMG_1650_Original.JPG
2024/02/07 18:11:22 DEBUG : IMG_1650_Original.JPG: Update: src=IMG_1650_Original.JPG
2024/02/07 18:11:23 DEBUG : Google Photos path "album/Temp_Album_20385": Adding "IMG_1650_Original.JPG" to batch
2024/02/07 18:11:24 DEBUG : Google Photos path "album/Temp_Album_20385": Batch idle for 1s so committing
2024/02/07 18:11:24 DEBUG : Google Photos path "album/Temp_Album_20385": Committing sync batch length 1 starting with: IMG_1650_Original.JPG
2024/02/07 18:11:26 DEBUG : Google Photos path "album/Temp_Album_20385": Committed sync batch length 1 starting with: IMG_1650_Original.JPG
2024/02/07 18:11:26 DEBUG : IMG_1650_Original.JPG: >Update: err=<nil>
2024/02/07 18:11:26 DEBUG : Google Photos path "album/Temp_Album_20385": >Put:
2024/02/07 18:11:26 DEBUG : IMG_1650_Original.JPG: Size:
2024/02/07 18:11:26 DEBUG : IMG_1650_Original.JPG: >Size:
2024/02/07 18:11:26 INFO : IMG_1650_Original.JPG: Copied (new)
2024/02/07 18:11:26 DEBUG : IMG_1650_Original.JPG: Size:
2024/02/07 18:11:26 DEBUG : IMG_1650_Original.JPG: >Size:
2024/02/07 18:11:26 DEBUG : IMG_1650_Original.JPG: Size:
2024/02/07 18:11:26 DEBUG : IMG_1650_Original.JPG: >Size:
2024/02/07 18:11:26 INFO : IMG_1650_Original.JPG: Copied (Rcat, new)
2024/02/07 18:11:26 DEBUG : IMG_1650_Original.JPG: Size:
2024/02/07 18:11:26 DEBUG : IMG_1650_Original.JPG: >Size:
2024/02/07 18:11:26 DEBUG : IMG_1650_Original.JPG: Size:
2024/02/07 18:11:26 DEBUG : IMG_1650_Original.JPG: >Size:
2024/02/07 18:11:26 ERROR : IMG_1650_Original.JPG: Couldn't delete: google photos API only implements removing files from albums
2024/02/07 18:11:26 ERROR : Attempt 1/3 failed with 1 errors and: google photos API only implements removing files from albums
2024/02/07 18:11:26 DEBUG : Google Photos path "media/all": NewObject: remote="IMG_1650_Original.JPG"
2024/02/07 18:11:26 DEBUG : Google Photos path "media/all": List: dir=""
2024/02/07 18:11:42 DEBUG : Google Photos path "media/all": >List: err=<nil>
2024/02/07 18:11:42 DEBUG : Google Photos path "media/all": >NewObject:
2024/02/07 18:11:42 DEBUG : Google Photos path "album/Temp_Album_20385": NewObject: remote="IMG_1650_Original.JPG"
2024/02/07 18:11:42 DEBUG : Google Photos path "album/Temp_Album_20385": List: dir=""
2024/02/07 18:11:42 DEBUG : Google Photos path "album/Temp_Album_20385": >List: err=<nil>
2024/02/07 18:11:42 DEBUG : Google Photos path "album/Temp_Album_20385": >NewObject:
2024/02/07 18:11:42 DEBUG : IMG_1650_Original.JPG: Size:
2024/02/07 18:11:42 DEBUG : IMG_1650_Original.JPG: >Size:
2024/02/07 18:11:42 DEBUG : IMG_1650_Original.JPG: ModTime:
2024/02/07 18:11:42 DEBUG : IMG_1650_Original.JPG: >ModTime:
2024/02/07 18:11:42 DEBUG : IMG_1650_Original.JPG: Sizes identical
2024/02/07 18:11:42 DEBUG : IMG_1650_Original.JPG: Unchanged skipping
2024/02/07 18:11:42 DEBUG : IMG_1650_Original.JPG: Size:
2024/02/07 18:11:42 DEBUG : IMG_1650_Original.JPG: >Size:
2024/02/07 18:11:42 DEBUG : IMG_1650_Original.JPG: Size:
2024/02/07 18:11:42 DEBUG : IMG_1650_Original.JPG: >Size:
2024/02/07 18:11:42 ERROR : IMG_1650_Original.JPG: Couldn't delete: google photos API only implements removing files from albums
2024/02/07 18:11:42 ERROR : Attempt 2/3 failed with 1 errors and: google photos API only implements removing files from albums
2024/02/07 18:11:42 DEBUG : Google Photos path "media/all": NewObject: remote="IMG_1650_Original.JPG"
2024/02/07 18:11:42 DEBUG : Google Photos path "media/all": List: dir=""
2024/02/07 18:11:58 DEBUG : Google Photos path "media/all": >List: err=<nil>
2024/02/07 18:11:58 DEBUG : Google Photos path "media/all": >NewObject:
2024/02/07 18:11:58 DEBUG : Google Photos path "album/Temp_Album_20385": NewObject: remote="IMG_1650_Original.JPG"
2024/02/07 18:11:58 DEBUG : Google Photos path "album/Temp_Album_20385": List: dir=""
2024/02/07 18:11:59 DEBUG : Google Photos path "album/Temp_Album_20385": >List: err=<nil>
2024/02/07 18:11:59 DEBUG : Google Photos path "album/Temp_Album_20385": >NewObject:
2024/02/07 18:11:59 DEBUG : IMG_1650_Original.JPG: Size:
2024/02/07 18:11:59 DEBUG : IMG_1650_Original.JPG: >Size:
2024/02/07 18:11:59 DEBUG : IMG_1650_Original.JPG: ModTime:
2024/02/07 18:11:59 DEBUG : IMG_1650_Original.JPG: >ModTime:
2024/02/07 18:11:59 DEBUG : IMG_1650_Original.JPG: Sizes identical
2024/02/07 18:11:59 DEBUG : IMG_1650_Original.JPG: Unchanged skipping
2024/02/07 18:11:59 DEBUG : IMG_1650_Original.JPG: Size:
2024/02/07 18:11:59 DEBUG : IMG_1650_Original.JPG: >Size:
2024/02/07 18:11:59 DEBUG : IMG_1650_Original.JPG: Size:
2024/02/07 18:11:59 DEBUG : IMG_1650_Original.JPG: >Size:
2024/02/07 18:11:59 ERROR : IMG_1650_Original.JPG: Couldn't delete: google photos API only implements removing files from albums
2024/02/07 18:11:59 ERROR : Attempt 3/3 failed with 1 errors and: google photos API only implements removing files from albums
2024/02/07 18:11:59 INFO :
Transferred: 4.301 MiB / 4.301 MiB, 100%, 75.694 KiB/s, ETA 0s
Errors: 1 (retrying may help)
Checks: 3 / 3, 100%
Deleted: 3 (files), 1 (dirs)
Transferred: 1 / 1, 100%
Elapsed time: 1m10.8s
2024/02/07 18:11:59 DEBUG : 10 go routines active
2024/02/07 18:11:59 INFO : Google Photos path "media/all": Committing uploads - please wait...
2024/02/07 18:11:59 INFO : Google Photos path "album/Temp_Album_20385": Committing uploads - please wait...
2024/02/07 18:11:59 Failed to move: google photos API only implements removing files from albums