# 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.