97

Seems I can only download dropbox files using explorer such as chrome and firefox. If I use wget to download, then I would get a file which is in html format. Why?

For example you can open this link

You would not get the content of this file, why? The following is part of test.txt to download it, this is not the content of test.txt at all.

So is it possible to download Dropbox files using wget rather than explorer?

document.observe('script:loaded', function() {
SharingModel.init('test\x2etxt', Util.from_json('\x7b\x22item\x5fid\x22\x3a\x20\x22\x22\x2c\x20\x22secure\x5fhash\x22\x3a\x20\x22\x22\x2c\x20\x22subpath\x22\x3a\x20\x22\x22\x2c\x20\x22tkey\x22\x3a\x20\x22mx9eqve5l2ipgyk\x22\x7d'))
SharingModel.init_file()
$('emsnippet-9911dfc627e1d541').innerHTML = 'test\x2etxt'.em_snippet(50, 0.750).escapeHTML();
$('emsnippet-add7879f5d805012').innerHTML = 'test\x2etxt'.em_snippet(20, 0.750).escapeHTML();
$('emsnippet-981ac0639529f983').innerHTML = 'test\x2etxt'.em_snippet(20, 0.750).escapeHTML();
FilePreview.init_text('https\x3a\x2f\x2fdl\x2edropbox\x2ecom\x2fs\x2fmx9eqve5l2ipgyk\x2ftest\x2etxt', 0)                        });
                    } else if (window.jQuery) {
jQuery(function () {
SharingModel.init('test\x2etxt', Util.from_json('\x7b\x22item\x5fid\x22\x3a\x20\x22\x22\x2c\x20\x22secure\x5fhash\x22\x3a\x20\x22\x22\x2c\x20\x22subpath\x22\x3a\x20\x22\x22\x2c\x20\x22tkey\x22\x3a\x20\x22mx9eqve5l2ipgyk\x22\x7d'))
SharingModel.init_file()
$('emsnippet-9911dfc627e1d541').innerHTML = 'test\x2etxt'.em_snippet(50, 0.750).escapeHTML();
$('emsnippet-add7879f5d805012').innerHTML = 'test\x2etxt'.em_snippet(20, 0.750).escapeHTML();
$('emsnippet-981ac0639529f983').innerHTML = 'test\x2etxt'.em_snippet(20, 0.750).escapeHTML();
FilePreview.init_text('https\x3a\x2f\x2fdl\x2edropbox\x2ecom\x2fs\x2fmx9eqve5l2ipgyk\x2ftest\x2etxt', 0)                        });
                    } 

I cannot get test.txt with command

wget https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.tx


ls -l 
-rw-rw-r-- 1 mirror mirror  30K Sep  6 15:01 test.txt
hugemeow
  • 2,329

6 Answers6

156

Just add ?dl=1 at the end of the link! For example: https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1

That should give you a fine retrieval of the file in question without adding anything to the file.

One more thing! If you wanna save the file somewhere else use the -O option like this

wget -O /root/Desktop/test.txt "https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1"

And if you want to have a little bit of GUI you can use zenity to mark the location to where the file is going to be downloaded!

Here's an example code:

#!/bin/bash
dir=$(zenity --file-selection --directory)
wget -O $dir/test.txt "https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1"
slhck
  • 235,242
Ismael Segui
  • 1,569
25

The link in your question is not the link to the file, is a link to the Dropbox page of this file.

If you want to use wget to download it, you should copy the link to direct download from the menu that drops when pushing the download button to the right.

In my case, that worked fine.

However, sometimes problems in downloading links from outside the browser relate to parameters other than the link itself. A common element that does not exist when you simply copy the link are the site cookies.

Try this cool FF add-on to get the correct wget links

And also, especially if we are talking about a known workstation and not a casual one, you can of course install the Dropbox client. This will be the easiest way, just let your box be part of your file structure and eliminate the need of complicated downloads.

See this askubuntu.com post, and the Dropbox download page.

Giacomo1968
  • 58,727
amotzg
  • 979
17

Dropbox has modified it so that wget will do the right thing and retrieve the file instead of the interstitial.

Use "Share Link" to retrieve the direct link to the file.

Ryan
  • 171
3

Saw this question and thought this may help someone trying to download many files at once.

Here's a small Windows CMD/Batch script you can use.
It can easily be adjusted to work under a Bash shell (Mac/Linux/etc).
It uses CURL. WGET should also work with some minor adjustments..

  1. Install Curl for Windows.
  2. Put the individual SHARED links in a text file (1 per line).
  3. Adjust all the "?dl=0" parameter(s) in your text file to "?dl=1" and save.
  4. Copy script below to a file called 'geturllist.cmd' (or your choosing)
  5. Open a CMD prompt and execute the CMD script.

Downloaded files will appear in current working directory you executed script from.

NOTE:
You must have properly formatted SHARED LINKS that "Anyone with the link" can open. This script does NOT work with password protected links or shares based on a Dropbox login/email.
NOTE:
If the single file or file group(auto zipped) is over a certain size, it will fail with error ("The (zip) file is too large. Please add it to your Dropbox."). In this case you must do as it says.. this script will not work because share link isn't directly downloadable.

Example text file:
("RandomShareCharacters/Here" will be replaced with what it says in share link)

 https://www.dropbox.com/sh/RandomShareCharacters/Here?dl=1
 https://www.dropbox.com/sh/RandomShareCharacters/Here?dl=1
 https://www.dropbox.com/sh/RandomShareCharacters/Here?dl=1

geturllist.cmd:

@echo off
set count=0
setlocal ENABLEDELAYEDEXPANSION
IF [%1]==[] GOTO BLANK
SET PARAMETER=%1
SET _PARAMETER=%PARAMETER:~0,2%

IF [%1]==[/?] GOTO HELP IF [%1]==[--help] GOTO HELP IF %_PARAMETER%==-h GOTO HELP

IF EXIST %1 (

for /f "delims=" %%u in (%1) do (

  set /a count=count+1
  curl -kL "%%u" -O -J

  REM For other share sites:
  REM (ZIP EXAMPLE) if no filename type header sent:
  REM > curl -kL "%%u" -o "!count!.zip"
  REM > echo "!count!.zip"
  REM Will download file(s) called 1.zip, 2.zip, etc.
  )

) ELSE ( GOTO BLANK ) GOTO DONE

:HELP ECHO. ECHO Usage: ECHO. ECHO geturllist [path][filename] ECHO. ECHO. ECHO Required Parameters: ECHO. ECHO [filename] A text file with one url per line ECHO -h Help ECHO. GOTO DONE

:BLANK ECHO. ECHO Error: no input file found

:HELPMSG ECHO. ECHO Try -h for Help

:DONE ECHO. ECHO Exiting. ECHO.

Example Usage:

geturllist.cmd X:\somepath\dropbox.txt

Giacomo1968
  • 58,727
B. Shea
  • 1,388
0

There is a python script on GitHub which accomplishes this:

https://github.com/dpdornseifer/dropbox_download

Also the dropbox server does not support resuming transfers.

It seems that dropbox supports the use of wget as a client and automatically redirects to the right file. Or perhaps wget is merely following redirects?

-1

The easiest and most guaranteed method for these type of downloads is to use google chrome's developer tools.

  • Press F12 to open developer tools

  • Go to network tab

  • Press the download link to start the download

  • Find the download event in the network events

  • Right click the line and select "Copy as cURL (bash)" or windows if you want

  • The url will look like this:

      curl "http://yoururl.com/yourfile" -H "Pragma: no-cache" -H "Origin: http://yoururl.com" -H "Accept-Encoding: gzip, deflate" -H "Accept: */*" -H "Cache-Control: max-age=0" -H "Referer: http://yoururl.com/downloadpage" -H "Cookie: e07214fb60a1a; _ga=98987; "
    
  • Replace curl with wget

  • Replace -H "some headers" with --header="some headers"

  • Add -o parameter

  • The new command will look like this:

      wget "http://yoururl.com/yourfile" --header="Pragma: no-cache" --header="Origin: http://yoururl.com" --header="Accept-Encoding: gzip, deflate" --header="Accept: */*" --header="Cache-Control: max-age=0" --header="Referer: http://yoururl.com/downloadpage" --header="Cookie: e07214fb60a1a; _ga=98987; " -o test.txt
    
  • Paste that to your bash window

  • Press enter and enjoy your download.