Syncing Canvas Files to Your Local Computer Using CanvasSync

Motivation

I’m going on a trip with little to no WiFi or cellular access in a few months. I’m currently attending Chicago Booth for my MBA and we use Canvas LMS for our classes. All of or course content is on Canvas, especially as we work remote.

CanvasSync

screenshot


CanvasSync helps students automatically synchronize modules, assignments & files located on their institutions Canvas web server to a mirrored folder on their local computer. It traverses the folder hierarchy in Canvas from the top course level down to individual files and creates a similar folder structure on the local computer.


Dependencies

You will need to have Python3 and Pipenv installed.

  1. Python3
    • We will leverage the Python scripting language - https://www.python.org/downloads/
  2. Pipenv
    • Pipenv is a tool to create a virtualenv for your python projects and helps to manage package dependencies.
  3. access_token
    • You will need to generate an access token for the tool to access your Canvas data. Create one by going to Profile -> Settings -> Approved Integrations -> New Access Token. Don’t share this token and store it in a safe place.

Installation

This is all on the command line. I’m on Mac OSX and using iTerm2. We will use CanvasSync which is a Python package created by Mathias Perslev that uses Canvas’s API to download all the files, assignments, assets to your computer.

  1. Create a folder to store the Python script, dependencies, and synced Canvas data mkdir Canvas_Sync
  2. Move into that directory cd Canvas_Sync
  3. Install the CanvasSync package and setup the virtual env pipenv install CanvasSync
  4. Run CanvasSync pipenv run canvas
  5. Enter 2 and enter to start the configuration wizard
  6. Enter the path to the folder you create.
    • Example “/Users/dsalzman/Booth Google Drive/Canvas_Sync”
  7. Enter your Canvas Domain
    • Example “canvas.uchicago.edu”
  8. Enter your user token
  9. Specify which courses to sync. You can just enter 0 to sync all courses.
  10. Enter 2 to use default settings.
  11. Enter a password that will encrypt these settings locally.
  12. Enter 1 to then sync your Canvas folders.
  13. Depending on how many courses and files this sync could take a while and use a lot of space. My few classes took about 10 minutes and 1GB of data.

How to refresh your Sync Folder

  1. Move into that directory cd Canvas_Sync
  2. Run CanvasSync pipenv run canvas
  3. Enter 1 to Sync your Canvas
  4. Enter your password you set above

screenshot

Limitations

If your professor uses Panopto for the video lectures these will not be downloaded. A link to the videos will be, but not the full files. For Booth it seems that there is no option to download those files.

Fin

· script, Booth, python