{ "info": { "author": "wq2", "author_email": "smilingwang2@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.7" ], "description": "\n# udemy-dl\n## Goals\n\n**A python script using asyncio to speedup downloading for Chinese udemy users who cannot watch video online because of China GFW**\n## Thanks\n This project is based on [udemy-dl][1] and adds asyncio support to it.\n## ***Features***\n- Asynchronously download course videos.\n- Resume capability for a course video.\n- Download specific chapter in a course (option: `-c / --chapter`).\n- Download specific lecture in a chapter (option: `-l / --lecture`).\n- Download chapter(s) by providing range in a course (option: `--chapter-start, --chapter-end`).\n- Download lecture(s) by providing range in a chapter (option: `--lecture-start, --lecture-end`).\n- Download course to user requested path (option: `-o / --output`).\n\n## ***Requirements***\n\n- Python\\>=3.7\n\n- requests\n\n- aiohttp\n\n## ***Download async-udemy-dl***\n\nYou can download the latest version of async-udemy-dl by cloning the GitHub repository.\n\n\tgit clone https://github.com/Firkraag/async-udemy-dl\n\n## ***Pip install***\n```\npip install async-udemy-dl\n```\nAfter installation, pip will install a script named `async-udemy-dl` in your executable path, so `async-udemy-dl` can replace `python async-udemy-dl.py ` in the Usage section.\n\n## ***Usage***\nThis project uses cookies to authenticate with, so you must specify cookie file on commandline with option `-k cookies_file`. \nPlease follow [Extracting Cookies / Request Headers][2] to save udemy cookies to files before using this script.\n\n***Download a course***\n\n\tpython async-udemy-dl.py -k COOKIES_FILE COURSE_URL\n\n***Download course to a specific location***\n\n\tpython async-udemy-dl.py -k COOKIES_FILE COURSE_URL -o \"/path/to/directory/\"\n\n***Download specific chapter from a course***\n\n\tpython async-udemy-dl.py -k COOKIES_FILE COURSE_URL -c NUMBER\n\n***Download specific lecture from a chapter***\n\n\tpython async-udemy-dl.py -k COOKIES_FILE COURSE_URL -c NUMBER -l NUMBER\n\n***Download lecture(s) range from a specific chapter***\n\n\tpython async-udemy-dl.py COURSE_URL -k COOKIES_FILE -c NUMBER --lecture-start NUMBER --lecture-end NUMBER\n\n***Download chapter(s) range from a course***\n\n\tpython async-udemy-dl.py COURSE_URL -k COOKIES_FILE --chapter-start NUMBER --chapter-end NUMBER\n\n***Download specific lecture from chapter(s) range***\n\n\tpython async-udemy-dl.py COURSE_URL -k COOKIES_FILE --chapter-start NUMBER --chapter-end NUMBER --lecture NUMBER\n\n***Download lecture(s) range from chapter(s) range***\n\n\tpython async-udemy-dl.py COURSE_URL -k COOKIES_FILE --chapter-start NUMBER --chapter-end NUMBER --lecture-start NUMBER --lecture-end NUMBER\n\n## ***Extracting Cookies / Request Headers***\n\n - Login to your udemy account via browser.\n - Once you are logged in right click on page the search for option called **Inspect Element** and click on that.\n - Under that look for **Network Tab** and click on that. Under that **Network Tab** click on Requests type **XHR** .\n - Now click on **My Courses** in the Udemy navbar and refresh the page you will see some requests under **Network Tab**.\n - Right click on request links to **udemy.com/api-2.0/**. Simply copy **Request Headers** and save to text file.\n - The above guide is for ***Firefox*** users. ***Chrome*** Users can follow [guide by @lamlephamngoc][3].\n\n - Done run the async-udemy-dl against that text file it will start downloading the course.\n\n\n\n## **Advanced Usage**\n\n
\nAuthor: Firkraag (Firkraag)\n\nusage: async-udemy-dl.py [-h] [-v] -k cookie_file [-d] [-o] [-c] [-l]\n                   [--chapter-start] [--chapter-end] [--lecture-start]\n                   [--lecture-end] course\n\nA cross-platform python based utility to download courses from udemy for\npersonal offline use.\n\npositional arguments:\n  course            Udemy course.\n\nGeneral:\n  -h, --help        Shows the help.\n  -v, --version     Shows the version.\n\nAuthentication:\n  -k , --cookies cookies_file    Cookies to authenticate with.\n\nAdvance:\n  -d, --debug       output debug info to screen\n  -o , --output     Download to specific directory, if not specified, download to current directory.\n  -c , --chapter    Download specific chapter from course.\n  -l , --lecture    Download specific lecture from chapter(s).\n  --chapter-start   Download from specific position within course.\n  --chapter-end     Download till specific position within course.\n  --lecture-start   Download from specific position within chapter(s).\n  --lecture-end     Download till specific position within chapter(s).\n\nExample:\n  python async-udemy-dl.py  COURSE_URL -k cookies.txt\n
\n\n[1]:\thttps://github.com/r0oth3x49/udemy-dl\n[2]:\thttps://github.com/Firkraag/async-udemy-dl#extracting-cookies--request-headers\n[3]:\thttps://github.com/r0oth3x49/udemy-dl/issues/303#issuecomment-441345792\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Firkraag/async-udemy-dl", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "async-udemy-dl", "package_url": "https://pypi.org/project/async-udemy-dl/", "platform": "", "project_url": "https://pypi.org/project/async-udemy-dl/", "project_urls": { "Homepage": "https://github.com/Firkraag/async-udemy-dl" }, "release_url": "https://pypi.org/project/async-udemy-dl/0.1.1/", "requires_dist": [ "requests", "aiohttp" ], "requires_python": ">=3.7", "summary": "simple script to asynchronously download udemy course", "version": "0.1.1" }, "last_serial": 5539172, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "d39bd09a74ec4c51ad0174792eaee15b", "sha256": "595aa623f249b602bfb48f900cb99542b86b582c24a822737fd23a31ea3cb8f6" }, "downloads": -1, "filename": "async_udemy_dl-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d39bd09a74ec4c51ad0174792eaee15b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 9912, "upload_time": "2019-07-16T06:59:51", "url": "https://files.pythonhosted.org/packages/de/67/7d4f68d29a15d1a8efe210875d7369e67bf52dbb172b4ba2c7bc4d10d8b7/async_udemy_dl-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7cc463c2452fb1abd5a331814b980a4c", "sha256": "521179be1fbedc2f876f0933dea76bf0bf8dd247036d4d287ba3107aee58b92f" }, "downloads": -1, "filename": "async-udemy-dl-0.1.0.tar.gz", "has_sig": false, "md5_digest": "7cc463c2452fb1abd5a331814b980a4c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 8811, "upload_time": "2019-07-16T06:59:54", "url": "https://files.pythonhosted.org/packages/9d/26/0a3c2af4af0d3f17b9088437ff1faef6dbf9c52deed082de9e4f66e6055d/async-udemy-dl-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "816c90875d3bc6179bdae6069f60f854", "sha256": "81a17ed36cb11f337b1e1778789f0087fe0397a8ad73be8be1bbbbe651480254" }, "downloads": -1, "filename": "async_udemy_dl-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "816c90875d3bc6179bdae6069f60f854", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 10015, "upload_time": "2019-07-16T08:25:21", "url": "https://files.pythonhosted.org/packages/15/14/e77590a3e5a36db1d1dcf3f90b4ff3c31f9e402ead2285b09594fed99b35/async_udemy_dl-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c64e35fe9fc791787179ce03d179a284", "sha256": "19ba2d6110d87b6136dcafa67f367e4fb6a1835151bec3a091830af5531411a8" }, "downloads": -1, "filename": "async-udemy-dl-0.1.1.tar.gz", "has_sig": false, "md5_digest": "c64e35fe9fc791787179ce03d179a284", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 8979, "upload_time": "2019-07-16T08:25:23", "url": "https://files.pythonhosted.org/packages/a3/4a/3d46252981368f4a55993bf1b867b5955a324312d6edf8d59382043906a6/async-udemy-dl-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "816c90875d3bc6179bdae6069f60f854", "sha256": "81a17ed36cb11f337b1e1778789f0087fe0397a8ad73be8be1bbbbe651480254" }, "downloads": -1, "filename": "async_udemy_dl-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "816c90875d3bc6179bdae6069f60f854", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 10015, "upload_time": "2019-07-16T08:25:21", "url": "https://files.pythonhosted.org/packages/15/14/e77590a3e5a36db1d1dcf3f90b4ff3c31f9e402ead2285b09594fed99b35/async_udemy_dl-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c64e35fe9fc791787179ce03d179a284", "sha256": "19ba2d6110d87b6136dcafa67f367e4fb6a1835151bec3a091830af5531411a8" }, "downloads": -1, "filename": "async-udemy-dl-0.1.1.tar.gz", "has_sig": false, "md5_digest": "c64e35fe9fc791787179ce03d179a284", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 8979, "upload_time": "2019-07-16T08:25:23", "url": "https://files.pythonhosted.org/packages/a3/4a/3d46252981368f4a55993bf1b867b5955a324312d6edf8d59382043906a6/async-udemy-dl-0.1.1.tar.gz" } ] }