Grab all files on Canvas LMS to local directory.
If you have Python installed, download latest release here, and follow the steps in "Build and Run from Source"
Otherwise, you may download prebuilt binary here. Here's a canvas_grab(.exe)
file.
The program will ask you for an API key when running for the
first time. You may obtain API key in Canvas settings. If you
want further customization, you may edit config.toml
. Refer to
Configuration section.
You may interrupt the downloading process at any time. The program will automatically resume from where it stopped.
To re-download all files, remove checkpoint file .checkpoint
and downloaded files folder files/
.
To upgrade, just replace canvas_grab
with a more recent version. If you want to use new
features, you should edit config.toml
to manually enable it, as we persist program
behavior when upgrade.
If you have any questions, feel free to file an issue here.
You may configure canvas_grab in config.toml
.
You can edit config.toml
with your favourite text editor.
Refer to config.example.toml
or config.example.zh-hans.toml
for documentation.
- All Canvas-based sites are supported Just specify Canvas endpoint in config.
- Auto checkpoint A file will only be downloaded once. And the program will update the file if there's any update on Canvas.
- File size and type filter You can specify maximum allowed file size. You may also filter files by their extensions.
- Auto retrying If your network connection is not stable, the program will automatically retry downloading. You may interrupt at any time.
- Smart sorting All files will be saved to their corresponding folder on Canvas. Furthermore, you may set course root folder name with placeholders like
{CANVAS_ID}-{NAME}
. - Organize by Module or by File You can set file organization mode in config.
- Video URL resolution Currently we support resolve video URL from
v.sjtu.edu.cn
. Installffmpeg
and enable this functionality. Note that this is an EXPERIMENTAL functionality. Use at your own risk.
First of all, please install Python 3.7+.
For macOS or Linux users:
pip3 install -r requirements.txt
./main.py
For Windows users:
pip install -r requirements.windows.txt
python main.py
- Acquire API token Access Token can be obtained at "Account - Settings - New Access Token".
- SJTU users 请在此页面内通过“创建新访问许可证”按钮生成访问令牌。
- An error occurred You'll see "An error occurred when processing this course" if there's no file in a course.
- File not available This file might have been included in an unpublished unit. canvas_grab cannot bypass restrictions.
- No module named 'canvasapi' You haven't installed the dependencies. Follow steps in "build and run from source" or download prebuilt binaries.
- Error when checking update It's normal if you don't have a stable connection to GitHub. You may regularly check updates by visiting this repo.
- Unsupported Link canvas_grab only supports resolving URL from
v.sjtu.edu.cn
.vshare.sjtu.edu.cn
is not supported. - Reserved escape sequence used please use "/" as the path seperator instead of "\".
- Download FFMPEG Download ffmpeg executable here.
- Invalid prebuilt binary on macOS You should allow this application to run in "Preferences - Privacy"
- Skip a course causing error edit
config.toml
, add ID intoIGNORED_COURSE
. - Duplicated files detected There're two files of same name in same folder. You should download it from Canvas yourself.
- Ignored course If you see the warning "Ignored Course", then canvas_grab has no access to a course. This is because (1) Course not available (2) Course from previous semesters are hidden. This will only show in version <= 1.7.4.
@skyzh, @danyang685, @BugenZhao, @ElectronicElephant, @LuminousXLB
MIT
Which means that we do not shoulder any responsibilities for, included but not limited to:
- API key leaking
- Users upload copyright material from website to the Internet