Download all of the content from the University of Waterloo's Desire2Learn LMS
Python Makefile
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Desire 2 Download is a tool to download all of the content from the University of Waterloo's new learning management system which uses Desire2Learn instead of the old Angel based UWACE.

d2d was inspired by Jamie Wong's fabulous UWAngel-CLI written in Ruby.

d2d is somewhat hacky and has not been tested extensively. If you do find a bug, please let us know



pip install desire2download


unzip master && cd desire2download-master
python install


Parameters Description
u or username Your quest userid
p or password Your quest password
i or ignore Ignore certain files
c or courses Ignore certain courses
o or overwrite Overwrite existing files

Just browse to the folder you want to download the files in, type d2d and hit enter!

Basic Usage

ktalwar@ubuntu:~/Desktop$ d2d

Username filled out

$ d2d -u ktalwar

Username and password filled out

$ d2d -u ktalwar -p icanhazcatz

Ignore certain files

$ d2d -i ".*.ppt"

Ignore certain courses

Ignores anything starting with M

$ d2d -c "M+"

Ignores anything starting with M or P

$ d2d -c "^[MP]+"

Ignores anything containing 22

d2d -c ".+(22).+"

Full complex example

d2d -u scholida -p hecanhazcatz -i ".*.ppt" -c "CS+"
Logging In...
Logged In
Finding courses...
ECE 224 - Fall 2011
 + ECE 224 - Fall 2011/Labs/Lab Tools Tutorial.html (1.70K)
 + ECE 224 - Fall 2011/Labs/Lab 1/lab1_checklist-s2010.pdf (107.65K)

d2d will not download a file if it has been already saved unless the overwrite option is used..

If you use the script in a cron job, be nice to Learn and don't re-download all the time. Perhaps run without overwrite every hour but with overwrite once a day.


Legal Stuff

See LICENSE for details.