first commit
This commit is contained in:
59
README.md
Normal file
59
README.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user