4 Install Coursera DL
4 Install Coursera DL
4 Install Coursera DL
com/coursera-dl/coursera-dl
coursera-dl / coursera-dl
Branch: master New pull request Create new file Upload files Find file Clone or download
rbrito README: Remove dead bitdeli badge. Latest commit 2e265ef 14 days ago
.github Fix the link to the troubleshooting section again :S 2 years ago
.travis.yml travis: Remove Python 3.3 from build matrix. 3 months ago
CONTRIBUTING.md Add tox to requirements.txt and extend it to versions 26,27,33,34,35 2 years ago
LICENSE LICENSE: Our license is the LGPLv3+, not the GPLv3. 3 years ago
appveyor.yml Disable setup.py bdist_wheel for now in appveyor #549 2 years ago
coursera-dl.bat Fixed the problem of running coursera-dl.bat file using long paths wi… 3 years ago
fabfile.py {fabfile,setup}.py: Use vanilla markdown for rst files. 2 years ago
requirements-dev.txt Add tox to requirements.txt and extend it to versions 26,27,33,34,35 2 years ago
requirements.txt 1. enable multiple subtitles and transcripts with alternatives. 10 months ago
setup.py setup.py: Remove support for Python 3.3 and add for Python 3.6. 14 days ago
tox.ini 1. enable multiple subtitles and transcripts with alternatives. 10 months ago
README.md
Coursera Downloader
build passing build passing coverage 74% pypi v0.10.0
Introduction
Features
1 of 10 3/5/18, 11:06 PM
coursera-dl/coursera-dl: Script for downloading C... https://github.com/coursera-dl/coursera-dl
Disclaimer
Installation instructions
Recommended installation method for all Operating Systems
Alternative ways of installing missing dependencies
Alternative installation method for Unix systems
Installing dependencies on your own
Windows
Create an account with Coursera
Running the script
Resuming downloads
Troubleshooting
China issues
Found 0 sections and 0 lectures on this page
Windows: Proxy support
Windows: Failed to create process
SSLError: Errno 1 _ssl.c:504: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
Reporting issues
Filing an issue/Reporting a bug
Feedback
Contact
Introduction
Coursera is arguably the leader in massive open online courses (MOOC) with a selection of more than 300 classes from 62
different institutions as of February 2013. Generous contributions by educators and institutions are making excellent
education available to many who could not afford it otherwise. There are even non-profits with "feet on the ground" in remote
areas of the world who are helping spread the wealth (see the feedback below from Tunapanda).
This script makes it easier to batch download lecture resources (e.g., videos, ppt, etc) for Coursera classes. Given one or
more class names and account credentials, it obtains week and class names from the lectures page, and then downloads the
related materials into appropriately named files and directories.
Why is this helpful? A utility like wget can work, but has the following limitations:
1. Video names have numbers in them, but this does not correspond to the actual order. Manually renaming them is a pain
that is best left for computers.
2. Using names from the syllabus page provides more informative names.
3. Using wget in a for loop picks up extra videos which are not posted/linked, and these are sometimes duplicates.
Browser extensions like DownloadThemAll is another possibility, but coursera-dl provides more features such as
appropriately named files.
This work was originally inspired in part by youtube-dl by which I've downloaded many other good videos such as those from
Khan Academy.
Features
Support for all kinds of courses (i.e., "Old Platform"/time-based as well as "New Platform"/on-demand courses).
Intentionally detailed names, so that it will display and sort properly on most interfaces (e.g., VLC or MX Video on
Android devices).
Regex-based section (week) and lecture name filters to download only certain resources.
File format extension filter to grab resource types you want.
2 of 10 3/5/18, 11:06 PM
coursera-dl/coursera-dl: Script for downloading C... https://github.com/coursera-dl/coursera-dl
Disclaimer
coursera-dl is meant to be used only for your material that Coursera gives you access to download.
We do not encourage any use that violates their Terms Of Use. A relevant excerpt:
"[...] Coursera grants you a personal, non-exclusive, non-transferable license to access and use the Sites. You may
download material from the Sites only for your own personal, non-commercial use. You may not otherwise copy,
reproduce, retransmit, distribute, publish, commercially exploit or otherwise transfer any material, nor may you modify or
create derivatives works of the material."
Installation instructions
coursera-dl requires Python 2 or Python 3 and a free Coursera account enrolled in the class of interest. (As of February of
2016, we test automatically the execution of the program with Python versions 2.6, 2.7, Pypy, 3.4, 3.5, and 3.6).
Note: We strongly recommend that you use a Python 3 interpreter (3.4 or later).
On any operating system, ensure that the Python executable location is added to your PATH environment variable and, once
you have the dependencies installed (see next section), for a basic usage, you will need to invoke the script from the main
directory of the project and prepend it with the word python . You can also use more advanced features of the program by
looking at the "Running the script" section of this document.
Note: You must already have (manually) agreed to the Honor of Code of the particular courses that you want to use with
coursera-dl .
From a command line (preferrably, from a virtual environment), simply issue the command:
This will download the latest released version of the program from the Python Package Index (PyPI) along with all the
necessary dependencies. At this point, you should be ready to start using it.
If this does not work, because your Python 2 version is too old (e.g. 2.7.5 on Ubuntu 14.4), try:
instead.
Note 1: We strongly recommend that you don't install the package globally on your machine (i.e., with root/administrator
privileges), as the installed modules may conflict with other Python applications that you have installed in your system (or
they can interfere with coursera-dl ). Prefer to use the option --user to pip install , if you need can.
Note 2: As already mentioned, we strongly recommend that you use a new Python 3 interpreter (e.g., 3.4 or later), since
Python 3 has better support for SSL/TLS (for secure connections) than earlier versions.
If you must use Python 2, be sure that you have at least Python 2.7.9 (later versions are OK).
Otherwise, you can still use coursera-dl , but you will have to install the extra package ndg-httpsclient , which may
involve compilation (at least on Linux systems).
3 of 10 3/5/18, 11:06 PM
coursera-dl/coursera-dl: Script for downloading C... https://github.com/coursera-dl/coursera-dl
We strongly recommend that you consider installing Python packages with pip, as in it is the current preferred method, unless
directed otherwise by one of the project members (for instance, when testing or debugging a new feature or using the source
code directly from our git repository). If you are using pip , you can directly install all the dependencies from the
requirements file using pip install -r requirements.txt .
For the initial setup, in a Unix-like operating system, please use the following steps (create/adapt first the directory
/directory/where/I/want/my/courses ):
cd /directory/where/I/want/my/courses
virtualenv my-coursera
cd my-coursera
source bin/activate
git clone https://github.com/coursera-dl/coursera-dl
cd coursera-dl
pip install -r requirements.txt
./coursera-dl ...
cd /directory/where/I/want/my/courses/my-coursera
source bin/activate
cd coursera-dl
./coursera-dl ...
We are working on streamlining this whole process so that it is as simple as possible, but to support older versions of Python
and to cope with Coursera disabling SSLv3, we have to take a few extra steps. In any case, it is highly recommended that
you always install the latest version of the Python interpreter that you can.
ArchLinux
AUR package: coursera-dl
You can use the pip program to install the dependencies on your own. They are all listed in the requirements.txt file
(and the extra dependencies needed for development are listed in the requirements-dev.txt file).
The second line above should only be needed if you intend to help with development (and help is always welcome) or if a
maintainer of the project asks you to install extra packages for debugging purposes.
Once again, before filing bug reports, if you installed the dependencies on your own, please check that the versions of your
modules are at least those listed in the requirements.txt file (and, requirements-dev.txt file, if applicable).
4 of 10 3/5/18, 11:06 PM
coursera-dl/coursera-dl: Script for downloading C... https://github.com/coursera-dl/coursera-dl
Windows
Be sure that the Python install path is added to the PATH system environment variables. This can be found in Control Panel
> System > Advanced System Settings > Environment Variables.
Example:
C:\Python35\Scripts\;C:\Python35\;
Or if you have restricted installation permissions and you've installed Python under AppData, add this to your PATH.
Example:
C:\Users\<user>\AppData\Local\Programs\Python\Python35-32\Scripts;C:\Users\<user>\AppData\Local\Programs
\Python\Python35-32;
If you don't already have one, create a Coursera account and enroll in a class. See https://www.coursera.org/courses for the
list of classes.
Run the script to download the materials by providing your Coursera account credentials (e.g. email address and password
or a ~/.netrc file), the class names, as well as any additional parameters:
Note: If your ls command is aliased to display a colorized output, you may experience problems. Be sure to escape the
ls command (use \ls ) to assure that no special characters get sent to the script.
On *nix platforms, the use of a ~/.netrc file is a good alternative to specifying both your username (i.e., your email
address) and password every time on the command line. To use it, simply add a line like the one below to a file named
.netrc in your home directory (or the equivalent, if you are using Windows) with contents like:
Create the file if it doesn't exist yet. From then on, you can switch from using -u and -p to simply call coursera-dl with
the option -n instead. This is especially convenient, as typing usernames (email addresses) and passwords directly on the
command line can get tiresome (even more if you happened to choose a "strong" password).
5 of 10 3/5/18, 11:06 PM
coursera-dl/coursera-dl: Script for downloading C... https://github.com/coursera-dl/coursera-dl
Alternatively, if you want to store your preferred parameters (which might also include your username and password), create
a file named coursera-dl.conf where the script is supposed to be executed, with the following format:
--username <user>
--password <pass>
--subtitle-language en,zh-CN|zh-TW
--download-quizzes
#--mathjax-cdn https://cdn.bootcss.com/mathjax/2.7.1/MathJax.js
# more other parameters
Parameter which is stored in the file will be overriden if it is again specifed in your commandline script
Note: In coursera-dl.conf , all the parameters should not be wrapped with quotes.
Resuming downloads
In default mode when you interrupt the download process by pressing CTRL + C , partially downloaded files will be deleted
from your disk and you have to start the download process from the begining. If your download was interrupted by something
other than KeyboardInterrupt ( CTRL + C ) like sudden system crash, partially downloaded files will remain on your disk and
the next time you start the process again, these files will be discraded from download list!, therefore it's your job to delete
them manually before next start. For this reason we added an option called --resume which continues your downloads from
where they stopped:
Note 1: Some external downloaders use their own built-in resume feature which may not be compatible with others, so use
them at your own risk.
Note 2: Remember that in resume mode, interrupted files WON'T be deleted from your disk.
NOTE: If your password contains punctuation, quotes or other "funny characters" (e.g., < , > , # , & , | and so on), then
you may have to escape them from your shell. With bash or other Bourne-shell clones (and probably with many other shells)
one of the better ways to do so is to enclose your password in single quotes, so that you don't run into problems. See issue
#213 for more information.
Troubleshooting
If you have problems when downloading class materials, please try to see if one of the following actions solve your problem:
Make sure the class name you are using corresponds to the resource name used in the URL for that class:
https://www.coursera.org/learn/<CLASS_NAME>/home/welcome
Have you tried to clean the cached cookies/credentials with the --clear-cache option?
Note that many courses (most, perhaps?) may remove the materials after a little while after the course is completed,
while other courses may retain the materials up to a next session/offering of the same course (to avoid problems with
academic dishonesty, apparently).
In short, it is not guaranteed that you will be able to download after the course is finished and this is, unfortunately,
nothing that we can help you with.
6 of 10 3/5/18, 11:06 PM
coursera-dl/coursera-dl: Script for downloading C... https://github.com/coursera-dl/coursera-dl
Make sure you have installed and/or updated all of your dependencies according to the requirements.txt file as
described above.
One can export a Netscape-style cookies file with a browser extension (1, 2) and use it with the -c option. This comes
in handy when the authentication via password is not working (the authentication process changes now and then).
If results show 0 sections, you most likely have provided invalid credentials (username and/or password in the command
line or in your .netrc file or in your coursera-dl.conf file).
For courses that have not started yet, but have had a previous iteration sometimes a preview is available, containing all
the classes from the last course. These files can be downloaded by passing the --preview parameter.
If you get an error like Could not find class: <CLASS_NAME> , then:
Verify that the name of the course is correct. Current class names in coursera are composed by a short course
name e.g. class and the current version of the course (a number). For example, for a class named class , you
would have to use class-001 , class-002 etc.
Second, verify that you are enrolled in the course. You won't be able to access the course materials if you are not
officially enrolled and agreed to the honor course via the website.
If:
You get an error when using -n to specify that you want to use a .netrc file and,
You want the script to use your default netrc file and,
Then you should specify -- as an argument after -n , that is, -n -- or change the order in which you pass the
arguments to the script, so that the argument after -n begins with an hyphen ( - ). Otherwise, Python's argparse
module will think that what you are passing is the name of the netrc file that you want to use. See issue #162.
Warning: If you installed the script using PyPi (pip) please verify that you installed the correct project. We had to use a
different name in pip because our original name was already taken. Remember to install it using:
China issues
If you are from China and you're having problems downloading videos, adding "52.84.167.78 d3c33hcgiwev3.cloudfront.net"
in the hosts file (/etc/hosts) and freshing DNS with "ipconfig/flushdns" may work (see https://github.com/googlehosts/hosts for
more info).
First of all, make sure you are enrolled to the course you want to download.
Many old courses have already closed enrollment so often it's not an option. In this case, try downloading with --preview
option. Some courses allow to download lecture materials without enrolling, but it's not common and is not guaranteed to
work for every course.
Finally, you can download the videos if you have, at least, the index file that lists all the course materials. Maybe your friend
who is enrolled could save that course page for you. In that case use the --process_local_page option.
7 of 10 3/5/18, 11:06 PM
coursera-dl/coursera-dl: Script for downloading C... https://github.com/coursera-dl/coursera-dl
If none of the above works for you, there is nothing we can do.
If you're on Windows behind a proxy, set up the environment variables before running the script as follows:
set HTTP_PROXY=http://host:port
set HTTPS_PROXY=http://host:port
coursera-dl-script
from
#!c:\users\<user>\appdata\local\programs\python\python35-32\python.exe
to
#"!c:\users\<user>\appdata\local\programs\python\python35-32\python.exe"
This is a known error, please do not report about this error message! The problem is in YOUR environment. To fix it, do the
following:
If the error remains, try installing coursera-dl from github following this instruction: https://github.com/coursera-dl/coursera-
dl#alternative-installation-method-for-unix-systems
If you still have the problem, please read the following issues for more ideas on how to fix it: #330 #377 #329
When saving a course page, we enabled MathJax rendering for math equations, by injecting MathJax.js in the header.
The script is using a cdn service provided by mathjax.org. However, that url is not accessible in some countries/regions, you
can provide a --mathjax-cdn <MATHJAX_CDN> parameter to specify the MathJax.js file that is accessible in your region.
8 of 10 3/5/18, 11:06 PM
coursera-dl/coursera-dl: Script for downloading C... https://github.com/coursera-dl/coursera-dl
Reporting issues
Before reporting any issue please follow the steps below:
1. Verify that you are running the latest version of the script, and the recommended versions of its dependencies, see them
in the file requirements.txt . Use the following command if in doubt:
2. If the problem persists, feel free to open an issue in our bugtracker, please fill the issue template with as much
information as possible.
Feedback
I enjoy getting feedback. Here are a few of the comments I've received:
"Thanks for the good job! Knowledge will flood the World a little more thanks to your script!"
Guillaume V. 11/8/2012
"Just wanted to send you props for your Python script to download Coursera courses. I've been using it in Kenya for my
non-profit to get online courses to places where internet is really expensive and unreliable. Mostly kids here can't afford
high school, and downloading one of these classes by the usual means would cost more than the average family earns
in one week. Thanks!"
Jay L., Tunapanda 3/20/2013
"I am a big fan of Coursera and attend lots of different courses. Time constraints don't allow me to attend all the courses
I want at the same time. I came across your script, and I am very happily using it! Great stuff and thanks for making this
available on Github - well done!"
William G. 2/18/2013
"This script is awesome! I was painstakingly downloading each and every video and ppt by hand -- looked into wget but
ran into wildcard issues with HTML, and then.. I came across your script. Can't tell you how many hours you've just
saved me :) If you're ever in Paris / Stockholm, it is absolutely mandatory that I buy you a beer :)"
Razvan T. 11/26/2012
Contact
9 of 10 3/5/18, 11:06 PM
coursera-dl/coursera-dl: Script for downloading C... https://github.com/coursera-dl/coursera-dl
Please, post bugs and issues on github. Send other comments to Rogério Theodoro de Brito (the current maintainer):
rbrito@ime.usp.br (twitter: @rtdbrito) or to John Lehmann (the original author): first last at geemail dotcom (twitter:
@jplehmann).
10 of 10 3/5/18, 11:06 PM