572660cce2 | ||
---|---|---|
docs | ||
.gitignore | ||
export.py |
docs/README.md
Introduction
The Canvas Student Data Export Tool can export nearly all of a student's data from Instructure Canvas Learning Management System (Canvas LMS). This is useful when you are graduating or leaving your college or university, and would like to have a backup of all the data you had in canvas.
The tool exports all of the following data:
- Course Assignments
- Course Announcements
- Course Discussions
- Course Pages
- Course Files
- Course Modules
The tool will export your data in JSON format, and will organize it nicely into folders named for every term of every year. Example:
- Fall 2013
- Econ 101
- files
- modules
- Econ 101.json
- English 101
- files
- modules
- English 101.json
- Econ 101
- Fall 2014
- Fall 2015
- Fall 2016
- Spring 2014
- Spring 2015
- Spring 2016
- Spring 2017
- Winter 2014
- Winter 2015
- Winter 2016
- Winter 2017
- all_output.json
Getting Started
Dependencies
To run the program, you will need the following dependencies:
pip install requests
pip install jsonpickle
pip install canvasapi
Then run from the command line:
python export.py
Configuration
These are the configuration parameters for the program:
- Canvas API URL - this is the URL of your institution, for example
https://example.instructure.com
- Canvas API key - this can be created by going to Canvas and navigating to
Account
>Settings
>Approved Integrations
>New Access Token
- Canvas User ID - this can be found at
https://example.instructure.com/api/v1/users/self
in theid
field - Directory in which to download course information to (will be created if not present)
- List of Course IDs that should be skipped
Loading credentials from a file
To avoid manually entering credentials every time you run the program, you can create a credentials.yaml
file in the same directory as the script that has the following fields:
API_URL: < URL of your institution >
API_KEY: < API Key from Canvas >
USER_ID: < User ID from Canvas >
You can then run the script as normal:
python export.py
Contribute
I would love to see this script's functionality expanded and improved! I welcome all pull requests :) Thank you!