Skip to main content

Downloads all Canvas files to a local directory. Provides GUI for managing the download.[

Project description

canvas-grab

Looking for Maintainers

As I no longer have access to Canvas systems, this project cannot be actively maintained by me. If you are interested in maintaining this project, please email me.

Grab all files on Canvas LMS to local directory.

Less is More. In canvas_grab v2, we focus on stability and ease of use. Now you don't have to tweak dozens of configurations. We have a very simple setup wizard to help you get started!

For legacy version, refer to legacy branch.

Getting Started

  1. Install Python
  2. Download canvas_grab source code. There are typically three ways of doing this.
  3. Run ./canvas_grab.sh (Linux, macOS) or .\canvas_grab.ps1 (Windows) in Terminal. Please refer to Build and Run from Source for more information.
  4. Get your API key at Canvas profile and you're ready to go!
  5. Please don't modify any file inside download folder (e.g take notes, add supplementary items). They will be overwritten upon each run.

You may interrupt the downloading process at any time. The program will automatically resume from where it stopped.

To upgrade, just replace canvas_grab with a more recent version.

If you have any questions, feel free to file an issue here.

Build and Run from Source

First of all, please install Python 3.8+, and download source code.

We have prepared a simple script to automatically install dependencies and run canvas_grab.

For macOS or Linux users, open a Terminal and run:

./canvas_grab.sh

For Windows users:

  1. Right-click Windows icon on taskbar, and select "Run Powershell (Administrator)".
  2. Run Set-ExecutionPolicy Unrestricted in Powershell.
  3. If some courses in Canvas LMS have very long module names that exceed Windows limits (which will causes "No such file" error when downloading), run the following command to enable long path support.
    Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name LongPathsEnabled -Type DWord -Value 1 
    
  4. Open canvas_grab source file in file browser, Shift + Right-click on blank area, and select Run Powershell here.
  5. Now you can start canvas_grab with a simple command:
    .\canvas_grab.ps1
    

Configure

The setup wizard will automatically create a configuration for you. You can change config.toml to fit your needs. If you need to re-configure, run ./configure.sh or ./configure.ps1.

Common Issues

  • 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.
  • Reserved escape sequence used please use "/" as the path seperator instead of "\".
  • Duplicated files detected There're two files of same name in same folder. You should download it from Canvas yourself.

Screenshot

image

gui

Contributors

See Contributors list. @skyzh, @danyang685 are two core maintainers.

License

MIT

Which means that we do not shoulder any responsibilities for, included but not limited to:

  1. API key leaking
  2. Users upload copyright material from website to the Internet

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

canvas-grab-0.1.0.tar.gz (20.2 kB view details)

Uploaded Source

Built Distribution

canvas_grab-0.1.0-py3-none-any.whl (26.1 kB view details)

Uploaded Python 3

File details

Details for the file canvas-grab-0.1.0.tar.gz.

File metadata

  • Download URL: canvas-grab-0.1.0.tar.gz
  • Upload date:
  • Size: 20.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.9.16 Linux/5.19.0-32-generic

File hashes

Hashes for canvas-grab-0.1.0.tar.gz
Algorithm Hash digest
SHA256 efa811df62819bea8faa58ebe2947e26806ec2bd74e20d4b8a7df0373d6bc188
MD5 265e24a7c6e4368088a23a8959138e1e
BLAKE2b-256 7859c6021b44fc5156529961e0b6c00ec514607e185a99b2a43da6f24e22a042

See more details on using hashes here.

File details

Details for the file canvas_grab-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: canvas_grab-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 26.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.9.16 Linux/5.19.0-32-generic

File hashes

Hashes for canvas_grab-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b1ba1d98a5d2a3681696c7961c5ebee05ea91a936f91eb6a4fe84f68249d2ee6
MD5 84522dc5f0ac376e379a1712056d0595
BLAKE2b-256 44f93768dcd490e45b2ca783bf99659fe3c94b566bbbda76e31e341576a7b92f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page