Canvas download tools compared: extension, script or app

Three shapes, three trade-offs, and the choice turns on how long you need it to keep working. Written by someone who built one of them, which you should know first.

Short answer

Three shapes, and the shape decides most of it. A browser extension rides your existing Canvas login, so there is no access token to generate or renew, and it runs only while you have the popup open. A script gives total control if you can write code and use a terminal. A desktop app is installed, so it can keep a record between runs, work on a schedule, and use software already on your machine.

For one course today, Canvas's own Download as Zip beats all three. An extension covers several courses with no setup and no token. Only a desktop app keeps a folder current across a whole semester, converts files so AI study tools will take them, and reaches Panopto lecture recordings. Written by someone who built one of the options, which is disclosed on the page and reflected in the recommendations.

There are three ways to get a Canvas course onto your computer without doing it by hand: a browser extension, a script, or a desktop app. Which one suits you depends less on their feature lists than on how long you need the thing to keep working.

Who wrote this

I built one of the options. That is a real conflict of interest and you should read the rest of this page knowing it.

What I can offer instead of neutrality is specifics. Every claim below about another tool comes from that tool's own documentation, with a link, and where a competitor is better I have said which one and why. Three of the five recommendations further down do not point at my app.

Three shapes, and what each is built to be

The shape decides more than any feature list does, because it decides how long the tool is around.

What all three have in common is the verb. They fetch. Point them at a course, get a copy, and the differences are how much they can reach and how much setup they cost you first. Canvas's own Download as Zip button does the same job with less reach and no setup at all.

Which job are you actually doing

There are two versions of this task and from the outside they look identical.

Taking a snapshot. Your access ends next month, or the semester is over and you want the material somewhere safe. You run something once, you get a folder, you are done. Every tool on this page does this. Pick on setup cost and the extension wins.

Keeping a folder current. You are two weeks into a semester. Slides go up on Mondays and Thursdays, sometimes a corrected version of one you already have. You have annotated four of them. You want the folder on your laptop to be right in March without you having to think about it. That is a different question, and the answer turns on what the tool remembers and when it runs.

Most comparisons only test the first job. It is the easier one, and it is the one where these tools are hardest to tell apart.

Browser extensions

Several exist. The most capable I have found is jasp-nerd's Canvas Course Downloader, which is free, open source, and on the Chrome Web Store. It is a genuinely good piece of work and it is worth trying before anything else.

The advantage that matters most: no access token. It uses the Canvas session you already have. In its own words, "there's nothing to configure". That gap has widened over the past year, because Canvas has been steadily shortening how long a token lives. See what a Canvas access token is and what it cannot do for the timeline. An extension sidesteps all of it.

It also does more than extensions used to. It downloads files, pages, assignments, announcements, discussions, modules, syllabus and grades. You can select several courses at once. It has an incremental mode that "skips files you've already downloaded on previous runs", so it does remember the useful half.

Its stated limits are worth quoting, because they are the honest boundary of the whole category:

The rest is the shape. A popup cannot run on Thursday morning while you are asleep, cannot show you what changed and then wait, and has nowhere to put a record of a file you annotated. None of that is a criticism of the code. It is what a popup is.

One thing to check yourself: permissions. This one is scoped narrowly to Canvas domains, which is the right way to do it, and it is open source so you can verify that. Not all of them are either. An extension asking to read every page you visit is asking for a lot, and the Chrome Web Store listing tells you what it wants before you install.

Scripts and command-line tools

A handful of GitHub projects do this well. The most established is davekats/canvas-student-data-export, at 265 stars when I checked in August 2026, which exports assignments and their submissions, announcements, discussions, pages, files and modules across all your courses. Most of these projects build on ucfopen/canvasapi, the University of Central Florida's Python wrapper, which is also what this app uses underneath.

Scripts win on flexibility. If you want the output shaped a particular way, or you want it on a cron job, or you want to read exactly what it does before you run it, nothing else comes close. For a computing student this is plainly the right answer.

They are also written by developers for developers, and it shows in what they ask of you.

If a terminal is not somewhere you are comfortable, the honest answer is that this category was not built with you in mind, and there is no shame on either side of that.

Check the last commit date before you trust a script. Of the repositories I looked at, one popular one had not been touched since December 2023. Canvas has changed its token rules twice since then. An abandoned tool does not announce itself. It fails one day with an error you have to diagnose yourself.

What a resident app does that neither can

This is the category my own project is in, so check the claims rather than taking the framing. Every one of these is a screen you can look at after installing it, and the next section is the other side of the ledger.

An app is installed, so it can keep state, run on a schedule, and talk to software already on your machine. Those three capabilities are where everything below comes from.

It shows you what changed before it touches anything

Analyze, Review & Sync compares the folder on your disk against the course on Canvas, and then it stops. What you get is a review screen, sorted: New Files, Updates Available, a separate list for updates to files you have edited yourself, Deleted on Canvas, and Deleted Locally. Every row has a checkbox. Nothing downloads until you press the button.

Smart Select ticks or unticks a whole filetype across every course at once, so "all the PDFs, none of the 400 MB recordings" is two clicks.

If you only look at one thing on this page, look at that screen. The other tools fetch first and tell you afterwards.

Quick Sync, for the other ninety percent of the time

Most weeks you do not want a review screen. Quick Sync takes the new files and the safe updates and leaves everything else where it is. It skips anything you have edited, anything you deleted on purpose, and anything you told it to ignore. It takes about as long as making coffee.

Today's files

Add the courses you are actually taking to a daily list and the app fetches their new material on its own. The Today page then shows what arrived today across all of them, in one list, with the course each file came from.

On a normal Tuesday you open it, see three new slide decks from two courses, and close it again. No course pages, no clicking through modules, no wondering whether you missed something. This is the feature I would have wanted as a student, and a popup or a terminal command cannot be it.

The files arrive usable

Most students meet this problem within a week of trying to study with an AI tool. NotebookLM accepts PDFs, plain text and Markdown. It does not accept .pptx, .doc, or the HTML that Canvas exports its Pages as. Claude is the same. So the folder you just downloaded has to be converted before it is any use, one file at a time.

Canvas Downloader converts on the way down. PowerPoint and Word become PDF, Canvas Pages become Markdown, code files become plain text, lecture video becomes audio if you ask for it. What lands in the folder can be dragged straight into a notebook. There is a full breakdown of what each AI tool will and will not take in getting Canvas files into NotebookLM.

No other tool on this page does this, and I doubt that is an oversight. Converting a PowerPoint needs software installed on your machine, and a browser extension cannot reach any of it.

It keeps the copy you wrote on

You annotate a lecture PDF on Tuesday. On Friday the lecturer re-uploads it with a corrected slide. To any of these tools that is the same file with a newer timestamp, so it gets overwritten and your notes are gone.

This one checks whether you changed the file, keeps yours, and puts the new version beside it with _NewVersion in the name. It sounds like a small thing until it happens in week nine.

Panopto lecture recordings

As video, as audio, or as a transcript produced on your own machine with no upload anywhere. Panopto sits outside Canvas, so this is the one gap the extensions are explicit about not being able to cross. Quiz questions come down too, and not only the quiz titles.

Where my own app loses

This part is longer than the marketing would like, and it should be.

It is the newest and least proven thing here. davekats' script has 265 GitHub stars. Mine has 2. That gap is real, and part of what it measures is real too: that project has been around for years, and far more people have read its code than have read mine.

It also counts a different population. A star is a developer bookmarking a repository. Nobody stars an app they installed from the Microsoft Store, because most people who install one have never opened GitHub in their lives. Against those 2 stars, this app has been installed over 900 times. The two numbers count different people, and those two groups are exactly the audiences the two shapes were built for. I would rather show you both than pick the flattering one.

It needs an access token, which an extension does not, and Canvas keeps making tokens shorter-lived. The install is a few hundred megabytes against an extension's few hundred kilobytes. And it ships unsigned, so Windows and macOS both warn you the first time you open it, and clicking through that is on you.

If any of that is a problem for you, one of the tools above is genuinely the better answer, and I would rather say so here than have you find out after installing.

Side by side

Checked August 2026 against each project's own documentation.

What you want Extension Script This app
No access token needed YesNoNo
Nothing to install but a browser add-on YesNoNo
No terminal, no code YesNoYes
Several courses in one run YesVariesYes
Pages, assignments, announcements YesVariesYes
Quiz questions VariesRarelyYes
Skips what it already has SomeVariesYes
Shows you what changed before downloading NoNoYes
Fetches new material on its own each day NoIf you script itYes
Keeps your edited copies safe NoNoYes
Converts as it downloads, ready for AI tools NoNoYes
Panopto lecture recordings NoNoYes

Which one you should actually use

You want one course, today, with no fuss. Canvas's own Download as Zip. It needs no software at all and it is in front of you already. It is also better than its reputation: measured across 33 real courses it missed 0.8% of files wherever the Files tab worked. See the five built-in methods before installing anything.

Your institution has switched off student access tokens. An extension is your only option, because every API tool is closed to you. This happens more often than you would think and it is worth checking first.

You want a tidy archive of several courses and you would rather not install a desktop app. A browser extension. It will cover most of what you want, it costs you nothing, and there is no token to renew every few months.

You can write code and you want it your way. A script, built on canvasapi. You will spend an evening on it and get exactly what you asked for.

You are going to be doing this all semester, or all degree. That is the case my app was built for, and it is the one the other two shapes were not built for. A folder that updates itself, a review screen for the weeks you want to look before it acts, files that are usable the moment they land, and your annotated copies left alone. Lecture recordings and transcripts on top if you need them.

How to judge any of them

Start with the question this page has been circling: are you taking a snapshot, or keeping a folder? Then four more, in the order that matters.

  1. When was it last updated? Canvas changes. A tool untouched for a year is a tool that will break without warning.
  2. Where does your token or session go? The answer should be "nowhere". If a tool sends your credentials to somebody's server so it can do the work for you, that is a different proposition entirely, whatever the feature list says.
  3. Can you read the source? Every tool on this page is open source. There are closed ones, and I would not use one for this.
  4. What does it ask for? An extension scoped to Canvas domains is reasonable. One that wants every page you visit is not.

Whatever you choose, do it before you need it. Access ends on schedules nobody tells you about, which is the subject of what happens to your Canvas access after graduation.

One folder, current, all semester

Canvas Downloader is built to sit on your machine for a degree rather than for one download. It shows you what changed before it touches anything, fetches the new material on its own each day, converts PowerPoint and Canvas Pages into files you can drag straight into NotebookLM or Claude, and leaves the copies you have annotated alone. Panopto lecture recordings come down in the same run, as video, as audio, or as a transcript made on your own computer.

Free and open source, Windows and macOS. If a one-off copy is all you need, an extension will do that faster.

Common questions

What is the best way to download all files from Canvas?

It depends on how much you need and how long you need it to keep working. Canvas's own Download as Zip is the fastest route to a single course and needs nothing installed. Past that, a browser extension will cover most of several courses without an access token. Only a desktop app keeps a folder current on its own, converts files as they arrive, or reaches lecture recordings, because a browser cannot get outside Canvas and a script has nothing running between the times you run it.

What is the difference between downloading a Canvas course and syncing it?

A download is a snapshot. You run it, you get a folder, and the folder is wrong again the next time your lecturer uploads something. A sync compares what is on your disk against what is on Canvas and fetches only the difference, which means it can also tell you what changed, skip files you have edited, and run on a schedule. Most tools in this category download. Syncing needs somewhere to keep a record between runs, which is why it tends to be a desktop app that does it.

Do Canvas downloader extensions need an API token?

No, and it is their main advantage. They use the Canvas session your browser already has, so there is nothing to generate and nothing to renew. Since Canvas now forces access tokens to expire, that advantage has grown rather than shrunk.

Can a browser extension download Panopto lecture recordings?

No. Panopto is a separate system that Canvas links out to, so the recordings are not Canvas files. jasp-nerd's extension says so directly: content hosted by third-party tools like Panopto "lives outside Canvas and can't be downloaded". A tool has to talk to Panopto itself.

Do I need to be technical to use one of these?

For an extension or a desktop app, no. Install it, sign in, click. The command-line tools are a different matter: they want Python, a dependency install, a credentials file and a terminal, and when something breaks the fixing is yours. They are written by developers for developers, which is a legitimate audience to write for and may simply not be you.

Are Canvas downloader browser extensions safe?

The good ones are open source and scoped to Canvas domains, which you can check on the Chrome Web Store listing before installing. Be more careful with an extension that requests access to every site you visit, or one whose source you cannot read. The permission list is the thing to read, not the review score.

Will these tools overwrite files I have annotated?

Most of them will, and it is worth knowing before it costs you a semester of notes. From the outside your annotated PDF is the same file with an older timestamp than the one now on Canvas, so a tool that fetches updates will replace it. Canvas Downloader checks whether you changed the file and saves the new version beside yours instead. If you use anything else, keep your annotated copies in a separate folder the tool never writes to.

How do I know if a Canvas download tool is abandoned?

Look at the date of the last commit on GitHub, or the last update date on the Chrome Web Store. One popular script I checked had not been touched since December 2023, and Canvas has changed its access token rules twice since. Abandoned tools do not warn you. They stop working one day.

Is Canvas Downloader better than the alternatives?

For one download it is not obviously better than a free extension, and it asks more of you to set up. It is built for the other job: keeping a course folder right across a semester without you managing it, with a review screen before anything is written, files converted so they work in AI study tools, lecture recordings and transcripts, and your edited copies protected. I do not know of another tool that covers that combination. I built it, so weigh this answer accordingly.

Can I use more than one of these?

Yes, and it is often sensible. An extension for a quick grab of one messy module, something API-based for the material you keep all semester. They read the same Canvas and write ordinary files, so nothing conflicts as long as you point them at different folders.

Who wrote this

BrkBuilds builds Canvas Downloader, the free open-source app this site is about. These guides are written from the engine side: what Canvas does and does not export is described from having implemented against the Canvas API, not from reading about it. The app's behaviour is documented in Under the Hood and the whole codebase is public on GitHub, so every claim on this page can be checked against the code that makes it.

It is a one-person project with no company behind it. Where a page is uncertain it says so, and where a built-in Canvas feature or somebody else's tool is the better answer, it says that too.