Instantly share code, notes, and snippets.

Embed
What would you like to do?
youtube-dl for downloading pluralsight videos

Downloading Videos from Pluralsight

Disclaimer

Pluralsight do not permit users to download their videos.
If you are an user of pluralsight you have agreed with their ToS,
and are thusly refrained from doing so.
Use this knowledge at your own risk.

youtube-dl for Windows

youtube-dl will allow you to download entire video series just by pasting in the link to the course. This includes english subtitles where applicable.

1. Download youtube-dl

You can get it here from their official web-site.

2. Create a bat script file

We need to create bat script that will store all the information we need to quickly and easily download videos from pluralsight. Create a new file and name it 'pluralsight.bat'. Put it in the same folder as youtube-dl.exe (from step 1).

3. Paste in the script in the file

for %%a in (%*) do (
.\youtube-dl.exe ^
--username YOUR-USERNAME-HERE ^
--password YOUR-PASSWORD-HERE ^
%%a ^
-o "C:/Users/YOUR-USERNAME-HERE/Videos/Pluralsight/%%(playlist)s/%%(chapter_number)02d - %%(chapter)s/%%(playlist_index)02d - %%(title)s.%%(ext)s" ^ --sleep-interval 35 ^
--max-sleep-interval 120 ^
--sub-lang en ^
--sub-format srt ^
--write-sub
)

  1. Remember to add your own username, password and the path to where you want the videos to be stored. Replace YOUR-USERNAME-HERE, YOUR-PASSWORD-HERE and YOUR-NAME-HERE.
  2. If you wish to change the formatting of the output video files, you can learn more about it here.

4. Begin downloading videos

In order to run the scripts, you need to open up a command prompt or Windows PowerShell. Navigate to the folder you have the script and youtube-dl.exe. Hold left-shift and right mouse click in the folder, and select 'Open PowerShell Window here' or the 'Command Prompt' equivalent.

All you have to do now in order to download pluralsight videos, is to run:

.\pluralsight.bat [URL-HERE]

You can also add multiple URLs, separated by a space:

.\pluralsight.bat [URL1] [URL2] [URL3]

If you open up a text editor (for copy/paste), you can also prepare all your URL in a similar fashion:

pluralsight-dl ^
[URL1] ^
[URL2] ^
[URL3]

URL is usually formatted similar to https://app.pluralsight.com/library/courses/some-course-name


youtube-dl for Linux

youtube-dl will allow you to download entire video series just by pasting in the link to the course. This includes english subtitles where applicable.

1. Download youtube-dl

You can get it here from their official web-site.

2. Create the bash script file

We are going to create bash script that will store all the information we need to quickly and easily download videos from pluralsight. Make sure you save it inside /bin, as it will allow us to run the 'pluralsight-dl' command from anywhere.

sudo touch /usr/local/bin/pluralsight-dl
sudo chmod a+rx /usr/local/bin/pluralsight-dl
sudo nano /usr/local/bin/pluralsight-dl

3. Paste in the script

#!/bin/bash
for i in "$@";
do

youtube-dl
--username YOUR-USERNAME-HERE \
--password YOUR-PASSWORD-HERE \
"$i" \
-o "/home/YOUR-USERNAME-HERE/Videos/%(playlist)s/%(chapter_number)02d - %(chapter)s/%(playlist_index)02d - %(title)s.%(ext)s" \
--sleep-interval 35 \
--max-sleep-interval 120 \
--sub-lang en \
--sub-format srt \
--write-sub

done

  1. Remember to add your own username, password and the path to where you want the videos to be stored. Replace YOUR-USERNAME-HERE, YOUR-PASSWORD-HERE and YOUR-NAME-HERE.
  2. If you wish to change the formatting of the output video files, you can learn more about it here.

3. Begin downloading videos

All you have to do now in order to download pluralsight videos, is to run:

pluralsight-dl [URL-HERE]

You can also add multiple URLs, separated by a space:

pluralsight-dl [URL1] [URL2] [URL3]

If you open up a text editor (for copy/paste), you can also prepare all your URL in a similar fashion:

pluralsight-dl \
[URL1] \
[URL2] \
[URL3]

URL is usually formatted similar to https://app.pluralsight.com/library/courses/some-course-name

@dangxunb

This comment has been minimized.

Show comment
Hide comment
@dangxunb

dangxunb Apr 11, 2017

Thank you very much, it worked!
My internet connection speed is the reason, if you want to know!

dangxunb commented Apr 11, 2017

Thank you very much, it worked!
My internet connection speed is the reason, if you want to know!

@rahul2333

This comment has been minimized.

Show comment
Hide comment
@rahul2333

rahul2333 Dec 29, 2017

Hi ivanskodje

I have tried your trick and its giving me an error:

[pluralsight] ssis-adv-m1-0: Downloading course JSON
[pluralsight] ssis-adv-m1-0: Downloading mp4-high viewclip JSON
WARNING: Unable to download JSON metadata: HTTP Error 403: Forbidden
[pluralsight] ssis-adv-m1-0: Waiting for 3 seconds to avoid throttling
ERROR: No video formats found; please report this issue on https://yt-dl.org/bug
. Make sure you are using the latest version; type youtube-dl -U to update. B
e sure to call youtube-dl with the --verbose flag and include its complete outpu
t.

Can you pls fix this issue

rahul2333 commented Dec 29, 2017

Hi ivanskodje

I have tried your trick and its giving me an error:

[pluralsight] ssis-adv-m1-0: Downloading course JSON
[pluralsight] ssis-adv-m1-0: Downloading mp4-high viewclip JSON
WARNING: Unable to download JSON metadata: HTTP Error 403: Forbidden
[pluralsight] ssis-adv-m1-0: Waiting for 3 seconds to avoid throttling
ERROR: No video formats found; please report this issue on https://yt-dl.org/bug
. Make sure you are using the latest version; type youtube-dl -U to update. B
e sure to call youtube-dl with the --verbose flag and include its complete outpu
t.

Can you pls fix this issue

@scor55

This comment has been minimized.

Show comment
Hide comment
@scor55

scor55 Feb 26, 2018

@rahul2333 try to add your browser user agent into the .bat file

scor55 commented Feb 26, 2018

@rahul2333 try to add your browser user agent into the .bat file

@Invisible786

This comment has been minimized.

Show comment
Hide comment
@Invisible786

Invisible786 Jun 28, 2018

It's showing error

D:\PluralSightDownloader>for %a in (https://www.pluralsight.com/courses/723a9c4f-79d2-467e-9b1f-71654ccaa3a2) do (.\youtube-dl.exe --username MyEmail@gmail.com--password MyPassword%a -o "D:/PluralSightDownloader/%(playlist)s/%(chapter_number)02d - %(chapter)s/%(playlist_index)02d - %(title)s.%(ext)s"  --sleep-interval 35 --max-sleep-interval 120 --sub-lang en --sub-format srt --write-sub )

D:\PluralSightDownloader>(.\youtube-dl.exe --username MyEmail@gmail.com--password MyPasswordhttps://www.pluralsight.com/courses/723a9c4f-79d2-467e-9b1f-71654ccaa3a2 -o "D:/PluralSightDownloader/%(playlist)s/%(chapter_number)02d - %(chapter)s/%(playlist_index)02d - %(title)s.%(ext)s"  --sleep-interval 35 --max-sleep-interval 120 --sub-lang en --sub-format srt --write-sub )

Here MyEmail@gmail.com and MyPassword is the email id and password of my account at pluralsight
Help Me with this

Invisible786 commented Jun 28, 2018

It's showing error

D:\PluralSightDownloader>for %a in (https://www.pluralsight.com/courses/723a9c4f-79d2-467e-9b1f-71654ccaa3a2) do (.\youtube-dl.exe --username MyEmail@gmail.com--password MyPassword%a -o "D:/PluralSightDownloader/%(playlist)s/%(chapter_number)02d - %(chapter)s/%(playlist_index)02d - %(title)s.%(ext)s"  --sleep-interval 35 --max-sleep-interval 120 --sub-lang en --sub-format srt --write-sub )

D:\PluralSightDownloader>(.\youtube-dl.exe --username MyEmail@gmail.com--password MyPasswordhttps://www.pluralsight.com/courses/723a9c4f-79d2-467e-9b1f-71654ccaa3a2 -o "D:/PluralSightDownloader/%(playlist)s/%(chapter_number)02d - %(chapter)s/%(playlist_index)02d - %(title)s.%(ext)s"  --sleep-interval 35 --max-sleep-interval 120 --sub-lang en --sub-format srt --write-sub )

Here MyEmail@gmail.com and MyPassword is the email id and password of my account at pluralsight
Help Me with this

@Invisible786

This comment has been minimized.

Show comment
Hide comment
@Invisible786

Invisible786 Jul 1, 2018

Its showing this, Please help me with this

WARNING: The url doesn't specify the protocol, trying with http
Traceback (most recent call last):
  File "__main__.py", line 19, in <module>
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpkc931nsv\build\youtube_dl\__init__.py", line 472, in main
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpkc931nsv\build\youtube_dl\__init__.py", line 462, in _real_main
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpkc931nsv\build\youtube_dl\YoutubeDL.py", line 2001, in download
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpkc931nsv\build\youtube_dl\YoutubeDL.py", line 803, in extract_info
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpkc931nsv\build\youtube_dl\YoutubeDL.py", line 864, in process_ie_result
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpkc931nsv\build\youtube_dl\YoutubeDL.py", line 792, in extract_info
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpkc931nsv\build\youtube_dl\extractor\common.py", line 501, in extract
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpkc931nsv\build\youtube_dl\extractor\generic.py", line 2174, in _real_extract
  File "C:\Python\Python34\lib\urllib\parse.py", line 293, in urlparse
  File "C:\Python\Python34\lib\urllib\parse.py", line 343, in urlsplit
ValueError: Invalid IPv6 URL

Invisible786 commented Jul 1, 2018

Its showing this, Please help me with this

WARNING: The url doesn't specify the protocol, trying with http
Traceback (most recent call last):
  File "__main__.py", line 19, in <module>
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpkc931nsv\build\youtube_dl\__init__.py", line 472, in main
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpkc931nsv\build\youtube_dl\__init__.py", line 462, in _real_main
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpkc931nsv\build\youtube_dl\YoutubeDL.py", line 2001, in download
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpkc931nsv\build\youtube_dl\YoutubeDL.py", line 803, in extract_info
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpkc931nsv\build\youtube_dl\YoutubeDL.py", line 864, in process_ie_result
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpkc931nsv\build\youtube_dl\YoutubeDL.py", line 792, in extract_info
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpkc931nsv\build\youtube_dl\extractor\common.py", line 501, in extract
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\rg3\tmpkc931nsv\build\youtube_dl\extractor\generic.py", line 2174, in _real_extract
  File "C:\Python\Python34\lib\urllib\parse.py", line 293, in urlparse
  File "C:\Python\Python34\lib\urllib\parse.py", line 343, in urlsplit
ValueError: Invalid IPv6 URL
@polesskiy-dev

This comment has been minimized.

Show comment
Hide comment
@polesskiy-dev

polesskiy-dev Jul 24, 2018

Don't forget to add "\" at the end of script lines. This works for me:

#!/bin/bash
for i in "$@";
do

youtube-dl \
--username name \
--password pass \
"$i" \
-o "/Users/apoliss/Downloads/courses/%(playlist)s/%(chapter_number)02d - %(chapter)s/%(playlist_index)02d - %(title)s.%(ext)s" \
--sleep-interval 35 \
--max-sleep-interval 120 \
--sub-lang en \
--sub-format srt \
--write-sub

done

bash pluralsight-dl

polesskiy-dev commented Jul 24, 2018

Don't forget to add "\" at the end of script lines. This works for me:

#!/bin/bash
for i in "$@";
do

youtube-dl \
--username name \
--password pass \
"$i" \
-o "/Users/apoliss/Downloads/courses/%(playlist)s/%(chapter_number)02d - %(chapter)s/%(playlist_index)02d - %(title)s.%(ext)s" \
--sleep-interval 35 \
--max-sleep-interval 120 \
--sub-lang en \
--sub-format srt \
--write-sub

done

bash pluralsight-dl

@ivanskodje

This comment has been minimized.

Show comment
Hide comment
@ivanskodje

ivanskodje Aug 19, 2018

Thank you @polesskiy-dev. Even though the '\' was present in the source code, it did not show up in preview. It has been fixed. 👍

Owner

ivanskodje commented Aug 19, 2018

Thank you @polesskiy-dev. Even though the '\' was present in the source code, it did not show up in preview. It has been fixed. 👍

@linuxbsdfreak

This comment has been minimized.

Show comment
Hide comment
@linuxbsdfreak

linuxbsdfreak Sep 20, 2018

Hi,

Get the following error

ERROR: Unable to download JSON metadata: <urlopen error [Errno 1] _ssl.c:504: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version> (caused by URLError(SSLError(1, '_ssl.c:504: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version'),))
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 604, in _request_webpage
return self._downloader.urlopen(url_or_request)
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 2211, in urlopen
return self._opener.open(req, timeout=self._socket_timeout)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 404, in open
response = self._open(req, data)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 422, in _open
'_open', req)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 382, in _call_chain
result = func(*args)
File "/usr/local/bin/youtube-dl/youtube_dl/utils.py", line 1139, in https_open
req, **kwargs)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 1184, in do_open
raise URLError(err)

Regards,
Kevin

linuxbsdfreak commented Sep 20, 2018

Hi,

Get the following error

ERROR: Unable to download JSON metadata: <urlopen error [Errno 1] _ssl.c:504: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version> (caused by URLError(SSLError(1, '_ssl.c:504: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version'),))
File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 604, in _request_webpage
return self._downloader.urlopen(url_or_request)
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 2211, in urlopen
return self._opener.open(req, timeout=self._socket_timeout)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 404, in open
response = self._open(req, data)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 422, in _open
'_open', req)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 382, in _call_chain
result = func(*args)
File "/usr/local/bin/youtube-dl/youtube_dl/utils.py", line 1139, in https_open
req, **kwargs)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 1184, in do_open
raise URLError(err)

Regards,
Kevin

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment