You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
3.3 KiB
Markdown
90 lines
3.3 KiB
Markdown
# Downloader for Linux Academy
|
|
|
|
This script will download courses from [Linux Academy](https://linuxacademy.com) for offline consumption.
|
|
|
|
## Important Notice
|
|
|
|
**Use of this script is for personal consumption of content only.** The content this script downloads is protected by copyright and must not be shared.
|
|
|
|
#### Good uses
|
|
|
|
* Downloading a lesson before embarking to a destination with little or no internet access.
|
|
* Keep lessons you've completed for a personal backup.
|
|
|
|
#### Bad uses
|
|
|
|
* Uploading the downloaded videos to a content sharing site.
|
|
* Sending copies of the videos to your friends and family.
|
|
* Hoarding lessons for future consumption beyond your subscription period.
|
|
|
|
Please exercise good judgement when using this script. The folks at Linux Academy work hard to make quality courses and you should support them by paying for a subscription if you can. You may also wish to speak with your employer to find out if they would be willing to pay for your subscription.
|
|
|
|
## Installation
|
|
|
|
Tested on a fresh install of CentOS 7.6 Your installation packet-names may vary depending on your OS.
|
|
|
|
```
|
|
$ sudo -i
|
|
|
|
# dnf install epel-release dnf-utils -y
|
|
# yum-config-manager --set-enabled PowerTools
|
|
# yum-config-manager --add-repo=https://negativo17.org/repos/epel-multimedia.repo
|
|
|
|
# yum install python3 python3-pip git unzip ffmpeg -y
|
|
# pip3 install selenium youtube-dl
|
|
# cd /opt && git clone https://code.michu-it.com/michael/selenium-linuxacademy-dl.git
|
|
# cd selenium-linuxacademy-dl && chmod +x linuxacademy-dl.py
|
|
```
|
|
|
|
### Browser
|
|
|
|
You will need Chrome or Firefox and its matching driver.
|
|
|
|
#### Chrome example for CentOS
|
|
|
|
Install [Google Chrome](https://www.google.com/chrome/) and download the appropriate [ChromeDriver](https://chromedriver.chromium.org/downloads) version. Make sure the `chromedriver` executable is in your PATH (e.g., `/usr/local/bin`).
|
|
|
|
```
|
|
# wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
|
|
# yum install ./google-chrome-stable_current_*.rpm
|
|
|
|
# wget https://chromedriver.storage.googleapis.com/78.0.3904.105/chromedriver_linux64.zip
|
|
# unzip chromedriver_linux64.zip
|
|
# cp chromedriver /usr/bin/
|
|
```
|
|
|
|
#### Firefox example for Debian
|
|
|
|
Install Mozilla Firefox and download [geckodriver](https://github.com/mozilla/geckodriver/releases).
|
|
|
|
```
|
|
# apt install firefox
|
|
|
|
# tar xzf geckodriver-*-linux64.tar.gz
|
|
# cp geckodriver /usr/bin/
|
|
```
|
|
|
|
|
|
## Usage
|
|
|
|
This will only work with an active Linux Academy subscription. If you do not have one, please get one [here](https://linuxacademy.com/pricing/).
|
|
|
|
```
|
|
Usage:
|
|
./linuxacademy-dl.py [-u|--username] [-p|--password] [-d|--download-dir] [-c|--cookies-file] COURSE_URL
|
|
|
|
Options may be replaced with environment variables. Command line options take precedence.
|
|
LADL_USERNAME, LADL_PASSWORD, LADL_DIR, LADL_COOKIES
|
|
|
|
Examples:
|
|
$ ./linuxacademy-dl.py -u person@exmple.com -p p@ssw0rd https://linuxacademy.com/cp/modules/view/id/346
|
|
|
|
$ export LADL_USERNAME=person@example.com
|
|
$ export LADL_PASSWORD=p@ssw0rd
|
|
$ export LADL_DIR=/opt/linux-academy-videos
|
|
$ ./linuxacademy-dl.py https://linuxacademy.com/cp/modules/view/id/346
|
|
```
|
|
|
|
|
|
The username/email and password fields are required. The cookie file will opt to `$PWD/cookies.txt` and the download directory will default to `$SCRIPT_DIR/download`, where `$SCRIPT_DIR` is the path of the `linuxacademy-dl.py` script.
|