GitHub Repo Link
by Puyodead1
Description:
This Udemy Downloader tool allows users to download Udemy courses, including DRM-protected content. However, decryption keys are required to download DRM-encrypted courses. This tool is in WIP (Work in Progress) status, and the code is provided as-is. Windows is the primary development environment, but Linux is also supported. Mac is untested.
Disclaimer: Downloading Udemy courses violates their Terms of Service, and the author is not responsible for any legal or account-related consequences.
Features:
- Download Udemy courses (including DRM-protected ones).
- Support for downloading videos, captions, quizzes, and assets.
- Works primarily on Windows, but Linux is also supported.
- Multiple language support for captions.
- Advanced options for customizing downloads (video quality, concurrency, browser-based cookie extraction, etc.).
Requirements:
Before using this tool, ensure you have the following installed on your system (manual installation required):
- Python 3
- ffmpeg
(Recommended custom build from yt-dlp for better performance)
Latest ffmpeg builds - aria2
- shaka-packager
- yt-dlp (Can be installed via pip:
pip install yt-dlp
)
Setup Instructions:
- Download the repository and navigate to the folder.
- Rename
.env.sample
to.env
if you want to store your Bearer Token in the.env
file. - Rename
keyfile.example.json
tokeyfile.json
. - Add your Bearer Token in
.env
or pass it as an argument. - Enter your Decryption Key ID and Decryption Key into
keyfile.json
.
Note: You need to manually obtain the decryption keys to download DRM-protected content. The developer cannot help with key acquisition.
How to Use:
You will need the following to start downloading:
- Udemy Course URL
- Bearer Token (access token)
- Decryption Key (for DRM-protected content)
- Udemy Cookies (for subscription-based content)
Once you have everything, run the following command:
python main.py -c <Course URL> -b <Bearer Token>
Example:
python main.py -c https://www.udemy.com/courses/samplecourse -b <Bearer Token>
Advanced Usage:
-
Specify Download Quality:
python main.py -c <Course URL> -q 720
-
Download Assets:
python main.py -c <Course URL> --download-assets
-
Download Captions (English):
python main.py -c <Course URL> --download-captions
-
Download Captions (All Languages):
python main.py -c <Course URL> --download-captions -l all
-
Skip Videos, Download Captions Only:
python main.py -c <Course URL> --skip-lectures --download-captions
-
Log Debug Info:
python main.py -c <Course URL> --log-level DEBUG
For more options and details, check the full documentation in the GitHub Repository.
Important Notes:
- This tool will not work on encrypted courses without valid decryption keys.
- Cookies are required only for subscription-based courses.
- Automatic caption downloading is currently broken due to changes in Udemyβs API.
- Be aware of legal risks involved in downloading Udemy content. You are responsible for your actions, and the developer is not liable for any legal consequences.
Support & Contributions:
If you encounter issues or need help, you can:
- Join the developerβs Discord server (link in the GitHub repo).
- Raise an issue on the GitHub Issues page.
For those who wish to contribute, pull requests are welcome. Refer to the contribution guidelines in the repository.
Donations:
If you appreciate the work put into this tool and would like to support further development, consider making a donation. You can find donation options here.