The Instructure Community will enter a read-only state on November 22, 2025 as we prepare to migrate to our new Community platform in early December. Read our blog post for more info about this change.
I've been asked if it's possible to collect all syllabi from all Canvas courses, and if not currently possible, to look into options to make it possible in the future. Anyone tried implementing something like this?
I haven't tried to do this (we have a separate eSyllabus tool called Concourse that solves this problem) but there was another discussion started last week that might be related - Export syllabi? Also, a feature request for a mass export option has been created -
I saw that thread and idea post too. It seems there's lots of third-party solutions where they build the syllabus then add to Canvas, but we've tried that with very little adoption, so they're asking for the other way around now in the hopes of a higher collection rate.
Thanks for the links, and the tool suggestion. It'll be on my report back to the requester.
I wrote a Python script a few years ago to find and download syllabi. I'd be happy to share it with you.
that would be nice to try. You can either message me it, attach it here, or email me at abunag@pacific.edu.
Thank you very much!
I've emailed you it. You're welcome!
Got it - Thanks again!
You're welcome again!
I too would love to see the python script! Does it use the API to only get the html from the syllabus page, or does it also get assignment information? I've been struggling with this problem as well, as Tracey noted above. (Thanks @tdelillo !)
All the script does is use the API to crawl through courses, look in the syllabus body for hyperlinked files, and download any files it finds. I'd be happy to send it to you, but if there's a way to contact you directly from here, I haven't found it yet.
Huh, I totally thought there was too! My email is jennifer_stevens@emerson.edu - thanks dgrobani!
Sent--you're welcome!
Daniel, I know this is an old discussion, but if you are still following it, I would love to see the Python script to collect syllabi - we've had the same issue come up at the College of New Rochelle. I can be reached at ecraig@cnr.edu - Thanks much! - Emory
Sent--you're welcome!
Thanks so much! Greatly appreciated!
- Emory
Sent--you're welcome!
Thanks Daniel!
I am also interested in your Python script, Daniel.
May I bother you for a copy of it (keeganlong-wheeler@ou.edu)?
![]()
Daniel, is there a chance you could share that script you created with me?
Here's that script in my GitHub repository: dgrobani/py3-canvaslms-api/syllabi/syllabi_download_OLD.py.
I haven't run it in a long time, so use at your own risk ![]()
Daniel, just want to thank you for sharing this script. While we are looking into refining our syllabus collection process and some of the other tools that people have shared, your script has been most useful. I was able to modify for our needs and I really appreciate it as I've used it for the past 2 semesters and am running it as I type this.
I do have one quick question. Not asking you to troubleshoot, but wondering if you encountered this and found a workaround. One of the common errors I get is:
Traceback (most recent call last):
File "syllabus_v4.py", line 82, in <module>
if 'download?verifier' in url and file_name not in ('Preview the document', 'View in a new window'):
TypeError: argument of type 'NoneType' is not iterable
When I run into that the script halts, and I just remove that course from the CSV (and all previously processed courses) and restart the script. Any thoughts on what may cause that?
@troy-carroll , my pleasure--I'm glad it's been useful!
I haven't used that script in years, but looking at the info you've provided, I suspect that what's happening is that url is None, which makes testing for that string in it bomb. Changing that line to this might fix it:
if url and 'download?verifier' in url and file_name not in ('Preview the document', 'View in a new window'):Lemme know!
I know you wrote this a good while ago, but I'd love to take a loot at the Python script that you wrote to download syllabi.
When we started migrating over to Canvas from eCollege we decided to make it as simple as possible to keep syllabi updated so we created a Google Drive folder and put all syllabi in that folder. Then in each course we linked to that course's syllabus in the folder (shareable link where everyone could view). Now we only have one place to update and that is to manage the versions in Google Drive folder and in seconds the syllabus is updated. Sure has simplified our life for sure. When faculty need to update they download the course file, update, send it to our office and then we update the Google Driver file.
If the
you might consider this script. It will export each assignment, it's assignment item number, publish state, and due date/time into a Google Doc. I've used James' script to help teachers in our cyber program who inherit a course copy but the due date shifter in the course copy procedure (although helpful) doesn't really get the entire job done to meet the teacher's needs.
If you're looking to automate grabbing the assignment listing from the syllabus page from a few hundred courses, this might not be the tool for you because automating bulk syllabus exporting isn't really what it was designed to do I believe. But if you have a few dozen and have their course numbers, this might help you get the syllabus lists from courses into a spreadsheet. All you need is your Token and the course numbers and @James script does the rest!
Thanks Todd!
I actually need the syllabi descriptions, rather than the assignment list.
KLM
LOL. Sooo close 🙂 The one thing the report can't give you.
See the USU Syllabus tracker https://elearningindustry.com/create-a-custom-dashboard-to-access-course-syllabi-using-canvas-api
Bumping this to see if anyone has found any good solutions in the past 2 years for downloading syllabi. We really need to get the full syllabus, and it's pretty frustrating that if someone tries to be "nice" to their students and copy/paste the content, it makes it even harder for us to scrape it.
I have to say that part of the challenge here (especially if you are at a bigger institution) is getting all the faculty to do the same thing, so that you could actually USE a systematic approach to gather what you need. This is as much a people-management question as a technology question.
Oh, absolutely agree. But the provosts office has asked us to build this project, so we're going to scrape what we can find and let them deal with the procedure adoption rate.
We have went with SALSA syllabus as well hosted on AWS.
It was a learning curve for Faculty but they greatly appreciate the institutional policies being updated as I handle that. It took some time initially but now it is a fairly simple process for them to setup semester to semester.
We have looked at Concourse but wasn't financially feasible.
We have installed Salsa as our syllabus for Canvas and are using Syllabus Tracker to keep current and archived versions of our syllabi.
Community helpTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign inTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign in
This discussion post is outdated and has been archived. Please use the Community question forums and official documentation for the most current and accurate information.