Skip to content

sebastian-software/offcourse

Repository files navigation

Offcourse

Powered by Sebastian Software npm version npm downloads license node codecov CI

Download online courses for offline access – of course! 📚

→ View Documentation & Homepage

Quick Start

# Install
npm install -g offcourse

# Download a course
offcourse sync <course-url>

# Or run without installing
npx offcourse sync <course-url>

Requires Node.js 22+ and ffmpeg for HLS videos.

Supported Platforms

Platform URL Pattern
Skool skool.com/community/classroom
HighLevel member.*.com/courses/...
LearningSuite *.learningsuite.io/student/...

Key Commands

# Sync a course (auto-detects platform)
offcourse sync <url>

# Sync with options
offcourse sync <url> --skip-videos      # Text only
offcourse sync <url> --dry-run          # Preview
offcourse sync <url> --limit 5          # Test with 5 lessons

# Unlock sequential content (LearningSuite)
offcourse complete <url>

# Configuration (optional)
offcourse config set outputDir ~/Courses  # Default: current directory
offcourse config set videoQuality 720p    # Default: highest
offcourse config set concurrency 4        # Parallel browser tabs (1-8)

Performance

Both course scanning and content extraction run in parallel using multiple browser tabs (default: 4). This speeds up the entire process significantly compared to sequential processing. All tabs share the same authenticated session.

Development

git clone https://github.com/sebastian-software/offcourse.git
cd offcourse
npm install
npm run build
npm link  # optional: link globally

Commands

npm run dev        # Watch mode
npm run lint       # ESLint
npm run typecheck  # TypeScript
npm test           # Tests
npm run release    # Release to npm

Adding a New Platform

  1. Create src/scraper/newplatform/ with:
    • auth.ts – Session detection
    • navigator.ts – Course structure
    • extractor.ts – Content extraction
    • schemas.ts – Zod schemas
  2. Add CLI command in src/cli/commands/
  3. Register in src/cli/index.ts

Acknowledgments

Thanks to Sindre Sorhus for the excellent packages powering this project: slugify, conf, delay, execa, ky, p-queue, p-retry.

License

MIT


Sebastian Software

Open Source at Sebastian Software
Copyright © 2025 Sebastian Software GmbH

About

CLI tool to download online courses for offline access. Saves video content and lesson text as Markdown files, organized by module structure.

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors