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

60 lines
1.5 KiB
Markdown

# 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](https://github.com/yt-dlp/yt-dlp) installed and in PATH
## Installation
```bash
git clone git.directme.in/Joren/CanvasArchiver
cd CanvasArchiver
go build -o canvasarchiver ./cmd/canvasarchiver
```
## Usage
1. Run the archiver:
```bash
./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.