Home

Awesome

GitHub release GitHub stars GitHub forks GitHub issues GitHub license

udemy-dl

A cross-platform python based utility to download courses from udemy for personal offline use.

udemy-dl-v1-1.png

Warning

Udemy has started to encrypt many of the course videos, so downloading them may be impossible/illegal because it involves decrypting DRM'd videos which opens up the author to DMCA takedowns/lawsuits. If you use udemy-dl and some/all videos are skipped, please don't open a new issue or comment that the issue still exists. All requests to bypass DRM/encryption will be ignored.

If you'd like to see the full context, then read issue 627.

Important Note:

Requirements

Module Installation

pip install -r requirements.txt

HLS streams download requirements

Tested on

Features

Before creating an issue, please do the following:

  1. Use the GitHub issue search — check if the issue is already reported.
  2. Check if the issue is already fixed — try to reproduce it using the latest master in the repository.
  3. Make sure, that information you are about to report is related to this repository and not the one available on Python's repository, PyPi, Because this repository cannot be downloaded/installed via pip command.
  4. Follow issue reporting template properly otherwise the issue will be closed.

How to login with cookie

The cookies.txt file should have the following simple format, eg:

access_token=JKU9QNs2IQDBKoYKvOBclSPXN97baf32o1Jo2L9vX

Finding your access token value

Download udemy-dl

You can download the latest version of udemy-dl by cloning the GitHub repository.

git clone https://github.com/r0oth3x49/udemy-dl.git

Usage

Download a course

python udemy-dl.py COURSE_URL

Download a courses from file

python udemy-dl.py FILE-CONTAINING-COURSE-URLs

Download course with specific resolution

python udemy-dl.py COURSE_URL -q 720

Download course to a specific location

python udemy-dl.py COURSE_URL -o "/path/to/directory/"

Download course with specific resolution to a specific location

python udemy-dl.py COURSE_URL -q 720 -o "/path/to/directory/"

Download specific chapter from a course

python udemy-dl.py COURSE_URL -c NUMBER

Download specific lecture from a chapter

python udemy-dl.py COURSE_URL -c NUMBER -l NUMBER

Download lecture(s) range from a specific chapter

python udemy-dl.py COURSE_URL -c NUMBER --lecture-start NUMBER --lecture-end NUMBER

Download chapter(s) range from a course

python udemy-dl.py COURSE_URL --chapter-start NUMBER --chapter-end NUMBER

Download specific lecture from chapter(s) range

python udemy-dl.py COURSE_URL --chapter-start NUMBER --chapter-end NUMBER --lecture NUMBER

Download lecture(s) range from chapter(s) range

python udemy-dl.py COURSE_URL --chapter-start NUMBER --chapter-end NUMBER --lecture-start NUMBER --lecture-end NUMBER

List down specific chapter from a course

python udemy-dl.py COURSE_URL -c NUMBER --info

List down specific lecture from a chapter

python udemy-dl.py COURSE_URL -c NUMBER -l NUMBER --info

Download specific subtite by using language code such as (en, es) if lang switch is not specified then default will be all subtitles

python udemy-dl.py COURSE_URL --sub-lang en

Advanced Usage

<pre><code> Author: Nasir khan (<a href="http://r0oth3x49.herokuapp.com/">r0ot h3x49</a>) usage: udemy-dl.py [-h] [-v] [-u] [-p] [-k] [-o] [-q] [-c] [-l] [-s] [--chapter-start] [--chapter-end] [--lecture-start] [--lecture-end] [--info] [--cache] [--keep-vtt] [--sub-only] [--skip-sub] [--skip-hls] [--assets-only] [--skip-assets] course A cross-platform python based utility to download courses from udemy for personal offline use. positional arguments: course Udemy course. General: -h, --help Shows the help. -v, --version Shows the version. Authentication: -u , --username Username in udemy. -p , --password Password of your account. -k , --cookies Cookies to authenticate with. Advance: -o , --output Download to specific directory. -q , --quality Download specific video quality. -c , --chapter Download specific chapter from course. -l , --lecture Download specific lecture from chapter(s). -s , --sub-lang Download specific subtitle/caption (e.g:- en). --chapter-start Download from specific position within course. --chapter-end Download till specific position within course. --lecture-start Download from specific position within chapter(s). --lecture-end Download till specific position within chapter(s). Others: --info List all lectures with available resolution. --cache Cache your session to avoid providing again. --keep-vtt Keep WebVTT caption(s). --sub-only Download captions/subtitle only. --skip-sub Download course but skip captions/subtitle. --skip-hls Download course but skip hls streams. (fast fetching). --assets-only Download asset(s) only. --skip-assets Download course but skip asset(s). Example: python udemy-dl.py COURSE_URL python udemy-dl.py COURSE_URL -k cookies.txt python udemy-dl.py -u user@domain.com -p p4ssw0rd COURSE_URL </code></pre>

TODO