{ "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"
}
]
}