Skip to content
Script to download all OnDemand SANS videos for a given course.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

SANS OnDemand Video Download

I wanted to keep the videos from my SANS training for future reference but didn't want to download each one manually. This script creates directories and sub-directories for the course, and downloads all videos for the given course in the 720p MP4 format offered.


Script requires following libraries for correct execution: requests, natsort

Execute following command to install all required libraries: pip install -r requirements.txt


  1. In Chrome press F12.

  2. Click the Network tab.

  3. Browse to your OnDemand course with your SANS login (to where you can watch videos).

  4. Observe the following uberRequest being made.

  5. Right click that request and open in a new tab.

  6. Right click the JSON content in the new tab and save in the same directory as this script.

  7. Run the python script passing the downloaded JSON as an argument.

    $ python -h
    usage: [-h] [-q {SD,HD}] [-n] [-p] [-pS] [-pC] [-pL] [-t]
    Download SANS OnDemand videos using this script.
    positional arguments:
      uberRequest.json  uberRequest.json file, see instructions in git repo.
    optional arguments:
      -h, --help        show this help message and exit
      -q {SD,HD}        Download quality selector; will default to HD (720p).
      -n, --notes       Download slide notes; will default to no.
      -p, --playlist    Create a videos playlist by lesson, section and course
      -pS               Create a videos playlist by section
      -pC               Create a videos playlist by course
      -pL               Create a videos playlist by lesson
      -t                Don't save video titles (use when encountering file path
                        too long).
    $ python uberRequest.json


Windows path lengths are limited to 260 characters. If you're encountering issues where some videos will download but others won't try the -t flag which will not save the video title.

You can’t perform that action at this time.