Package: dl-coursera
TodoLectures (videos, subtitles, slides)ReadingsQuizsJupyter notebooksInstallPython 3.x is required. It is recommended to install this tool in a virtual environment.$ pip install -U dl_coursera
$ dl_coursera --versionHow-toGet thecookies.txtfileSign in toCoursera, then use a browser extension to export cookies ascookies.txt. Thecookies.txtwill expire in about two weeks, so you don't need to do this so frequently.ForChrome, you can use thecookies.txtextension.ForFirefox, you can use theExport Cookiesextension.EnrollNavigate to homepage of thecourse/specializationyou'd like to download, you can see itsslugat the address bar.Enrollit.Download$ dl_coursera --help
usage: dl_coursera_run.py [-h] [--version] [--cookies COOKIES] --slug SLUG
                          [--isSpec] [--n-worker {1,2,3,4,5}]
                          [--outdir OUTDIR] --how
                          {builtin,curl,aria2,aria2-rpc,uget,dummy}
                          [--generate-input-file]
                          [--aria2-rpc-url ARIA2_RPC_URL]
                          [--aria2-rpc-secret ARIA2_RPC_SECRET]

A simple, fast, and reliable Coursera crawling & downloading tool

optional arguments:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  --cookies COOKIES     path of the `cookies.txt`
  --slug SLUG           slug of a course or a specializtion (with @--isSpec)
  --isSpec              indicate that @--slug is slug of a specialization
  --n-worker {1,2,3,4,5}
                        the number of threads used to crawl webpages. Default:
                        3
  --outdir OUTDIR       the directory to save files to. Default: `.'
  --how {builtin,curl,aria2,aria2-rpc,uget,dummy}
                        how to download files. builtin (NOT recommonded): use
                        the builtin downloader. curl: invoke `curl` or
                        generate an "input file" for it (with @--generate-
                        input-file). aria2: invoke `aria2c` or generate an
                        "input file" for it (with @--generate-input-file).
                        aria2-rpc (HIGHLY recommonded): add downloading tasks
                        to aria2 through its XML-RPC interface. uget
                        (recommonded): add downloading tasks to the uGet
                        Download Manager
  --generate-input-file
                        when @--how is curl/aria2, indicate that to generate
                        an "input file" for that tool, rather than to invoke
                        it
  --aria2-rpc-url ARIA2_RPC_URL
                        url of the aria2 XML-RPC interface. Default:
                        `http://localhost:6800/rpc'
  --aria2-rpc-secret ARIA2_RPC_SECRET
                        authorization token of the aria2 XML-RPC interface

If the command succeeds, you shall see `Done :-)`. If some UNEXPECTED errors
occur, try decreasing the value of @--n-worker and/or removing the directory
@--outdir. For more information, visit `https://github.com/feng-lei/dl_coursera`.# download the course, of which slug is "mathematical-thinking"
# saving files to the directory "mt"
# using the "built-in" downloader
$ dl_coursera --cookies path/to/cookies.txt --slug mathematical-thinking --outdir mt --how builtin# download the specialization, of which slug is "algorithms"
# saving files to the directory "alg"
# using the "built-in" downloader
$ dl_coursera --cookies path/to/cookies.txt --slug algorithms --isSpec --outdir alg --how builtinExamplesusing the "built-in" downloader$ dl_coursera --cookies path/to/cookies.txt --slug mathematical-thinking --outdir mt --how builtinusing the "curl" downloader# make sure curl (https://curl.haxx.se/download.html) is installed and in PATH
$ curl --versionThe "curl" downloader can be used in two different ways: invokingcurl, or generating an input file forcurl.invokecurl$ dl_coursera --cookies path/to/cookies.txt --slug mathematical-thinking --outdir mt --how curlgenerate an input file forcurl$ dl_coursera --cookies path/to/cookies.txt --slug mathematical-thinking --outdir mt --how curl --generate-input-file
$ curl --config mt/mathematical-thinking.download.curl_input_file.txtusing the "aria2" downloader# make sure aria2 (https://aria2.github.io) is installed and in PATH
$ aria2c --versionThe "aria2" downloader can be used in two different ways: invokingaria2c, or generating an input file foraria2c.invokearia2c$ dl_coursera --cookies path/to/cookies.txt --slug mathematical-thinking --outdir mt --how aria2generate an input file foraria2c$ dl_coursera --cookies path/to/cookies.txt --slug mathematical-thinking --outdir mt --how aria2 --generate-input-file
$ aria2c --input-file mt/mathematical-thinking.download.aria2_input_file.txtUsing the "aria2-rpc" downloader# make sure aria2 (https://aria2.github.io) is installed and in PATH
$ aria2c --version# start aria2 with its XML-RPC interface enabled
$ aria2c --enable-rpc$ dl_coursera --cookies path/to/cookies.txt --slug mathematical-thinking --outdir mt --how aria2-rpcUsing an aria2 GUI likewebui-aria2is highly recommended.Using the "uget" downloader# make sure uGet (https://sourceforge.net/projects/urlget/files/) is installed and in PATH

## on Windows
$ uget --version | more

## on Linux
$ uget-gtk --version# start uGet

## on Windows
$ uget

## on Linux
$ uget-gtk &$ dl_coursera --cookies path/to/cookies.txt --slug mathematical-thinking --outdir mt --how uget