r0oth3x49/udemy-dl is a Backend project on GitHub, written primarily in Python. It has 5.0k stars. A cross-platform python based utility to download courses from udemy for personal offline use.
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
A cross-platform python based utility to download courses from udemy for personal offline use.
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:
Don't share your credentials until the issue is properly tagged/labeled with account-needed.
Owner of this repository is not responsible for any misuse if you share your credentials with strangers.
Requirements
Python 3 only (Now udemy-dl doesn't support python 2)
Python pip
Python module requests
Python module colorama
Python module unidecode
Python module six
Python module cloudscraper
Python module requests[security] or pyOpenSSL
FFmpeg (to download hls based streams properly)
Module Installation
pip install -r requirements.txt
HLS streams download requirements
You would need FFmpeg to be installed and added to environment variable so that udemy-dl can access.
Download FFmpeg from here
On ubuntu you can install it via apt install ffmpeg.
Add to environment variables then udemy-dl will be able to use it when downloading HLS streams.
Tested on
Windows 7/8/8.1/10
Ubuntu-LTS (tested with super user)
Features
Added proper session management.
Resume capability for a course video.
Added proper logging errors and warnings.
Support multiple courses download from file.
Supports organization and individual udemy users both.
Added support to download hls based streams if available.
Added functionality to reset lecture number to start from 1.
Added switch for session caching on demand. (option: --cache)
Convert WebVTT to SRT but donot delete WebVTT. (option: --keep-vtt)
Skip fetching HLS streams, This will make the fetching fast. (option: --skip-hls)
List down course contents and video resolution, suggest the best resolution (option: --info).
Download/skip all available subtitles for a video (options: --sub-only, --skip-sub).
Download/skip all available assets for a video (options: --assets-only, --skip-assets).
Download specific chapter in a course (option: -c / --chapter).
Download specific lecture in a chapter (option: -l / --lecture).
Download specific subtitle for a lecture (option: -s / --sub-lang).
Download chapter(s) by providing range in a course (option: --chapter-start, --chapter-end).
Download lecture(s) by providing range in a chapter (option: --lecture-start, --lecture-end).
Download lecture(s) in requested resolution (option: -q / --quality).
Download course to user requested path (option: -o / --output).
Authentication using cookies (option: -k / --cookies).
Before creating an issue, please do the following:
Use the GitHub issue search — check if the issue is already reported.
Check if the issue is already fixed — try to reproduce it using the latest master in the repository.
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.
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:
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
Author: Nasir khan (r0ot h3x49)
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 [email protected] -p p4ssw0rd COURSE_URL
TODO
Add support to download course on a flaky connection.
The most recent commit recorded on r0oth3x49/udemy-dl was 5.2 years ago, based on the GitHub push timestamp. The repository has 1.2k forks — one of the better signals of community interest.
How many stars does r0oth3x49/udemy-dl have?
r0oth3x49/udemy-dl has 5.0k GitHub stars — refresh the page for the live number, or check github.com/r0oth3x49/udemy-dl. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
Is r0oth3x49/udemy-dl open source?
Yes — r0oth3x49/udemy-dl ships under the MIT license, which makes its source code freely readable (and, depending on license terms, forkable and reusable). Source: github.com/r0oth3x49/udemy-dl.
What else is in the Backend space?
r0oth3x49/udemy-dl is tracked by TopGit under the Backend category, alongside 11 GitHub-tagged topics. Trending and Topics pages list peer repositories of comparable stars and language.
What is r0oth3x49/udemy-dl?
r0oth3x49/udemy-dl (r0oth3x49/udemy-dl) is a Python project on GitHub. From the project's own README: A cross-platform python based utility to download courses from udemy for personal offline use.
What language is r0oth3x49/udemy-dl written in?
r0oth3x49/udemy-dl is written primarily in Python. GitHub's language field is based on the largest share of bytes in the default branch.
What license does r0oth3x49/udemy-dl use?
r0oth3x49/udemy-dl is released under the MIT license. Always verify the LICENSE file directly on GitHub for the authoritative terms — license strings can be edited out of sync with a project's actual stance.
Where do I read more about r0oth3x49/udemy-dl?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/r0oth3x49/udemy-dl is the definitive source.
Read full README in the tab above.
Is udemy-dl worth your time?
ChatGPT, Claude and Perplexity can all read this page. Ask one of them what it makes of udemy-dl.