Files
CanvasArchiver/README.md
2026-02-13 18:49:29 +01:00

1.5 KiB

Canvas Archiver

A command-line tool to archive Canvas LMS course content, including files, modules, and Panopto video recordings.

Prerequisites

  • Go 1.21 or higher
  • yt-dlp installed and in PATH

Installation

git clone git.directme.in/Joren/CanvasArchiver
cd CanvasArchiver
go build -o canvasarchiver ./cmd/canvasarchiver

Usage

  1. Run the archiver:

    ./canvasarchiver
    
  2. On first run, you'll be prompted to authenticate:

    • Visit the provided OAuth URL
    • Authorize the application
    • Copy the authorization code back to the terminal
  3. Enter your Course ID when prompted

  4. The tool will download:

    • Regular course files (to Course Files/)
    • Module content (to Modules/)
    • Panopto recordings (to Recordings/)

## Configuration

The following constants can be modified in `internal/config/config.go`:

- `BaseURL`: Canvas instance URL
- `ClientID`: OAuth client ID
- `ClientSecret`: OAuth client secret
- `PanoptoID`: Panopto external tool ID

## Authentication

Credentials are stored in `credentials.json` after the first successful login. The refresh token is automatically used for subsequent runs.

## Notes

- Files are organized to match Canvas structure
- SubHeaders in modules create nested folder structures
- Videos are downloaded with their original titles
- Existing files are skipped to avoid re-downloading

## License

This project is for educational purposes. Ensure you have permission to download course content.