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
Download candlestick data fast & easy for analysis

crypto-candlesticks ๐Ÿ“ˆ The goal behind this project is to facilitate downloading cryptocurrency candlestick data fast & simple. Currently only the Bit

Pedro Torres 31 Dec 11, 2022
Python based YouTube video Downloader GUI Application.

Youtube video Downloader Python based Youtube video Downloader GUI Application. Installation Python Dependencies Import pytube pip install pytube Im

Naem Azam 1 Jan 03, 2022
TikTok downloader video without watermark from Telegram bot

โฌ‡๏ธ How to download video from Tik Tok via telegram bot? Send a link to the video from tik tok to our telegram bot and it will send you a video without

1 Mar 04, 2022
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
A discord bot for downloading youtube video and audio files

disctube disctube is a discord bot for downloading video and audio files from youtube using python pytube. disclaimer i am not the best python program

razor420 3 Feb 03, 2022
Web Downloader With Python

Web Downloader Introduction This module will provide API to download the webpage components : html file, image file, css fil, javascript file, href li

3 Dec 28, 2022
YoutubeDownloader - Repo for downloading YT audio and videos

YoutubeDownloader Downloads video/playlist/audio from youtube url. install all t

Anuj SP 2 Feb 17, 2022
Python script to automate youtube-dl downloads

Automated Download Tool !! Project status I am writing a new version of this program, which will solve several errors. The new version only supports G

Devil64-Dev 21 Sep 22, 2022
Download Apple Music Cover Artwork in the best Quality by providing an Apple Music Link. It downloads the jpg, png and webp version since they often differ from another.

amogus.py - Version 0.0.5 amogus - Apple Music Hi-Res Artwork Fetcher this is my first real python tool so sorry if its bad amogus is a Python script

reaper 46 Jan 09, 2023
A youtube downloader, built with flask yt-dlp

Built With Python Flask - The Python micro framework for building web applications. yt-dlp - A youtube-dl fork with additional features and fixes

Abhijith N T 13 Dec 17, 2022
A fast and small Torrent client made with Python 3.

pico-torrent A fast and small Torrent client made with Python 3. History and context It was programmed by a hacker known as Jazz_Man, around January o

Pindorama 9 Oct 04, 2022
An automatic beatmapset downloader via txt file, suitable for tourney mappools.

Pooler Pooler is a bulk osu! mapset downloader, perfect for use with osu! Tournament Mappools. Prerequisites Python 3.10 Requests (pip install request

Thomas 0 Feb 11, 2022
๐ด ๐‘ก๐‘’๐‘™๐‘’๐‘”๐‘Ÿ๐‘Ž๐‘š ๐‘๐‘œ๐‘ก ๐‘กโ„Ž๐‘Ž๐‘ก ๐‘๐‘Ž๐‘› ๐‘‘๐‘œ๐‘ค๐‘›๐‘™๐‘œ๐‘Ž๐‘‘ ๐‘ฃ๐‘–๐‘‘๐‘’๐‘œ ๐‘Ž๐‘›๐‘‘ ๐‘Ž๐‘ข๐‘‘๐‘–๐‘œ ๐‘“๐‘Ÿ๐‘œ๐‘š ๐‘ฆ๐‘œ๐‘ข๐‘ก๐‘ข๐‘๐‘’ ๐‘Ž๐‘›๐‘‘ ๐‘ฃ๐‘–๐‘‘๐‘’๐‘œ ๐‘ค๐‘’๐‘๐‘ ๐‘–๐‘ก๐‘’๐‘  ๐‘ž๐‘ข๐‘–๐‘๐‘˜๐‘™๐‘ฆ

๐ด ๐‘ก๐‘’๐‘™๐‘’๐‘”๐‘Ÿ๐‘Ž๐‘š ๐‘๐‘œ๐‘ก ๐‘กโ„Ž๐‘Ž๐‘ก ๐‘๐‘Ž๐‘› ๐‘‘๐‘œ๐‘ค๐‘›๐‘™๐‘œ๐‘Ž๐‘‘ ๐‘ฃ๐‘–๐‘‘๐‘’๐‘œ ๐‘Ž๐‘›๐‘‘ ๐‘Ž๐‘ข๐‘‘๐‘–๐‘œ ๐‘“๐‘Ÿ๐‘œ๐‘š ๐‘ฆ๐‘œ๐‘ข๐‘ก๐‘ข๐‘๐‘’ ๐‘Ž๐‘›๐‘‘ ๐‘ฃ๐‘–๐‘‘๐‘’๐‘œ ๐‘ค๐‘’๐‘๐‘ ๐‘–๐‘ก๐‘’๐‘  ๐‘ž๐‘ข๐‘–๐‘๐‘˜๐‘™๐‘ฆ

SOCIAL MECHANIC 2 Aug 04, 2022
A tool to download program information from Bugcrowd, for use by researchers to compare programs they are eligible to participate in

Description bcstats is a tool which allows Bugcrowd researchers to download information about all accessible programs (public and private) into a sing

19 Oct 13, 2022
A very fast file streaming bot used for streaming and downloading movies

FileStreamBot GIVE A STAR AND FORK ELSE NO MORE OPENSOURCE A Telegram bot to turn all media and documents files to web link . Report a Bug | Request F

Code X Mania a.k.a Adarsh Goel 190 Jan 04, 2023
mescrappy - Python + Selenium Youtube scraper

mescrappy - Python + Selenium Youtube scraper Youtube Sraping With Python (Selenium) Table of Contents About The Project Built With Getting Started In

Merdan Chariyarov 12 Nov 28, 2021
VD Song Bot - A telegram bot that can download songs

VD Song Bot A telegram bot that can download songs Reach me on Telegram @MusicVNDbot Deploy to Heroku The easiest way to deploy this Song Bot Mandator

Venuja Thilakarathna 2 Feb 19, 2022
Parallels Desktop dmg downloader

parallelsdesktop-dl Parallels Desktop dmg file downloader Usage usage: pd-dl [-h] [--dlv [DLV]] [-v] Parallels Desktop downloader optional arguments

2 Sep 13, 2022
Python Program that downloads gaming required packages based on your Linux Distribution.

LibreGaming Python Program that downloads gaming required packages based on your Linux Distribution. Table of contents Distributions Prerequisites Dep

Ahmed Al Balochi 195 Jan 01, 2023
A python scripts that downloads doujin from nhentai without having an account

nhentai-downloader a python scripts that downloads doujin from https://nhentai.net without having an account. Usage Needs Python 3^ Linux pip3 install

Earl Sabalo 4 Jun 13, 2022