Releases: sebastian-software/offcourse
Releases · sebastian-software/offcourse
Release list
v1.5.1
v1.5.0
1.5.0 (2026-07-22)
Features
- add Piccalilli course support (4657304)
- support Josh Comeau courses via unified sync (#39) (97056bd)
- unify course sync state across platforms (#69) (1530dee), closes #21
Bug Fixes
- accept duplicate HLS rendition names (#75) (c007c8a)
- avoid self-merging Loom video as audio (0377ca5), closes #95
- clean up shared state follow-ups (#98) (4163a98)
- deps: update actions/setup-node action to v7 (c06aca0)
- deps: update codecov/codecov-action action to v7 (8bb0401)
- deps: update commitlint monorepo to v21.2.1 (d6bb7a3)
- deps: update dependency ast-v8-to-istanbul to v1.0.5 (0ef0c9c)
- deps: update dependency execa to v10 (84eed00)
- deps: update dependency lint-staged to v17.1.0 (#76) (181a7a9)
- deps: update dependency node to v24 (e83c18a)
- deps: update pnpm to v11.13.1 (6b3707e)
- deps: update pnpm to v11.15.0 (#77) (818502d)
- download complete LearningSuite videos (bf650cc)
- ensure segment paths are relative in concatSegments function (#1) (6dbc09a)
- fail incomplete HLS segment downloads (#44) (5855339)
- fall back to GET when HLS HEAD is rejected (9a14de1), closes #96
- format Renovate configuration (#46) (d8abb5d)
- handle incomplete Vimeo configs (1d37011)
- handle progressive output stream failures (#48) (8cdcd6a)
- handle unsupported Skool sync options (2d25477), closes #90
- harden course database migrations (#63) (05234c4)
- harden download failures and timeouts (a4fc545), closes #93
- harden downloader HTTP boundaries (#61) (a737fdf)
- harden LearningSuite module scanning (9945eef), closes #85
- ignore local worktrees in checks (580ed71)
- improve scraper diagnostics and title cleanup (#54) (b0da40b)
- isolate LearningSuite HLS renditions (#49) (8216379)
- keep interactive Josh login on current page (8bff05b), closes #89
- loom: clean up downloads and capture sessions (#52) (0857a08)
- make CLI shutdown interruptible (5990f77)
- normalize Skool URLs before validation (#50) (b1b6c6c)
- polish Josh Comeau extraction and downloads (79e38bf), closes #97
- preserve LearningSuite modules and lessons (#51) (56c0ff0)
- preserve retry errors during shutdown (300625c), closes #86
- preserve signed HLS variant queries (87bb033)
- preserve Vimeo HLS audio and signed URLs (#53) (43238db)
- propagate progressive stream failures (#43) (c1b53ba)
- protect stored session credentials (#41) (57ed415)
- publish attachments atomically (6238a37)
- publish ffmpeg output atomically (#47) (484acc2)
- redact signed download URLs (#42) (5cd3248)
- reject unsupported sync options and URLs (#55) (b6e2ad9)
- report complete source coverage (#56) (077a916)
- report coverage without provider workaround (#57) (92cc64b)
- resume validated native lessons (73fb4dd)
- sanitize attachment download paths (#40) (b92983b)
- stabilize Josh Comeau Vimeo extraction ([4c3c580](https://github.com/sebastian-software/offcourse/c...
v1.4.0
v1.3.0
1.3.0 (2025-12-27)
Features
- add integration test infrastructure with combined Codecov coverage (5113cc6)
- add self-hosted HLS test stream for integration tests (5c56175)
Bug Fixes
- cli: ensure browser always closes and process exits cleanly (fab14ec)
- codecov config - don't require both flags simultaneously (8a04c6a)
- downloader: use unique temp directories for parallel segment downloads (cec6c37)
- handle untildify behavior in expandPath tests (ee4e192)
- learningsuite: auto-dismiss MUI modal dialogs before interactions (b80959c)
- learningsuite: capture all HLS segments by seeking through video (822db9a)
- make fileSystem tests cross-platform compatible (8f64516)
- make path tests cross-platform compatible (11c81b6)
- optimize integration tests for speed (0bd826c)
- skip slow HLS download test by default in integration tests (d724434)
- update vitest config for v4 (remove deprecated poolOptions) (f603fcc)
- use pnpm instead of npm in CI workflow (776b67f)
v1.2.2
1.2.2 (2025-12-23)
Bug Fixes
v1.2.1
v1.2.0
v1.1.0
1.1.0 (2025-12-23)
Features
- add LearningSuite platform support (d5c2af5)
- complete command now auto-detects platform (5a11776)
- complete: iterative approach to unlock all content (a3d5207)
- learningsuite: add --auto-complete option to batch complete lessons (df86ad2)
- learningsuite: detect locked lessons and add auto-complete option (05235bd)
Bug Fixes
- complete: avoid stale element references when clicking modules (73ccd35)
- complete: iterate through all modules and lessons systematically (6aac791)
- complete: mark incomplete lessons, not just unlock locked ones (ff6c5cb)
- learningsuite: --auto-complete now exits after completing lessons (78852d9)
- learningsuite: add Origin/Referer headers to HLS downloads (d1157b2)
- learningsuite: improve video and attachment extraction (a0da5b9)
- learningsuite: improve video detection with play button trigger (e750f6e)
- learningsuite: pass session cookies to HLS video downloads (09b2006)
- learningsuite: properly extract lesson title and text content (b57fcc6)
- learningsuite: properly extract modules and lessons from course pages (9b1d5dd)
- learningsuite: remove redundant video URL from markdown (146d6f6)
- learningsuite: suppress GraphQL errors, use DOM-based extraction (96aad94)
- learningsuite: use correct referer URL for video downloads (31f3031)
- resolve ESLint errors (4fd34cc)
- show correct phase message when --skip-content is used (b6b7e82)
v1.0.1
v1.0.0
1.0.0 (2025-12-22)
⚠ BREAKING CHANGES
- The 'enrich' command for transcribing videos is no longer available
Features
- add --resume flag and fix HLS URL handling in downloaders (163055b)
- add detailed error reporting and retry logic for Loom downloads (177e92d)
- add fast mode to skip images, fonts, CSS during scraping (bc7a128)
- add HighLevel (GoHighLevel) course scraper support (04c15f8)
- add network interception fallback for video URL capture (fc36f6d)
- add OpenRouter integration for transcript polishing (22487f2)
- add tsx for dev, detect locked lessons (809c9fd)
- add video transcription with Whisper (06f9edd)
- add video type prefix [LOOM], [VIMEO] etc. to output (bba70e7)
- add Vimeo video download support (64ecde7)
- add Zod schemas for API response validation (1fec40f)
- beautiful multi-progress bars for parallel downloads (cfe6e01)
- cli: add Commander-based CLI with sync, login, inspect commands (53b53e1)
- config: add configuration system with Zod validation (552e5c8)
- detect and track locked lessons separately (8a62c9a)
- download linked PDF and Office files from lessons (6e838be)
- downloader: add HLS streaming support for Loom videos (2dfcae1)
- downloader: add native video downloader with queue system (8c6e236)
- extract Vimeo URLs from running player in iframe (ba68bbe)
- format transcripts with paragraphs (cd16eb8)
- improve download progress display and file size reporting (c5a548c)
- improve locked lesson detection using hasAccess from JSON (6b2e3e8)
- improved logging for unsupported video providers (f808169)
- parallel downloads for faster video syncing (95d12f2)
- progress bar for Phase 1 (course structure scanning) (2017425)
- progress bars for validation and content extraction phases (324be59)
- remove AI transcription and enrich feature (7ba6327)
- scraper: add Playwright-based Skool scraper (b9b111f)
- separate summary.md and transcript.md, add module summaries (fc49a60)
- SQLite state management, improved video detection, graceful shutdown (fc001d7)
- storage: add filesystem utilities for course output (ef18545)
- support domain-restricted Vimeo videos via browser context (2b16e0c)
- use CDP network interception to capture video URLs from iframes (b49a873)
- use readable titles in summary and transcript files (ad1377d)
Bug Fixes
- --force flag now also resets error lessons for retry (d20e7fb)
- --resume --retry-errors now works correctly (bbe732d)
- add autoplay=1 to embed URLs to trigger HLS fetch (1ffa068)
- add conventional-changelog-conventionalcommits peer dependency (84f4502)
- add missing await to saveMarkdown call (da6e1e7)
- capture Loom/Vimeo HLS by navigating to embed page (6608bd9)
- clean download progress display - remove completed bars (8334894)
- extract full iframe URLs with auth params for Vimeo (e8fcec3)
- formatting (4491c00)
- handle direct HLS URLs in Loom downloader (974b7d6)
- highlevel: correctly parse product API response for course name (697ab07)
- highlevel: fix video detection and default to headless mode (e4dcf51)
- migrate to Zod 4 API for url and datetime validation (7519b2c)
- mute videos during extraction to avoid audio output (9150dc0)
- mute videos during extraction to avoid audio output (ee43c1c)
- navigator: correctly handle module URLs vs classroom URLs (a0e8763)
- prefix unused parameter with underscore in queue test (076f9c4)
- resolve lint errors in syncHighLevel.ts (4af50d5)
- simplify release-it preset config for v10 compatibility (9f9748f)
- use Playwright request API for Vimeo (avoids CORS) (09a2386)
- use response listener instead of route interception (cb63eee)
- use URL slug for output directory name (804e4fb)
- version (d17bbc7)
Performance Improvements
- reduce wait times and improve content extraction (e306be2)