Public download url

I have been using the remote command operations/publiclink to get a public link to a file, but for many filesystems the link does not allow downloading of the file to a file stream, it only allows you to view the file in a browser. I don't think there is one, but I am wondering if there is already a command that provides a download url that I can immediately use to create a file stream. If there isn't, I am requesting that as a new feature.

If possible rclone gives a plain http/https URL. If not you get the browser based option.

What filesystems are you seeing this in?

pCloud, Zoho, Box, Google Drive

If you can find an API to give the plain URL to download, then we can add it!

Google Drive:
https://www.googleapis.com/drive/v3/files/<file_id>?alt=media

pCloud:
https://api.pcloud.com/getpublinkdownload?code=<file_code>
More info: pCloud - Developers

Box:
https://api.box.com/2.0/files/<file_id>/content?version=4
More info: https://developer.box.com/guides/downloads/get-url/

Doesn't that need to be authenticated?

I get this

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "dailyLimitExceededUnreg",
    "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.",
    "extendedHelp": "https://code.google.com/apis/console"
   }
  ],
  "code": 403,
  "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
 }
}

If I try it. That was the first unauthenticated download of the day!

It looks like this one is internal only :frowning:

It looks like those links expire in 15 mins.

Got it, is the publiclink command intended only for access to files that don't require authentication? If so, it would be great to have a new command that uses authentication to generate a download url for a file.

Yes, it is intended to be a link you could give to anyone and have them download it.

It isn't very flexible as a command and the backends differ in quite a lot of ways when it comes to public links.

You will need to be authenticated to generate the URL on all the backends, you just don't need to be authenticated to use it - that is the idea.