Skip to content

Releases: jasp-nerd/canvas-course-downloader

v2.11.0: Download videos embedded through the Canvas media player

Choose a tag to compare

@jasp-nerd jasp-nerd released this 18 Sep 09:38

Videos embedded through the Canvas media player are now downloaded

Videos and audio that instructors upload or record through the Canvas editor (the built-in media player) were never downloaded, because Canvas stores them as media objects rather than course files. This release fixes that:

  • Every embed form Canvas has used is recognised: modern media_attachments_iframe players, older media_objects_iframe players, legacy inline media comments, and entryId video tags
  • The highest-quality flavor is saved to Media/, with captions as .srt files next to it
  • Exported pages play the local copy offline with a real video/audio player; Markdown export links to it
  • Media-recording submissions and audio/video feedback comments are saved into the submission folder
  • Media that Canvas is still processing, or that could not be fetched, is listed in _inaccessible_links.csv instead of being skipped silently

Videos hosted in external tools (Canvas Studio, Panopto, Kaltura, YuJa, Echo360, Vimeo, Zoom, Microsoft Stream) live behind those tools' own logins and download permissions and are still out of scope.

Fixes

  • Incremental mode no longer marks files as downloaded when their fetch failed during ZIP bundling, so they are retried on the next run
  • Locked files in the Files tab are reported as inaccessible instead of being saved as a copy of the current Canvas page under the file's name
  • If ZIP bundling fails (for example on a course with very large recordings), the download falls back to individual files automatically
  • Markdown export keeps a link for embedded iframes, video and audio instead of dropping them

v2.10.4

Choose a tag to compare

@jasp-nerd jasp-nerd released this 10 Sep 20:09
  • Added a GitHub Sponsors link to the Help & Support panel in settings
  • Added a Sponsor button to the repository and a Support section to the README

No functional changes to downloading or exporting.

v2.10.3 — Hidden-answer quizzes no longer mark your choice as wrong

Choose a tag to compare

@jasp-nerd jasp-nerd released this 07 Sep 13:53

Fixed

  • Quiz exports no longer mark your selected answer as incorrect when the quiz hides correct answers. For concluded courses the extension scrapes the Canvas quiz review page, and it assumed any selected answer not flagged as correct must be wrong — painting it red even when the instructor had hidden correctness entirely. The export now only uses red/green correct-incorrect styling when the review page actually reveals which answers are correct; otherwise your selection is shown in a neutral bold style. Fixes #16, reported by @Jxck-S.

v2.10.2 — Linked files from other courses now download

Choose a tag to compare

@jasp-nerd jasp-nerd released this 30 Aug 14:49

Fixed

  • Linked files that live in another course now download. Instructors often carry a syllabus or page over from last year's course, and the file links in it still point at the old course. Canvas lets you open those files through the page that links them (the location= part of the URL), but the extension asked the API for the bare file id, was refused, and silently skipped them — so an export could come out with a syllabus full of lecture slides and none of the PDFs. The linked-file scanner now forwards the link's location/verifier access params, so anything you can open in the browser is fetched too. Cross-course links in the exported HTML are rewritten to the local copy as well.
  • Nothing is dropped silently anymore. Linked files that still can't be fetched (no access, deleted, locked) are listed in _inaccessible_links.csv in the export root with the source document, link text, URL and status; counted as inaccessibleLinkedFiles in manifest.json; and summarised in the progress log — including a heads-up when they point at another course, since that is something the instructor can fix by relinking.
  • Files that are locked for you (Canvas returns them without a download URL) are reported instead of being queued — previously the download fetched the current Canvas page and stored it under the file's name.

v2.10.1 — Incremental mode actually works now

Choose a tag to compare

@jasp-nerd jasp-nerd released this 21 Jul 12:49

Fixed

  • Incremental mode now works as advertised. Previously the extension only remembered which files it had downloaded when incremental mode was already enabled during that download. The natural flow — download a course, enable incremental mode, download again — re-downloaded everything and only started skipping from the third run. The per-course inventory is now recorded after every download, so enabling incremental mode picks up right where your last download left off. (Thanks to the Chrome Web Store reviewer who reported this!)
  • Files modified on Canvas are re-downloaded. Incremental mode now tracks each file's Canvas modification date and size, so an updated file is fetched again instead of being skipped forever. Unchanged files are still skipped.
  • Files excluded by the video/size filters are no longer marked as downloaded, so they are picked up correctly if you later relax those filters.

Notes

  • Generated documents (pages, assignments, discussions, grade CSVs, manifest) are always re-exported so they stay current — incremental skipping applies to real course files.
  • Existing incremental records from older versions keep working; change detection kicks in from the first download on v2.10.1.

Other changes since v2.10.0

  • The inline download button now stays on the breadcrumb row (#12)

v2.10.0 — Student discussion replies & friction-free submission-file fix

Choose a tag to compare

@jasp-nerd jasp-nerd released this 12 Jul 21:20

What's new

Fixes for missing submission content (#11)

  • Student-submitted files now download. Canvas serves submission attachments from its canvas-user-content.com CDN, which the extension couldn't access (#10, thanks @NathanPervin). The permission is optional: Chrome asks once on your first download and existing users are never deactivated by this update. You can also grant it under Settings → Downloads → Submitted files.
  • Discussion replies for students. Full discussion threads (including your own posts) are now archived for student accounts, not just teachers/TAs.
  • Quiz results on concluded courses. When Canvas returns 403 on old courses, quiz answers are recovered from the review page (#9, thanks @NathanPervin).

Install

Available on the Chrome Web Store once review completes. To use it now: download the zip below, unzip, and load it via chrome://extensions → Developer mode → Load unpacked.

v2.9.2 — Redesigned settings & file filters

Choose a tag to compare

@jasp-nerd jasp-nerd released this 06 Jun 14:12

What's new

  • File filters — a new Filters tab lets you exclude video files (.mp4, .mov, .mkv, …) and cap the maximum file size (MB), so you can keep archives lean.
  • Redesigned settings page — sidebar navigation with Content / Downloads / Format / Filters tabs, and content types now grouped into Course content and Student data & grades so role-dependent exports are clearly separated.
  • Popup polish — settings moved to an icon button in the header; course-selector footer now shows the version with Star / Report-a-bug links.

Docs

  • README fully refreshed to cover teacher exports (submissions, gradebook, roster, quizzes, rubrics, full discussions), automatic role detection, and the new filters; new banner, store assets, workflow GIF, and updated screenshots.

No changes to required permissions.

v2.9.1 — Skip student submissions on big courses

Choose a tag to compare

@jasp-nerd jasp-nerd released this 06 Jun 12:22

New: a dedicated 'Student submissions' toggle

Some instructors want a full course backup without downloading every student's submissions — on a 500-student course that's gigabytes you may not need.

  • Student submissions is now its own content type, split out from Assignments. Untick it to archive everything else (assignment instructions, gradebook, discussions, files, pages, quizzes) while skipping the submission files.
  • The options page now groups content into Course content and Student data & grades, so the role-dependent, privacy-sensitive exports are clearly set apart.
  • Existing settings are respected: anyone who had Assignments on keeps getting submissions, no silent change.

Applies to both roles — as a student the toggle controls your own submissions.

v2.9.0 — Full submission history & student self-export

Choose a tag to compare

@jasp-nerd jasp-nerd released this 04 Jun 09:02

Submissions overhaul (thanks to feedback on r/canvas)

  • Every attempt is kept. Submissions now archive the full submission_history, not just the most recent attempt. Files from earlier attempts are prefixed Attempt N - .
  • A folder per student. Submissions are organized as Submissions/<Assignment>/<Student>/ instead of flat files name-prefixed inside the assignment folder — much cleaner once multiple attempts are involved.
  • Students get their own submissions. Running as a student now downloads your own submitted files (every attempt) and a per-assignment page with grade, text, and the instructor comment thread, into a Submissions/ folder. Previously students only got Grades.csv.

Teacher and student paths now share one rendering helper, so both produce the same structure.

v2.8.0 — Teacher-side archive

Choose a tag to compare

@jasp-nerd jasp-nerd released this 02 Jun 09:02

Teacher-side archive + robustness fixes

When you're a Teacher/TA in a course (auto-detected), the export now captures the full picture. Students still get only their own view, so nothing changes for them.

New — teacher-side data

  • Quizzes: question bank with answer key, per-student scores, and a _grades.csv
  • All student submissions: files, typed text, grades, instructor comments, and rubric scores
  • Full class Gradebook.csv + Students.csv with section columns
  • Discussions: complete threaded student replies; graded discussions get a _grades.csv
  • Assignment rubrics, including point ranges

Better for everyone

  • ZIP bundling is now ON by default — your browser prompts once instead of once per file (large courses over ~1.5 GB still fall back to individual files)
  • Embedded images in pages/assignments are now downloaded and viewable offline (previously broken)
  • YouTube embeds become clickable thumbnails; dead Canvas import placeholders ($CANVAS_OBJECT_REFERENCE$) are neutralized
  • Same-named items (e.g. several "Unnamed quiz") no longer overwrite each other in the ZIP
  • Quiz and module links now resolve to local copies

Thanks to @dlxmax and the canvas-teacher-export project for the inspiration and detailed feedback.