Skip to content

Releases: lendenmc/ifskills-dl

v0.4.3

02 Dec 09:28
Compare
Choose a tag to compare

This version includes a few bug fixes:

  • Fix JSON decoding error when there is a tab instead of a space
  • Remove trailing white spaces from local folder names that caused bugs
  • Fix zip file's local destination folder not being sanitized

v0.4

02 Dec 09:25
Compare
Choose a tag to compare

Ifskills-dl v0.4

This version includes the following improvements and internal refactoring that will make future revamps easier:

  • Isolate download and stream methods from course instance
  • Enable empty response check from the outside of ResponseParser as well
  • Make fixed attributes class attributes and enforce private variable convention

v0.1.4

07 Oct 18:09
Compare
Choose a tag to compare

This version includes the following bug fix:

  • Fix JSONDecodeError error when formating a lecture with properties that have unescaped double quotes around a word

v0.1.3

06 Oct 19:12
Compare
Choose a tag to compare

This version includes a few bug fixes and improvements:

  • Merge course download methods (for zip and video files) into one single download method
  • Handle bad input in (video) stream and stream_working_files methods
    • Additionally, remove incomplete download file silently (no need to print about behind-the-scene clean up)
  • Fix requests errors not being handled by dealing with them explicitly
    • The requests.exceptions base class RequestException can only be used with a "try/except" to catch all the specific requests lib exceptions. So the session context manager __exit__ function will refer to the specific exception and not the base class. In our case, as RequestException was erroneously thought as a "catch-all" for these with its place in the errors_without_traceback list, all requests.exception could not fail without traceback (and so huge verbosity).

v0.1

04 Oct 22:17
Compare
Choose a tag to compare

Ifskills-dl v0.1

https://learn.infiniteskills.com training videos downloader

This is the first released version of the ifskills-dl command-line program.
Given one or several course sku ids from your https://learn.infiniteskills.com registered account, it downloads all the video lectures associated with the corresponding courses, and stores them by section into a single course folder whose name is the course title.
This is a Python 3 program. It has been tested under Python 3.5.2 running on OS X El Capitan (10.11).

Usage

Once its dependencies are installed (see bellow), you run this version of the program with the command:

$ python ifskills-dl.py sku1 sku2 sku3

where sku1, sku2, ... represent the unique identifiers (let's say course ids) of each course you want to download. The course id is the value of the parameter skuof the url of a single course. For instance the course at https://learn.infiniteskills.com/product.html?sku=02196 has the id 02196. This id is also explicitly displayed on the single course page.

The program will ask for your https://learn.infiniteskills.com credentials, i.e. your username and password. As it would be quickly tedious to enter your credentials on every occasion, you can create or add them to a netrc file under the 'machine' name learn.infiniteskills.com. The program automatically looks for them.

Dependencies

Obviously, you need to hold a registered Infinite Skills account for this program to work.
From a programming standpoint, apart from Python 3, the following python third party libraries are required:

  • requests
  • beautifulsoup4

You can install these with:

$ pip install -r requirements.txt

Download method

This version of the program runs sequentially, which means that it downloads one course after another, and one video lecture after another within each course. Right from the start, It will also download and unzip the course working files whenever they exist. It creates the directory structure of a course before starting to download each individual video lecture file.
If you relaunch the program after an interruption, the program will skip the download of the videos files that have been already downloaded. So you can safely interrupt the course downloading process and start where you left off later on.

Directory structure of the downloaded files

For each course the program will create a main folder whose name is the title of the course, in your current directory. The course folder is then filled with subfolders created for each section of the course. Similarly, the section title provides the name of the section subfolder. Additionally, the unzipped folder of the course working files will be downloaded into the course directory. Finally each lecture video file will be downloaded into its corresponding section folder. As it turns out, each lecture corresponds to one video file, whose name is the lecture name.

Installation

You can download and unzip the latest 0.1 released version zip file from the program's Github repository. However the only file this program actually needs to run is ifskills-dl.py.

Cheers !