All Projects → r0oth3x49 → Udemy Dl

r0oth3x49 / Udemy Dl

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

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Udemy Dl

Udemy Downloader Gui
A desktop application for downloading Udemy Courses
Stars: ✭ 5,504 (+25.66%)
Mutual labels:  udemy, downloader, udemy-dl
Happypanda
A cross platform manga/doujinshi manager with namespace & tag support
Stars: ✭ 161 (-96.32%)
Mutual labels:  downloader, cross-platform
Instalooter
Another API-less Instagram pictures and videos downloader.
Stars: ✭ 1,639 (-62.58%)
Mutual labels:  downloader, cross-platform
udemy-downloader
A Udemy downloader that can download lectures, with DRM support.
Stars: ✭ 507 (-88.42%)
Mutual labels:  downloader, udemy
Happypandax
A cross-platform server and client application for managing and reading manga and doujinshi
Stars: ✭ 432 (-90.14%)
Mutual labels:  downloader, cross-platform
Udemy Dl
Nodejs script to download a udemy.com course, for personal offline use
Stars: ✭ 271 (-93.81%)
Mutual labels:  udemy, downloader
Saldl
A lightweight well-featured CLI downloader optimized for speed and early preview.
Stars: ✭ 203 (-95.37%)
Mutual labels:  downloader, cross-platform
Youtube Dl Gui
A cross platform front-end GUI of the popular youtube-dl written in wxPython.
Stars: ✭ 7,914 (+80.68%)
Mutual labels:  downloader, cross-platform
course to local website
Create a local website for your `Udemy` downloaded course
Stars: ✭ 17 (-99.61%)
Mutual labels:  udemy, udemy-dl
CourseDownloader
GUI app for downloading whole online courses with folder structure from one url
Stars: ✭ 20 (-99.54%)
Mutual labels:  downloader, udemy
ngDownloader
📹 🎥 Now Download videos from any website including YouTube, Facebook, Udemy etc without ads.
Stars: ✭ 47 (-98.93%)
Mutual labels:  downloader, udemy
Photon
A lightweight multi-threaded downloader based on aria2.
Stars: ✭ 3,030 (-30.82%)
Mutual labels:  downloader, cross-platform
Lynda Dl
A cross-platform python based utility to download courses from lynda.com for personal offline use.
Stars: ✭ 280 (-93.61%)
Mutual labels:  downloader, cross-platform
Negibox
All in one downloader 全能下载器
Stars: ✭ 335 (-92.35%)
Mutual labels:  downloader, cross-platform
Crypter
🔓✨🔒 An innovative, convenient and secure encryption app
Stars: ✭ 382 (-91.28%)
Mutual labels:  cross-platform
Imguifiledialog
File Dialog for ImGui : https://github.com/aiekick/ImGuiFileDialog
Stars: ✭ 398 (-90.91%)
Mutual labels:  cross-platform
Libgdx
Desktop/Android/HTML5/iOS Java game development framework
Stars: ✭ 19,420 (+343.38%)
Mutual labels:  cross-platform
Ncine
A cross-platform 2D game engine
Stars: ✭ 372 (-91.51%)
Mutual labels:  cross-platform
Arx
ARX is a comprehensive open source data anonymization tool aiming to provide scalability and usability. It supports various anonymization techniques, methods for analyzing data quality and re-identification risks and it supports well-known privacy models, such as k-anonymity, l-diversity, t-closeness and differential privacy.
Stars: ✭ 398 (-90.91%)
Mutual labels:  cross-platform
Kawanime
Desktop app for anime fans
Stars: ✭ 396 (-90.96%)
Mutual labels:  cross-platform

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:

  • 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:

  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


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.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].