Skip to content

Latest commit

 

History

History
159 lines (109 loc) · 6.02 KB

README.md

File metadata and controls

159 lines (109 loc) · 6.02 KB

GitHub release GitHub stars GitHub forks GitHub issues GitHub license

acloud-dl

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

Capture.png

Note

  • You should run this with python3 (latest preferred), In future updates i will completely remove python2 support.

Features

  • Resume capability for a course video.
  • Download subtitle for a lecture.
  • Download all courses without any prompt (option: -a / --all).
  • List down course contents and video resolution, suggest the best resolution (option: -i / --info).
  • Download lecture(s) requested resolution (option: -q / --quality).
  • Download course to user requested path (option: -o / --output).
  • Authentication using cookies (option: -c / --cookies).
  • Download only courses that haven't been downloaded (option: -n / --new).
  • Rename course lecture video/audio files extensions to defined by user (option: -e / --extension).

Extracting Cookies

  • Login to your acloud.guru account via browser.
  • Once you are logged in right click on page the search for option called Inspect Element and click on that.
  • Under that look for Network Tab and click on that. Under that Network Tab click on Requests type XHR .
  • Now click on Browse Courses in the acloud.guru navbar and refresh the page you will see some requests under Network Tab.
  • Right click on any of the Requests which links to acloud.guru. Simply copy Request Headers and save to text file.
  • Done run the acloud-dl against that text file it will start downloading the course.

Requirements

  • Python 3 (3.9 tested, 3.11 broken)
  • Python pip
  • Python module requests
  • Python module colorama
  • Python module unidecode
  • Python module six
  • Python module requests[security] or pyOpenSSL

Module Installation

pip install -r requirements.txt

Tested on

  • Windows 7/8/8.1/10
  • Kali linux (2017.2)
  • Ubuntu-LTS (64-bit) (tested with super user)
  • Mac OSX 10.9.5 (tested with super user)

Download acloud-dl

You can download the latest version of acloud-dl by cloning the GitHub repository.

git clone https://github.com/r0oth3x49/acloud-dl.git

Usage

Steps before running acloud-dl.py which will list down courses you started

  • Login to your acloud.guru account via browser.
  • Click on Browse Courses.
  • Move mouse to the course you want to download.
  • On mouseover you will see a button "GET" click on that.
  • It Will redirect to the course there is another button "START THIS COURSE" click on that.
  • Done, Now you can use the below usage.

Download a course

python acloud-dl.py -c file_containing_cookie.txt

Download all courses

python acloud-dl.py -c file_containing_cookie.txt -a

Download courses by custom range

python acloud-dl.py -c file_containing_cookie.txt
[1] : Advanced AWS CloudFormation
[2] : AWS Certified Security - Specialty 2020
[3] : AWS ECS - Scaling Docker
[4] : AWS Certified Advanced Networking - Specialty 2020
[5] : LPIC-1_ System Administrator
[6] : Mastering AWS CloudFormation
[?] : provide range (e.g:- 1-3,6) or select course number between (1/6/all/range): 2,4-6

Download course with specific resolution

python acloud-dl.py -c file_containing_cookie.txt -q 720

Download course to a specific location

python acloud-dl.py -c file_containing_cookie.txt -o "/path/to/directory/"

Download course with specific resolution to a specific location

python acloud-dl.py -c file_containing_cookie.txt -q 720 -o "/path/to/directory/"

List down course information

python acloud-dl.py -c file_containing_cookie.txt --info

Advanced Usage


Author: Nasir khan (r0ot h3x49)

usage: acloud-dl.py [-h] [-v] [-c] [-o] [-q] [-i] [-a] [-n] [-e]

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

General:
  -h, --help       Shows the help.
  -v, --version    Shows the version.

Authentication:
  -c , --cookies   Cookies to authenticate with.

Advance:
  -o , --output    Download to specific directory.
  -q , --quality   Download specific video quality.
  -i, --info       List all lectures with available resolution.
  -a, --all        Download all courses without any prompt (default: false).
  -n, --new        Download only courses that have not already been downloaded (default: false).
  -e, --extension  Rename course lecture video/audio files extension to defined by user. 

Example:
  python acloud-dl.py -c cookies.txt

Docker

The app can be executed within a container to avoid dependency issues. Clone the repository then execute following commands from the root location of the project.

Build Image

docker build -t acloud-dl .

Run Container

Assuming cookie file called cookie.txt and stored in root of project:

docker run -v ${PWD}:/opt/app \
  -u $(id -u ${USER}):$(id -g ${USER}) \
  -it --rm \
  acloud-dl -c cookie.txt

extra options or arguments can be appended as normal.

Please note, if you're using the --output option to specify a specific output directory then ensure that the container has access to these volumes (use additional docker bind-mounts as needed)