Use curl to download a Dropbox folder via shared link (not public link)

It does appear to be possible with curl by using the -L option. This forces curl to follow the redirect. Additionally, it is important to specify an output name with a .zip extension, as the default will be a random alpha-numeric name with no extension. Finally, do not forget to add the ?dl=1 to the end of the link. Without it, curl will never reach the redirect page.

curl -L -o newName.zip https://www.dropbox.com/sh/[folderLink]?dl=1

  1. Follow redirects (use -L). Your immediate problem is that Curl is not following redirects.

  2. Set a filename. (Optional)

  • Dropbox already sends a Content-Disposition Header with its Dropbox filename.
    There is no reason to specify the filename if you use the correct curl flags.
  • Conversely, you can force a filename using something of your choosing.

Use one of these commands:

curl https://www.dropbox.com/sh/AAbbCCEeFF123?dl=1 -O -J -L

Preserve/write the remote filename (-O,-J) and follows any redirects (-L).

  • This same line works for both individually shared files or entire folders.
  • Folders will save as a .zip automatically (based on folder name).
  • Don't forget to change the parameter ?dl=0 to ?dl=1 (see comments).

OR:

curl https://www.dropbox.com/sh/AAbbCCEeFF123?dl=1 -L -o [filename]

Follow any redirects (-L) and set a filename (-o) of your choosing.



NOTE: Using the -J flag in general:

WARNING: Exercise judicious use of this option, especially on Windows. A rogue server could send you the name of a DLL or other file that could possibly be loaded automatically by Windows or some third party software.

Please consult: https://curl.haxx.se/docs/manpage.html#OPTIONS (See: -O, -J, -L, -o) for more.