How davekats/canvas-student-data-export works
This is a command-line Canvas student-data exporter. A student supplies Canvas credentials and an output location; the exporter retrieves course content, organizes it by term and course, and writes JSON plus downloaded files. Optional SingleFile capture adds HTML snapshots using authenticated browser cookies. The sampled source is partial, so the feature branches are grounded in the README; detailed call wiring beyond the visible attachment download and SingleFile helper is not asserted.
Main entry points: export.py Export runner · singlefile.py SingleFile helper
Components 16
Export setup
- Export runner
export.py - Credentials
Course content
- Assignments
export.py - Announcements
export.py - Discussions
export.py - Course pages
export.py - Course modules
export.py - Course files
export.py - Attachments
export.py
Export artifacts
- JSON exports
export.py - Term/course folders
export.py - HTML snapshots
export.py
HTML snapshots
- Snapshot capture
export.py - SingleFile helper
singlefile.py
Other components
- Student
- Canvas LMS
Connections 18
- Student → Export runner: runs export
- Student → Credentials: provides credentials
- Export runner → Credentials: reads config
- Export runner → Canvas LMS: requests course data
- Canvas LMS → Export runner: returns course data
- Export runner → Assignments: processes
- Export runner → Announcements: processes
- Export runner → Discussions: processes
- Export runner → Course pages: processes
- Export runner → Course modules: processes
- Export runner → Course files: downloads
- Export runner → Attachments: downloads
- Export runner → JSON exports: writes JSON
- Export runner → Term/course folders: organizes output
- Export runner → Snapshot capture: optionally captures
- Snapshot capture → SingleFile helper: calls helper
- SingleFile helper → HTML snapshots: writes HTML
- Export runner → HTML snapshots: writes snapshots