Download videos from Udemy for personal offline use

pypi, python, udemy
pip install udemy-dl==0.2.2a2


Python script to download a course, for personal offline use.



PyPI version Build Status Code Health

Windows Version

A Windows version without any dependecies is available here

You can get the lastest Windows release from here.



  • Python (2 or 3)
  • pip (Python Install Packager)
  • Python module requests
    • If missing, they will be automatically installed by pip


If you don't have pip installed, look at their install doc. Easy install (if you trust them) is to run their bootstrap installer directly by using:

sudo curl | sudo python


udemy-dl can be installed using pip

pip install udemy-dl


python -m pip install udemy-dl

In OS X and Linux you need to sudo installing udemy-dl or you may face some errors

sudo pip install udemy-dl

Also you need to sudo installing pip itself or you run into the same problem.


udemy-dl can be updated using pip

pip install --upgrade udemy-dl


python -m pip install --upgrade udemy-dl

In OS X and Linux you need to sudo upgrade udemy-dl

sudo pip install --upgrade udemy-dl


Simply call udemy-dl with the full URL to the course page.



python -m udemy_dl

udemy-dl will ask for your udemy username (email address) and password then start downloading the videos.

By default, udemy-dl will create a subdirectory based on the course name. If you wish to have the files downloaded to a specific location, use the -o /path/to/directory/ parameter.

If you wish, you can include the username/email and password on the command line using the -u and -p parameters.

udemy-dl -u -p $ecRe7w0rd

If you don't want to download but save links to a file for later downloading with a different downloader

python -m udemy_dl -s

For information about all available parameters, use the --help parameter

udemy-dl --help

Advanced Usage

usage: udemy-dl [-h] [-u USERNAME] [-p PASSWORD]
                [--lecture-start LECTURE_START] [--lecture-end LECTURE_END]
                [-o OUTPUT] [-d {aria2c,axel,httpie,curl}] [--use-ffmpeg]
                [-q VIDEO_QUALITY] [-s] [--safe-file-names] [-l] [--debug] [--use-course-title]

Fetch all the lectures for a udemy course

positional arguments:
  link                  Link for udemy course

optional arguments:
  -h, --help            	show this help message and exit
  -u USERNAME, --username USERNAME
							Username / Email
  -p PASSWORD, --password PASSWORD
  --lecture-start LECTURE_START
							Lecture to start at (default is 1)
  --lecture-end LECTURE_END
							Lecture to end at (default is last)
  -o OUTPUT, --output OUTPUT
							Output directory / text file path (if saving links)
  -d {aria2c,axel,httpie,curl}, --external-downloader {aria2c,axel,httpie,curl}
							Download with external downloader [aria2c, axel,
							httpie, curl] (default is aria2c)
  --use-ffmpeg          	Download videos from m3u8/hls with ffmpeg
  -q VIDEO_QUALITY, --video-quality VIDEO_QUALITY
							Select video quality [default is 654321(highest)]
  -s, --save-links      	Do not download but save links to a file
  --safe-file-names     	Use safe cross-platform filenames
  -l, --list            	Just list all of the possible lectures and their ids
  --debug               	Enable debug mode
  --use-course-title	Use the course title for the parent folder name (WARNING: can make file path too long
  -v, --version         	Display the version of udemy-dl and exit


udemy-dl can be uninstalled using pip

sudo pip uninstall udemy-dl

You may uninstall the required requests module too but be aware that those might be required for other Python modules.