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

Overview

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.
Comments
  • README.md - Extracting Cookies / Request Headers is unclear

    README.md - Extracting Cookies / Request Headers is unclear

    Now click on My Courses in the Udemy navbar and refresh the page you will see some requests under Network Tab. Right click on request links to udemy.com/api-2.0/. Simply copy Request Headers and save to text file.

    These instructions really are not clear. I would suggest to improve "Right click on request links to udemy.com/api-2.0/" to specify which request link to udemy.com/api-2.0/ - if any one is OK, then specify that. "Simply copy Request Headers and save to text file.": there are Request Headers displayed lower down in Dev Tools. To specify that you can save the headers via the right click context menu: "Right click on... and select 'Copy Request Headers' from the context menu". "and save to text file." -> "The headers are now in the clipboard. Paste them into a text file and save it to the udemy-dl directory"

    So far so good?

    Now the next point I cannot suggest a phrasing for as I could not work out what the instruction is trying to do. "Done run the udemy-dl against that text file it will start downloading the course."

    What does it mean to run udemy-dl "against" a text file? I cannot see any option to use a text file as parameters to udemy-dl .

    opened by morkeltry 40
  • Exception: 504 Gateway Time-out

    Exception: 504 Gateway Time-out

    Describe the bug Cannot download course, get the following error:

    python ./udemy-dl.py https://www.udemy.com/course/nodejs-the-complete-guide/ -k cookies3.txt 
                  __                               ____  
       __  ______/ /__  ____ ___  __  __      ____/ / /  
      / / / / __  / _ \/ __ `__ \/ / / /_____/ __  / /   
     / /_/ / /_/ /  __/ / / / / / /_/ /_____/ /_/ / /    
     \__,_/\__,_/\___/_/ /_/ /_/\__, /      \__,_/_/     
                               /____/
                                     Version : 1.0
                                     Author  : Nasir Khan (r0ot h3x49)
                                     Github  : https://github.com/r0oth3x49
    
    [i] : Trying to login using session cookie
    [i] : Logged in successfully.
    Traceback (most recent call last):on ..
      File "/home/roman/Cloud/DriveTrust Drive/Udemy/udemy-dl/udemy/extract.py", line 339, in _extract_course_json
        resp = self._extract_large_course_content(url=url)
      File "/home/roman/Cloud/DriveTrust Drive/Udemy/udemy-dl/udemy/extract.py", line 311, in _extract_large_course_content
        data = self._session._get(url).json()
      File "/home/roman/Cloud/DriveTrust Drive/Udemy/udemy-dl/udemy/session.py", line 47, in _get
        raise Exception(f"{session.status_code} {session.reason}")
    Exception: 504 Gateway Time-out
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "./udemy-dl.py", line 611, in <module>
        main()
      File "./udemy-dl.py", line 581, in main
        udemy_obj.course_download(
      File "./udemy-dl.py", line 283, in course_download
        course = udemy.course(
      File "/home/roman/Cloud/DriveTrust Drive/Udemy/udemy-dl/udemy/udemy.py", line 40, in course
        return Udemy(url, username, password, cookies, basic, skip_hls_stream, callback)
      File "/home/roman/Cloud/DriveTrust Drive/Udemy/udemy-dl/udemy/internal.py", line 65, in __init__
        super(InternUdemyCourse, self).__init__(*args, **kwargs)
      File "/home/roman/Cloud/DriveTrust Drive/Udemy/udemy-dl/udemy/shared.py", line 300, in __init__
        self._fetch_course()
      File "/home/roman/Cloud/DriveTrust Drive/Udemy/udemy-dl/udemy/internal.py", line 78, in _fetch_course
        self._info = self._real_extract(self._url, skip_hls_stream=self._skip_hls_stream)
      File "/home/roman/Cloud/DriveTrust Drive/Udemy/udemy-dl/udemy/extract.py", line 608, in _real_extract
        course_json = self._extract_course_json(url, course_id, portal_name)
      File "/home/roman/Cloud/DriveTrust Drive/Udemy/udemy-dl/udemy/extract.py", line 347, in _extract_course_json
        resp = self._extract_large_course_content(url=url)
      File "/home/roman/Cloud/DriveTrust Drive/Udemy/udemy-dl/udemy/extract.py", line 320, in _extract_large_course_content
        resp = self._session._get(_next).json()
      File "/home/roman/Cloud/DriveTrust Drive/Udemy/udemy-dl/udemy/session.py", line 47, in _get
        raise Exception(f"{session.status_code} {session.reason}")
    Exception: 504 Gateway Time-out
    
    

    To Reproduce

    Steps to reproduce the behavior:

    1. udemy course url: [e.g https://www.udemy.com/course/nodejs-the-complete-guide/] '...'
    2. Run the following command to reproduce the error: python ./udemy-dl.py https://www.udemy.com/course/nodejs-the-complete-guide/ -k cookies3.txt
    3. See error

    Expected behavior Course should download

    Python Environment (please complete the following information):

    • Python 3.8.3
    • Ubuntu 18.04
    resolved 
    opened by romrayster 28
  • Udemy Says : 403 Forbidden retry after few minutes

    Udemy Says : 403 Forbidden retry after few minutes

    Hi!

    just as the title mention, i have an error when i try to download course. "Udemy Says : 403 Forbidden retry after few minutes" Does anyone has the same error ?

    resolved 
    opened by AnthonyIp 24
  • Sometimes file types are not downloading all the time

    Sometimes file types are not downloading all the time

    Describe the bug Sometimes files with py, json, and text extension are skipped from being downloaded

    To Reproduce Steps to reproduce the behavior:

    1. udemy course url: https://www.udemy.com/course/python-for-beginners-learn-python-from-scratch
    2. Run the following command to reproduce the error... python udemy-dl.py https://www.udemy.com/course/python-for-beginners-learn-python-from-scratch/ -k cookie.txt -u my_emails_address -p my_password -q 1080 -o "../Udemy_-_Python_3_from_Beginner_to_Expert_-_Learn_Python_from_Scratch" --skip-sub
    3. See error... Asset : '006 arhitmetic-operators.py' (download skipped). [-] : Reason : int() argument must be a string or a number, not 'NoneType' or Asset : '075 namesurnames.txt' (download skipped). [-] : Reason : int() argument must be a string or a number, not 'NoneType' or Asset : '078 sample.json' (download skipped). [-] : Reason : int() argument must be a string or a number, not 'NoneType'

    Expected behavior I expected the files to download like all other files (mp4, pdf, doc, txt, html, zip, py, json)

    Screenshots If applicable, add screenshots to help explain your problem.

    Python Environment (please complete the following information):

    • OS Platform: [Ubuntu 18.04]
    • Python Version [2.7.17]

    Additional context First time seeing this occur and only with this course. Some of the py and txt files did download, but most were skipped. All naming conventions were the same for files successfully downloaded and for those that were skipped. I manually downloaded a few of the files being skipped and opened them in vs codium. I didn't see any issues with contents of files i.e. not corrupt or empty files. Any suggestions? Update: It's happening on https://www.udemy.com/course/docker-tutorial/ as well.

    cant-reproduce account-needed 
    opened by johndoe1969 21
  • bug when trying to download

    bug when trying to download

    Traceback (most recent call last): File "udemy-dl.py", line 924, in main() File "udemy-dl.py", line 879, in main udemy.ExtractAndDownload(quality=res) File "udemy-dl.py", line 291, in ExtractAndDownload self.login() File "udemy-dl.py", line 40, in login extract_info.login(self.username, self.password) File "/home/thesalah1212/udemy-dl-master/udemy/_extractor.py", line 147, in login login_form = self._fill_login_form(login_popup, username, password) File "/home/thesalah1212/udemy-dl-master/udemy/_extractor.py", line 98, in _fill_login_form login_form = self._form_hidden_inputs('login-form', webpage) File "/home/thesalah1212/udemy-dl-master/udemy/_extractor.py", line 88, in _form_hidden_inputs return _hidden_inputs(form) File "/home/thesalah1212/udemy-dl-master/udemy/_utils.py", line 80, in _hidden_inputs html = re.sub(r'<!--(?:(?!', '', html) File "/usr/lib/python3.5/re.py", line 182, in sub return _compile(pattern, flags).sub(repl, string, count) TypeError: expected string or bytes-like object [email protected]:~/udemy-dl-master$

    opened by thesalah1212 20
  • AttributeError: 'NoneType' object has no attribute 'group'

    AttributeError: 'NoneType' object has no attribute 'group'

    After fetching the newest tarball i run into this error on MacOS with Homebrew. Version before was good, but got in Courses with empty material files (e.g. Empty PowerPoint files) always:

    Traceback (most recent call last): File "udemy-dl.py", line 858, in main() File "udemy-dl.py", line 774, in main udemy.ExtractAndDownload(path=outto) File "udemy-dl.py", line 387, in ExtractAndDownload out = self.Downloader(_url, lecture_name, chapter_path) File "udemy-dl.py", line 88, in Downloader out = course_dl.download(url, title, filepath=path, quiet=True, callback=self.Download) File "/Users/shade/Downloads/udemy-dl-master/udemy/_downloader.py", line 120, in download progress_stats = (bytesdone, bytesdone * 1.0 / total, rate, eta) ZeroDivisionError: float division by zero

    Now, with the newest revision i get:

    [*] : Downloading webpage.. [*] : Extracting course information.. [*] : Downloading '....'. Traceback (most recent call last): File "udemy-dl.py", line 858, in main() File "udemy-dl.py", line 774, in main udemy.ExtractAndDownload(path=outto) File "udemy-dl.py", line 280, in ExtractAndDownload self.login() File "udemy-dl.py", line 39, in login extract_info.login(self.username, self.password) File "/Users/shade/.Trash/udemy-dl-master/udemy/_extractor.py", line 99, in login csrf_token = self._get_csrf_token() File "/Users/shade/.Trash/udemy-dl-master/udemy/_extractor.py", line 70, in _get_csrf_token return match.group(1) AttributeError: 'NoneType' object has no attribute 'group'

    invalid Irrelevant 
    opened by Shadesh 20
  • 403 Unauthorized

    403 Unauthorized

    hello, im already download new udemy-dl but still error with me, i use windows 10 google crome with my browser

    capture

    and

    im using --upgrade to but not work

    resolved 
    opened by Keweb 19
  • Unable to download course

    Unable to download course

    When I try to download a course, I get following error. I've tried with diffrent links but result has not changed.

       __  ______/ /__  ____ ___  __  __      ____/ / /  
      / / / / __  / _ \/ __ `__ \/ / / /_____/ __  / /   
     / /_/ / /_/ /  __/ / / / / / /_/ /_____/ /_/ / /    
     \__,_/\__,_/\___/_/ /_/ /_/\__, /      \__,_/_/     
                               /____/
                                     Version : 0.5
                                     Author  : Nasir Khan (r0ot h3x49)
                                     Github  : https://github.com/r0oth3x49
    
    [*] : Trying to login as ([email protected])...
    [+] : Logged in successfully.
    [-] : Downloading course information, course id not found .. (failed)
    [i] : It seems either you are not enrolled or you have to visit the course atleast once while you are logged in.
    [*] : Trying to logout now...
    [+] : Logged out successfully.
    
    under-observation 
    opened by serhattsnmz 17
  • json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

    json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

    Describe the bug I tried to get info of all lectures and also tried downloading the lectures but getting the same error always. The login through cookies is successful but its unable to fetch any info from udemy

    To Reproduce Steps to reproduce the behavior:

    1. udemy course url: https://www.udemy.com/course/the-web-developer-bootcamp

    2. Comand Used: ( Getting these errors on every command for this course )

    python3 udemy-dl.py https://www.udemy.com/course/the-web-developer-bootcamp -k cookie.txt --info python3 udemy-dl.py https://www.udemy.com/course/the-web-developer-bootcamp/ -k cookie.txt -q 720 -o "/home/xd003/udemy"

    [[email protected] udemy-dl]$ python3 udemy-dl.py https://www.udemy.com/course/the-web-developer-bootcamp -k cookie.txt --info
    
                  __                               ____  
       __  ______/ /__  ____ ___  __  __      ____/ / /  
      / / / / __  / _ \/ __ `__ \/ / / /_____/ __  / /   
     / /_/ / /_/ /  __/ / / / / / /_/ /_____/ /_/ / /    
     \__,_/\__,_/\___/_/ /_/ /_/\__, /      \__,_/_/     
                               /____/
                                     Version : 0.5
                                     Author  : Nasir Khan (r0ot h3x49)
                                     Github  : https://github.com/r0oth3x49
    
    [*] : Trying to login using cookies ...
    [+] : Logged in successfully.
    Traceback (most recent call last):on .. 
      File "udemy-dl.py", line 1453, in <module>
        main()
      File "udemy-dl.py", line 968, in main
        udemy.course_list_down(chapter_number=options.chapter, lecture_number=options.lecture, unsafe=options.unsafe)
      File "udemy-dl.py", line 143, in course_list_down
        course = udemy.course(url=self.url, username=self.username, password=self.password, cookies=self.cookies)
      File "/home/xd003/udemy-dl/udemy/_udemy.py", line 38, in course
        return Udemy(url, username, password, cookies, basic, callback)
      File "/home/xd003/udemy-dl/udemy/_internal.py", line 44, in __init__
        super(InternUdemyCourse, self).__init__(*args, **kwargs)
      File "/home/xd003/udemy-dl/udemy/_shared.py", line 258, in __init__
        self._fetch_course()
      File "/home/xd003/udemy-dl/udemy/_internal.py", line 56, in _fetch_course
        self._info              =       self._real_extract(self._url)
      File "/home/xd003/udemy-dl/udemy/_extract.py", line 469, in _real_extract
        course_json = self._extract_course_json(url, course_id, portal_name)
      File "/home/xd003/udemy-dl/udemy/_extract.py", line 270, in _extract_course_json
        resp = self._extract_large_course_content(url=url)
      File "/home/xd003/udemy-dl/udemy/_extract.py", line 234, in _extract_large_course_content
        data = self._session._get(url).json()
      File "/usr/lib/python3.8/site-packages/requests/models.py", line 898, in json
        return complexjson.loads(self.text, **kwargs)
      File "/usr/lib/python3.8/json/__init__.py", line 357, in loads
        return _default_decoder.decode(s)
      File "/usr/lib/python3.8/json/decoder.py", line 337, in decode
        obj, end = self.raw_decode(s, idx=_w(s, 0).end())
      File "/usr/lib/python3.8/json/decoder.py", line 355, in raw_decode
        raise JSONDecodeError("Expecting value", s, err.value) from None
    json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
    

    Screenshots If applicable, add screenshots to help explain your problem. g

    Python Environment (please complete the following information):

    • OS Platform: Manjaro Linux x86_64
    • Python Version: 3.8.3

    Update - i tried this same command on another course i have in my account and didnt got error on it . I dont know if that matters but this course on which i have got this error is kinda big in size - it has 41 chapters/sections and 405 lectures

    opened by xd003 16
  • Udemy Says : 403 Forbidden You should use cookie base method to authenticate or try again in few minutes

    Udemy Says : 403 Forbidden You should use cookie base method to authenticate or try again in few minutes

    Describe the bug Hello udemy-dl team. I downloaded the update that was released 10 days ago because when I download it, it sends me the message: Udemy Says: 403 Forbidden You should use cookie base method to authenticate or try again in a few minutes.

    To Reproduce I have followed the guide written by the admin in the league for Google Chrome https://github.com/r0oth3x49/udemy-dl/issues/389 and I have created a file named cookies.txt

    I have followed the 2 options available:

    $ python udemy-dl.py https://www.udemy.com/course/universidad-python-desde-cero-hasta-experto-django-flask-rest-web/ --info -k cookies.txt

    $ python udemy-dl.py -u [email protected] -p password https://www.udemy.com/course/universidad-python-desde-cero-hasta-experto-django-flask-rest-web/ - k cookies.txt

    I don't get a successful result :(

    Screenshots

    pythonuser

    pythoncookies

    Python Environment (please complete the following information):

    • OS Platform: [e.g. Windows 10, Ubuntu 16.04, macOS Sierra]
    • Python Version [e.g. 3.x.x]
    help-wanted cant-reproduce 
    opened by almsx 16
  • Download of videos fails with URLError

    Download of videos fails with URLError

    Download a course fails with the current Git master (f5623f1195bfabf29467367ed47923afe03c944a). Login works fine, the overview pages are also fetched and with --sub-only I get the subtitle. But every video download is skipped with URLError : either your internet connection is not working or server aborted the request.

    The course doesn't matter, but I just reconfirmed the problem with this free course: https://www.udemy.com/become-an-options-trading-expert/

    Is there any way to make udemy-dl more verbose? Let me know if there are any other means for me to help in debuging.

    cant-reproduce 
    opened by Janed89 16
  • DRM protected video streams are being skipped (udemy-dl not downloading videos)

    DRM protected video streams are being skipped (udemy-dl not downloading videos)

    When i'm trying to download any course any videos that have their URLs starting in blob:https://URL_UDEMY are being skipped.

    the lectures are recognized but only assets in that chapter are downloaded. I have all requirements including ffmpeg installed & working in command line.

    [i] : Downloading chapter : (2) [i] : Chapter (02 JavaScript Refresher) [i] : Found (13) lecture(s).

    [i] : Downloading asset(s) [i] : Downloading (022 next-gen-js-summary.pdf) [+] : Asset : '022 next-gen-js-summary.pdf' (already downloaded)

    Lectures were found but not downloaded

    • OS Platform: macOS Big Sur & Windows 10
    • Python Version - Python 3
    won't fix 
    opened by nChauhan91 145
Releases(v1.1)
  • v1.1(Feb 21, 2021)

  • v1.0(Sep 12, 2020)

    Features:

    • Added proper session management.
    • Restructure code to make it bit nicer.
    • Added proper logging for errors and warning which fixes (#477).
    • Added support to download multiple courses from file.
    • Added support to download by default just EN subtitle. (could use --sub-lang to download others)
    • Added switch to keep WebVTT subtitles (option: --keep-vtt).
    • Added support to fetch/skip HLS streams such as 1080p etc. (option to skip --skip-hls).
    • Removed --names, --save switches.
    • Removed --cache switch as proper session management is added.
    • Removed --unsafe switch now unicode characters are handled properly in code.
    • Added support to download/skip all available assets for a video (options: --assets-only, --skip-assets).
    • Removed support for python 2 now only works with python 3
    Source code(tar.gz)
    Source code(zip)
  • v0.5(May 21, 2018)

    udemy-dl v0.5, Added feature to authenticate using cookies, Added feature to save lecture titles to text file, Added feature to download courses containing unicode characters in title, added file to listdown contributors

    Features

    • Download/save lecture names (option: --names).
    • Authentication using cookies (option: -k / --cookies) thanks to @jhonyyy90.
    • Download lectures containing unsafe unicode characters in title/name (option: --unsafe).
    Source code(tar.gz)
    Source code(zip)
  • v0.4(Feb 26, 2018)

    udemy-dl v0.4, added feature to download specific chapter, chapter(s) range, lecture or lecture(s) from chapter or chapter(s) range. replaced some old option with new one.

    Features

    • Download spacific chapter in a course (option: -c / --chapter) thanks to @alfari16.
    • Download chapter(s) by providing range in a course (option: --chapter-start, --chapter-end).
    • Download specific lecture in a chapter (option: -l / --lecture).
    • Download lecture(s) by providing range in a chapter (option: --lecture-start, --lecture-end).
    • Changed (option: -l / --list-infos) by (option: --info).
    • Changed (option: -c / --configs) by (option: --cache).
    • Changed (option: -s / --save-links) by (option: --save).
    • Changed (option: -r / --resolution) by (option: -q / --quality).
    • Removed (option: -d / --get-default).
    Source code(tar.gz)
    Source code(zip)
  • v0.3(Dec 30, 2017)

    udemy-dl is a python based command line utility that lets you download the courses from udemy.com in which you are already enrolled. by using udemy-dl you can download courses from your udemy account to your personal computer or laptop which you can use later for learning purposes & you can share with friends. currently not following Semantic versioning but may be in future i will add the proper way of Semantic versioning.

    Source code(tar.gz)
    Source code(zip)
Owner
Nasir Khan
Anything the mind can conceive, It can achieve
Nasir Khan
Script that allows to download portable installers of different versions Adobe software for macOS

What is this and for what This is a script that allows you to download portable installers of programs from Adobe for macOS with different versions. T

715 Jan 06, 2023
🔥 A Bot To Telegram For Download High Qulity Videos & Songs From Youtube

🔥 A Bot To Telegram For Download High Qulity Videos & Songs From Youtube 🎗 Fast And Free Bot No Need To Pay ✅ By SL-Alpha-X-Team ⚡

Official Alpha-X-Team Account 7 Aug 31, 2022
Archivist - Easily archive 📦 Download folder to Google Drive ☁️

Archivist Script for archiving Download folder by uploading unmodified files to a Google Drive folder. Modified files will remain in the Download fold

Timing Liu 3 Sep 30, 2022
This is a simple Python Script to download Imgur Pictures with the short url!

Imgur Downloader This is a simple Python Script that runs a process with progress bar that downloads an Imgur Picture! Code Example Features Progress

OGMatrix 1 Nov 18, 2021
TikTok - TikTok Bot to download video or audio from TikTok

TikTok - TikTok Bot to download video or audio from TikTok

JMTHON 51 Mar 04, 2022
Download YOUR files, documents from vk.

vk-documents-downloader Кароч эта симпл херня качает все ВАШИ документы с вк. Или я еблан, но в гх и тмб гугле я подобного не нашел. py main.py Login:

4 Jun 10, 2022
Pypixiv - A fully-typed, asynchronous api wrapper for pixiv

pypixiv this library is a fully-typed, asynchronous api wrapper for pixiv. featu

DeltaLaboratory 2 Nov 16, 2022
Desktop utility to download images/videos/music/text from various websites, and more

Desktop utility to download images/videos/music/text from various websites, and more

Kurt Bestor 11.2k Jan 08, 2023
Download your bandcamp collection using this python script.

bandcamp-downloader Download your Bandcamp collection using this python script. It requires you to have a browser with a logged in session of bandcamp

72 Dec 20, 2022
Download your Spotify playlists and songs along with album art and metadata

spotDL Download your Spotify playlists and songs along with album art and metadata The fastest, easiest, and most accurate command-line music download

10.6k Jan 03, 2023
Downloads data from OSM API and uploads it to the mapping sandbox.

OpenStreetMap To Sandbox This is a script to download data from OSM API and upload it to the mapping sandbox. Note that it clears all data in the sand

Ilya Zverev 5 Nov 27, 2022
1Fichier Download Manager.

1fichier-dl 1Fichier Download Manager. Features ⭐ Manage your downloads ⭐ Bypass time limits Credits All icons, including the app icon, were provided

manuGMG 470 Oct 08, 2022
命令行版本的HLS/DASH流下载器,支持标准AES-128-CBC解密

XstreamDL-CLI 基于python 3.7.4+的,命令行版本的,HLS/DASH流下载器,支持标准AES-128-CBC解密 使用 首先安装必要的库

xhlove 239 Dec 31, 2022
Search the gallerys by tag and download pictures to the local

booruDownloader Search the gallerys by tag and download pictures to the local

6 Jun 30, 2022
An Inline Telegram bot that can download YouTube videos with permanent thumbnail support

Tube (YouTube Downloader) An Inline Telegram bot that can download YouTube videos with permanent thumbnail support About Bot need to be in Inline Mode

Renjith Mangal 30 Dec 14, 2022
A program that can download animations from myself website

MYD A program that can download animations from myself website 一個可以用來下載Myself網站上動漫的程式 Quick Start [無GUI版本] 確定電腦內包含 ffmpeg 並設為環境變數 (Environment Variabl

Patrick_star 1 Nov 07, 2021
Organize your downloads easily with DownloadOrganizer

DownloadOrganizer Organize your downloads organize your downloads easily with DownloadOrganizer Instilation how to install DownloadOrganizer Method 1:

1 Dec 02, 2021
Tool To download - Amazon - Netflix- Disney+ - VideoLand - Boomerang - RTE.ie

vinetrimmer Widevine Decryption Script for Python Modules Amazon Netflix (with [email protected]

9 Dec 31, 2021
Python/Selenium script to scrape data about university courses

university-courses Python/Selenium script to scrape data about university courses. Script first extracts URLs of each courses homepage, then trawls ea

Sam Brown 1 Feb 02, 2022
This script fully automates of downloading tiktok videos, editing them,compiling them and finally uploading them to youtube.

This script fully automates of downloading tiktok videos, editing them,compiling them and finally uploading them to youtube. If you wanted to create a tiktok video compiilation youtubbe channel this

Supriyo Sarkar 32 Dec 16, 2022