How To Get a Free Full Plural Sight Subscription / Download Courses automatically from PluralSight

1-Get a Free Full PluralSight Subscription 

-Navigate to “Visual studio Dev Essentials” from Google


-Click to Join Now and Sign in with your Microsoft Email



-Click on Get Code then Click on Activate

-Fill your info to continue like here


-Complete your Plural Sight Basic Info5.PNG





-Choose a course you are interested in


2-Download Courses Automatically from PluralSight

-Specify the target Course you want
Click on Start Course

-Click Pause when the first video is loaded8.PNG

-Right Click on the page and select Inspect Elements
or Ctrl+Shift+I
or F12

-Click on Console
-Navigate to this Code written by Mohamed Anwar


-Copy the First Part of the Code

-Put it on the Console and Press Enter

-You should see an output like that

-Go back to the code and copy the code till the end

-The Courses Videos would start Downloading Automatically


**Note to Adjust the Downloading Speed
-Copy the Second Part till the last line

-Paste it on the Console window

-Assign download Speed in
dlspeed = 150 ; //like ur speed is 150*8 Kbps
then write
dlVid();  // to call the download function

-And the Download would start Automatically







56 thoughts on “How To Get a Free Full Plural Sight Subscription / Download Courses automatically from PluralSight

      1. in chorome go to settings > advanced setting > download folder > and change the path ,
        about the file name , i tried to get it but still not working


      2. Thank you for your effort.

        I just wonder if Pluralsight’s gonna block us because we violate their terms of use? I mean we try to download multiple files in short time. Does it happen?


    1. you can do it manually , in the main page for the course you wanted , their are some tabs ,, Table of contents
      Exercise files
      Learning Check
      choose transcript and copy the whole text
      to a notepad ,, you can now use any open source program to make the subtitle file , but i think it is a hard work -i didn’t tried it-
      so more easily you can put the text file under the video keep moving the cursor while playing video
      but unfortunately this transcript is not come with all the courses


  1. Please correct the download speed specification. You have denoted as 150 => 150Kb. I am assuming you meant 150KB/s (1.2Mbps). Please denote it as 150KB/s (B = bytes, b = bits are the usual notations used worldwide)


  2. this is so helpful , how can one make use of “, courseTitle+”.json”);” the titles json to rename all the videos istead of numbers ?


  3. This is the error I get when I try this on both Google and IE: Object doesn’t support property or method ‘onfullscreen’. What is happening.


  4. After writing the first part of your script it displays the link to the jQuery file

    When I paste second code it displays

    VM1980:1 Uncaught ReferenceError: jQuery is not defined(…)

    Am I missing something?


      1. I am getting the same issue. After executing the first part of the script I get the Jquery file link.

        On executing the second part the following error pops up:-

        VM149:7 Uncaught ReferenceError: jQuery is not defined
        at :7:1


      2. I think this issue because your browser need more time to load the jquery reference file , Try to let the browser the enough amount of time then past the next block of code


      3. I think this issue because your browser need more time to load the jquery reference file , Try to let the browser the enough amount of time then past the next block of code


    1. //Firstly

      var jq = document.createElement(‘script’);
      jq.src = “”;

      //wait a min then Secondly


      var counter = 1;
      var courseTitle = jQuery(“h1”).first().text().trim().replace(/[^a-zA-Z0-9]/g, “_”)
      var lastVideoName = jQuery(“li”).last().find(“h3”).text().trim();
      var lastVideoDuration = jQuery(“li”).last().find(“div.duration”).text().trim();
      var lastModule = jQuery(“h2”).last().text().trim();
      var lastVidToDl = false;
      var nextVid = “”;
      var nextTitle = “”;
      var nextDuration = “”;
      var nextModule = “”;
      var dlSpeed = 150;
      var minuteSizeInMB = 3;
      var titlesArray = [];

      (function(console){ = function(data, filename){

      if(!data) {
      console.error(‘ No data’)

      if(!filename) filename = ‘console.json’

      if(typeof data === “object”){
      data = JSON.stringify(data, undefined, 4)

      var blob = new Blob([data], {type: ‘text/json’}),
      e = document.createEvent(‘MouseEvents’),
      a = document.createElement(‘a’) = filename
      a.href = window.URL.createObjectURL(blob)
      a.dataset.downloadurl = [‘text/json’,, a.href].join(‘:’)
      e.initMouseEvent(‘click’, true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null)

      function dlVid()
      var a = document.createElement(‘a’);
      a.href = jQuery(“video”).attr(“src”);
      var currTitle = jQuery(“ul.clips > li.selected”).find(“h3”).text().trim();
      var currMod = jQuery(“”).find(“h2″).text().trim(); = currTitle;

      console.log(counter + ” – ” + currMod + ” – ” + currTitle);
      titlesArray.push(counter + ” – ” + currMod + ” – ” + currTitle);
      counter = counter + 1;

      var minutes = parseInt(jQuery(“”).text().trim().split(“:”)[0]) + 1;
      var size = minutes * minuteSizeInMB * 1024 * 1024;
      var timeNeeded = Math.ceil((size/(dlSpeed*1024)) * 1000);

      console.log(“Rounded duration: “, minutes, ” minutes”,
      “\nEstimated size: “, size, ” bytes”,
      “\nEstimated time needed: “, timeNeeded, ” msec”);;


      setTimeout(function(){jQuery(“#play-control”).click();}, 10000);

      setTimeout(dlVid, timeNeeded);
      nextVid = jQuery(“ul.clips > li.selected”).next();
      nextTitle = nextVid.find(“h3”).text().trim();
      nextDuration = nextVid.find(“div.duration”).text().trim();
      nextModule = nextVid.parent().parent().find(“h2″).text().trim();

      if(nextTitle == lastVideoName &&
      nextDuration == lastVideoDuration &&
      nextModule == lastModule)
      lastVidToDl = true;
      {, courseTitle+”.json”);




  5. After pasting the rest code I’m getting below error ,
    could you please check

    VM1228:1 Uncaught ReferenceError: jQuery is not defined(…)


  6. This always used to work like a charm, but since a couple of days it’s not working anymore.

    When I execute the dlvid() it tries to download three files. One file is called json and contains the following text:

    “1 – – “,
    “2 – – ”

    The other two fail with a “Failed – No file” error.

    In the console it’s displaying this:

    Rounded duration: NaN minutes
    Estimated size: NaN bytes
    Estimated time needed: NaN msec

    After that, nothing happens. No error messages in the console. Any idea?


  7. Its not working. It seems that it first scans all the videos in the course and generates a json file. But it is not able to download the videos after that and console shows errors like variable n or t is undefined.
    I tried on Firefox and Safari. Its not working in Chrome. jQuery is not imported in Chrome. Can you help with that please.


    1. Try this little hack step by step ,
      1.paste the first part of the code and hit enter
      2.Reload the site
      3.paste the same part of the code that you paste before in step1
      4.paste the rest of the code and it should now work
      if it does/doesnt work with please let me know 🙂


  8. I use Allavsoft to download trainings videos from pluralsight.

    According to my experience, it also helps to batch download video from Lynda, Udemy, digitaltutors, etc

    I like its tech support and directly and batch download to any video and audio format.

    It has both Mac and Windows version.

    Hope it also helps for you.


  9. Hi,

    This works good. But problem is, the code is looping repeatedly to download the same file again and again. Even if I’m cancelling the duplicate file, it again starts with new download of the same file. I din’t changed anything in code and just doing the copy paste. Working in Chrome only. Could you pls suggest ?


  10. Hi!
    it worked fine for the first time. But for second time(another course), conskle is throwing warning message stating “undefined” after execution. please help


  11. the scripts works fine with me . but how to save videos with its name/title rather that numbers?
    i provided download attribute to ‘a’ tag,but didn’t work for me.
    Please suggest me the solution.


    1. I think this issue because your browser need more time to load the jquery reference file , Try to let the browser the enough amount of time then past the next block of code


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s