Skip to content

About

A point-and-click Windows app that logs into Canvas (in a real browser window), scans one or more classes, shows you everything it found, and downloads only what you select. Delivers data into a clean Class > Module > Assignments/Resources folder structure. This requires only your web browser to log in after running pre set up.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Canvas Course Content Downloader (GUI edition)

A point-and-click Windows app that logs into Canvas as you (handles SSO/2FA normally, in a real browser window), scans one or more classes, shows you everything it found, and downloads only what you tick — into a clean Class > Module > Assignments/Resources folder structure.

This replaces the old command-line-only script with:

  • A GUI instead of typing commands
  • A scan first, then pick step — no more all-or-nothing downloads
  • Support for queuing up multiple classes in one run (one login covers all of them)

Files in this folder

File What it does
canvas_sync_gui.py The app itself — run this
canvas_core.py The engine (scanning/downloading logic) — don't need to touch it
config.example.json A template for your settings (the app also saves/loads this automatically)
requirements.txt The two Python packages this needs
setup_windows.bat One-time installer — double-click once
run_windows.bat Launches the app — double-click each time

1. One-time setup

  1. Install Python if you don't have it: python.org/downloads. During install, check the box that says "Add Python to PATH."
  2. Put all the files above in one folder.
  3. Double-click setup_windows.bat. It will:
    • Install beautifulsoup4 and playwright (both free, open-source, no paid tiers)
    • Download the Chromium browser Playwright drives (~150MB, one-time)
  4. When it says "Setup complete," you're done with this part.

2. Running it

Double-click run_windows.bat (or run python canvas_sync_gui.py from a Command Prompt in that folder). The app window has three sections:

Section 1 — Canvas Setup

  • Canvas URL: your school's Canvas address, e.g. https://ecpi.instructure.com (no trailing slash, no /courses/...)
  • Download folder: where everything gets saved. Use the Browse button.
  • Click Save Settings so you don't have to re-type these next time.

Section 2 — Classes to Sync

  • Paste a course link (or just the numeric course ID) in the first box, e.g. https://ecpi.instructure.com/courses/123456 or just 123456.
  • Type a short class name in the second box, e.g. ET102 — this becomes the folder name.
  • Click + Add Class to add more rows — add as many classes as you want synced in this run.
  • Click Scan Courses.

First time only: a real Chromium window will pop up on your school's Canvas login page. Log in normally (your school SSO / 2FA works fine since it's a real browser). Once you can see your Canvas dashboard, come back to the app and click OK on the popup. Your session is saved to auth_state.json next to the app, so you won't have to log in again until it expires.

Section 3 — Pick What to Download

Once scanning finishes, you'll see every class, its modules (weeks), and every item inside each module — files, assignments, pages, quizzes, discussions, external links — each with a checkbox in the Include column. Everything starts checked.

  • Click a checkbox to toggle just that item.
  • Click a module's or class's checkbox to select/deselect everything under it in one click.
  • Use Select All / Select None at the top to reset the whole list.

When you're happy with your picks, click Download Selected. Progress and any errors show up in the Status box at the bottom.

Where things end up

<Download folder>/
  ET102/
    Week 1/
      Assignments/
        Essay Draft/
          Essay Draft - instructions.html
      Resources/
        syllabus.pdf
    Week 2/
      ...
  EET191/
    ...

Quizzes and discussions don't have a downloadable file, so they're skipped automatically (Canvas doesn't expose their content the same way). External links are saved as .url shortcuts you can double-click to open in a browser.

Doing multiple classes at once

Just add multiple rows in Section 2 before clicking Scan Courses — the app logs in once and scans/downloads all of them in the same run, keeping each class in its own folder.

Notes

  • auth_state.json holds your saved login — don't share this file. Delete it any time to force a fresh login.
  • Re-running a scan/download won't re-download files you already have (it checks the destination folder first).
  • Everything here is free, open-source tooling (Playwright + Beautiful Soup) — no paid add-ons or subscriptions required.

About

A point-and-click Windows app that logs into Canvas (in a real browser window), scans one or more classes, shows you everything it found, and downloads only what you select. Delivers data into a clean Class > Module > Assignments/Resources folder structure. This requires only your web browser to log in after running pre set up.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages