gphotos: implment --gphotos-proxy to allow download of full resolution media
This works in conjunction with the gphotosdl tool https://github.com/rclone/gphotosdl
This commit is contained in:
parent
de9b593f02
commit
22e13eea47
2 changed files with 40 additions and 1 deletions
|
@ -159,6 +159,34 @@ listings and transferred.
|
||||||
Without this flag, archived media will not be visible in directory
|
Without this flag, archived media will not be visible in directory
|
||||||
listings and won't be transferred.`,
|
listings and won't be transferred.`,
|
||||||
Advanced: true,
|
Advanced: true,
|
||||||
|
}, {
|
||||||
|
Name: "proxy",
|
||||||
|
Default: "",
|
||||||
|
Help: strings.ReplaceAll(`Use the gphotosdl proxy for downloading the full resolution images
|
||||||
|
|
||||||
|
The Google API will deliver images and video which aren't full
|
||||||
|
resolution, and/or have EXIF data missing.
|
||||||
|
|
||||||
|
However if you ue the gphotosdl proxy tnen you can download original,
|
||||||
|
unchanged images.
|
||||||
|
|
||||||
|
This runs a headless browser in the background.
|
||||||
|
|
||||||
|
Download the software from [gphotosdl](https://github.com/rclone/gphotosdl)
|
||||||
|
|
||||||
|
First run with
|
||||||
|
|
||||||
|
gphotosdl -login
|
||||||
|
|
||||||
|
Then once you have logged into google photos close the browser window
|
||||||
|
and run
|
||||||
|
|
||||||
|
gphotosdl
|
||||||
|
|
||||||
|
Then supply the parameter |--gphotos-proxy "http://localhost:8282"| to make
|
||||||
|
rclone use the proxy.
|
||||||
|
`, "|", "`"),
|
||||||
|
Advanced: true,
|
||||||
}, {
|
}, {
|
||||||
Name: config.ConfigEncoding,
|
Name: config.ConfigEncoding,
|
||||||
Help: config.ConfigEncodingHelp,
|
Help: config.ConfigEncodingHelp,
|
||||||
|
@ -180,6 +208,7 @@ type Options struct {
|
||||||
BatchMode string `config:"batch_mode"`
|
BatchMode string `config:"batch_mode"`
|
||||||
BatchSize int `config:"batch_size"`
|
BatchSize int `config:"batch_size"`
|
||||||
BatchTimeout fs.Duration `config:"batch_timeout"`
|
BatchTimeout fs.Duration `config:"batch_timeout"`
|
||||||
|
Proxy string `config:"proxy"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fs represents a remote storage server
|
// Fs represents a remote storage server
|
||||||
|
@ -970,10 +999,14 @@ func (o *Object) Open(ctx context.Context, options ...fs.OpenOption) (in io.Read
|
||||||
fs.Debugf(o, "Open: Failed to read metadata: %v", err)
|
fs.Debugf(o, "Open: Failed to read metadata: %v", err)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
url := o.downloadURL()
|
||||||
|
if o.fs.opt.Proxy != "" {
|
||||||
|
url = strings.TrimRight(o.fs.opt.Proxy, "/") + "/id/" + o.id
|
||||||
|
}
|
||||||
var resp *http.Response
|
var resp *http.Response
|
||||||
opts := rest.Opts{
|
opts := rest.Opts{
|
||||||
Method: "GET",
|
Method: "GET",
|
||||||
RootURL: o.downloadURL(),
|
RootURL: url,
|
||||||
Options: options,
|
Options: options,
|
||||||
}
|
}
|
||||||
err = o.fs.pacer.Call(func() (bool, error) {
|
err = o.fs.pacer.Call(func() (bool, error) {
|
||||||
|
|
|
@ -502,12 +502,18 @@ is covered by [bug #112096115](https://issuetracker.google.com/issues/112096115)
|
||||||
|
|
||||||
**The current google API does not allow photos to be downloaded at original resolution. This is very important if you are, for example, relying on "Google Photos" as a backup of your photos. You will not be able to use rclone to redownload original images. You could use 'google takeout' to recover the original photos as a last resort**
|
**The current google API does not allow photos to be downloaded at original resolution. This is very important if you are, for example, relying on "Google Photos" as a backup of your photos. You will not be able to use rclone to redownload original images. You could use 'google takeout' to recover the original photos as a last resort**
|
||||||
|
|
||||||
|
**NB** you **can** use the [--gphotos-proxy](#gphotos-proxy) flag to use a
|
||||||
|
headless browser to download images in full resolution.
|
||||||
|
|
||||||
### Downloading Videos
|
### Downloading Videos
|
||||||
|
|
||||||
When videos are downloaded they are downloaded in a really compressed
|
When videos are downloaded they are downloaded in a really compressed
|
||||||
version of the video compared to downloading it via the Google Photos
|
version of the video compared to downloading it via the Google Photos
|
||||||
web interface. This is covered by [bug #113672044](https://issuetracker.google.com/issues/113672044).
|
web interface. This is covered by [bug #113672044](https://issuetracker.google.com/issues/113672044).
|
||||||
|
|
||||||
|
**NB** you **can** use the [--gphotos-proxy](#gphotos-proxy) flag to use a
|
||||||
|
headless browser to download images in full resolution.
|
||||||
|
|
||||||
### Duplicates
|
### Duplicates
|
||||||
|
|
||||||
If a file name is duplicated in a directory then rclone will add the
|
If a file name is duplicated in a directory then rclone will add the
|
||||||
|
|
Loading…
Reference in a new issue