How to Download Udacity Nanodegree Content
Using Udacimak to download almost all the content of your Nanodegree Program
The step-by-step tutorial is based on Udacimak - A Udacity Nanodegree Downloader. It allows you to download all the video and text-related content from the courses that you are enrolled in. It is a CLI
-based method. I will use ubuntu-18.04 LTS for demonstration.
Note: Udacimak was inspired after Udacity announced in October 2018 that students who graduate will no longer have life-time access to the course content.
Pre-requisites:
-
Install
node
(from maybe from this link) -
Install
git
-
Install
npm
As per the source repo, these are enough to get started but believe me, its not so simple. That’s why I wrote this.
Step 1: Install latest version of node
Open a terminal and execute
$ sudo apt update
$ sudo apt install build-essential checkinstall libssl-dev
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.35.1/install.sh | bash
Then close the terminal and reopen it.
Now, re-install nvm as
$ nvm --version
$ nvm ls
$ nvm ls-remote
The execution of last command looks somewhat like this. Note that I have installed the latest version.
Now run
$ nvm install 14.7.0
Step 2: Authenticate your Udacity login
There are 3 methods to do so, as mentioned here. I prefer the following method.
- Visit classroom.udacity.com and log in
- Open the Developer Tools (press
Cmd + Opt + J
on MacOS orF12
on Windows orCtrl + Shift + C
on ubuntu) - Go to Application tab, then Storage > Cookies >
https://classroom.udacity.com
. - Find
_jwt
key, its Value is the Udacity authentication token.
As demonstrated here:
Now run
$ udacimak settoken YOUR_LONG_TOKEN_FROM_JWT_KEY
Step 3: Download the contents as json
To get the index of your course, enter the dashboard of your Nanodegree Program
And the index can be found in the URL : https://classroom.udacity.com/nanodegrees/nd131/dashboard/overview
nd131 is the answer in my case.
Now run
$ udacimak download YOUR_INDEX #nd131 FOR ME
You will find a not-so-big file with the name of your course. You must rename it to a better name as it contains whitespaces which often cause trouble. I renamed it to course
Step 4: Install “youtube-dl”
This is perhaps the most prone issue that udacimak users get into. Install it using
$ sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl
$ sudo chmod a+rx /usr/local/bin/youtube-dl
$ sudo ln -s /usr/bin/python3 /usr/local/bin/python
Step 5: Render the json files
Its time to get the actual content from YouTube and other sources.
-
Create a new directory (say
render
) where you wish to save the final course content. -
Now run
$ udacimak render course --targetdir render
You should see the files (mainly youtube videos and gifs) getting downloaded smoothly. If you notice errors, its probably because you didn’t install youtube-dl
.
That’s it ! Happy Learning :D