Skip to content
Automated download of Pluralsight courses
Python Shell
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
Courses handling licensing issues and failed downloads Feb 15, 2020
Image updated examples Feb 16, 2020
ScrapeUtils more scrape examples Feb 17, 2020
Scripts update scripts Feb 17, 2020
.gitattributes linguist ignore html Feb 15, 2020
.gitignore cli-pipe branch Feb 18, 2020
LICENSE adding license Jan 23, 2020 reference to ScrapeUtils and filtered results Feb 17, 2020
courselist.txt code cleanup Feb 16, 2020 code cleanup, better docstrings Feb 17, 2020

Update: 2020-02-15 - Starting to roll out beta releases.

Automated download from Pluralsight with

You can download whole courses from a number of tutorial sites with the CLI tool youtube-dl, however, in this Git I have provided an Python script,, for automated download of a sequence of Pluralsight courses (of your choice) at once using the youtube_dl Python 3 API. Below I give an example of how to use the script with a Pluralsight account to get videos from an arbitrary large list of courses at their site.

You can get a free one month trial activation code for Pluralsight by first register a Visual Studio Dev Essentials account for free.



Download from Pluralsight with

After installation of youtube_dl (thus is avaiable in the Python 3 environment) make sure that courselist.txt is in the same directory as with the course ID's of your choice listed row by row. Example files and scripts is provided in Scripts and ScrapeUtils together with some filtered results with course IDs. The course ID can be found via the course URL from the Pluralsight website, e.g where the ID is "c-sharp-fundamentals-with-visual-studio-2015".

Run in a terminal to download all the videos from all the courses in courselist.txt. The videos will be automatically placed in course specific directories and named by playlist order number. Substitute the example credentials with your own and supply courselist.txt with your desired courses ...

$ python
Enter you Pluralsight credentials
Enter username:
Enter password (will not be displayed)
: mypassword

... with courselist.txt available at the same path



Argument scripting

For even more automation, the script can be executed directly by passing Pluralsight username and password

python "" "mypassword"

with exactly two arguments, the first must be the username and the second the password.

Or using flags

python --pass "mypassword" --user ""

where the order doesn't matter.

Set subtitle

To supplement with english subtitles use the -s, --sub or --subtitle flag

$ python --subtitle
$ python "" "mypassword" --subtitle
$ python --user "" --pass "mypassword" --subtitle

Set video interval

If you only want a specific interval/range of videoclips from a specific course you can specify {the end number} or {the start and the end number} on the same row as the course id (they comes in the same order as they do on the website playlist with start number of 1)

eg. in courselist.txt

c-sharp-fundamentals-with-visual-studio-2015 25
csharp-best-practices-collections-generics 11 56

wich would give you the 25 first videoclips in the course c-sharp-fundamentals-with-visual-studio-2015 and the clips numbered 11 up to 56 in csharp-best-practices-collections-generics.

If you specify three of more numbers it will download those specific video indicies


c-sharp-fundamentals-with-visual-studio-2015 2 10 15
csharp-best-practices-collections-generics 5 3 10 11

wich would give you three videos, those that are numbered 2, 10 and 15, in the course c-sharp-fundamentals-with-visual-studio-2015 and the four specific videos with indicies 5, 3, 10 and 11 in csharp-best-practices-collections-generics.

Example output

Directory tree of root


The argument SLEEP_INTERVAL = 150 parameter used in the script is important. It means that the program will wait at least 150s (2.5 minutes) before it downloads the next video. If you don't use this flag Pluralsight will ban you because you are doing too many requests under a short period of time.

We have blocked your account because our security systems have flagged your Pluralsight account for an unusual amount activity. This does mean a high volume of requests that are in the realm of a request every 10-30 seconds for a prolonged period of time. Please note that this high volume of activity is in violation of our terms of service [].

You can’t perform that action at this time.