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 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.
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 firstname.lastname@example.org - Thanks much! - Emory
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'):
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.
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!
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.