JSPM

skool-downloader

1.0.0
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 3
    • Score
      100M100P100Q29360F
    • License CC-BY-NC-4.0

    CLI tool that creates offline backups of Skool.com courses, including video, assets, and attachments.

    Package Exports

      This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (skool-downloader) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

      Readme

      🎓 Skool Downloader

      A robust, platform-independent CLI tool to create local, offline backups of your Skool.com courses.

      This tool downloads video content, localizes images, preserves course attachments, and generates a navigable, styled HTML structure that mirrors the online classroom.

      ✨ Features

      • 🚀 Smart Binary Management: Automatically downloads the correct yt-dlp and ffmpeg binaries for your OS (Windows, macOS, Linux) and architecture (Intel, Apple Silicon ARM, Linux ARM).
      • 📹 High-Quality Video: Downloads the highest available quality and applies +faststart for instant browser playback.
      • 📄 Asset Localization: Downloads all lesson images locally and rewrites HTML paths for true offline 100% viewing.
      • 📎 Resource Preservation: Automatically fetches course attachments (PDFs, DOCX, etc.) via Skool's API.
      • 🎯 Single Lesson Mode: Download a whole course or just a single lesson using a specific URL.
      • 🛠 Interrupted Download Recovery: Skips already downloaded files and includes a tool to regenerate the index page.

      🛠 Prerequisites

      Note: No system-wide installation of yt-dlp or ffmpeg is required. The tool manages these locally in the bin/ folder.

      🚀 Getting Started

      1. Installation

      git clone https://github.com/balmasi/skool-downloader.git
      cd skool-downloader
      npm install

      2. Authentication

      Skool uses secure authentication. This tool uses a manual login flow to capture your session safely.

      npm run login

      A browser window will open. Log in to your Skool account. Once you see your dashboard, the script will save your session and close the browser.

      3. Using NPX

      Once published to npm under the skool-downloader package name (e.g., npm publish --access public), npx skool-downloader will directly run the CLI without installing anything locally. Until then, npx can still execute the repo via npx github:balmasi/skool-downloader or by pointing at another GitHub fork. Either way, the executable is registered as skool-downloader, so npx skool-downloader will remain the canonical command.

      If you prefer to stay completely local (and allow offline development), run npm install once and use npm run skool as shown below.

      3. Downloading a Course

      To download an entire classroom:

      npm run skool https://www.skool.com/your-community/classroom/course-id

      To download all courses in a community classroom:

      npm run skool https://www.skool.com/your-community/classroom

      To download multiple courses interactively:

      npm run skool

      Then choose Download multiple courses and select the courses you want.

      You can also run npx skool-downloader to enter the same interactive menu once the package is published.

      To download only a single lesson:

      npm run skool "https://www.skool.com/your-community/classroom/course-id?md=lesson-id"

      📁 Output Structure

      The tool creates a downloads/ folder with the following structure:

      downloads/
      └── Community Name/
          └── Course Name/
              ├── index.html (Master navigation page)
              └── 1-Module Name/
                  ├── 1-Lesson Title/
                  │   ├── index.html (The lesson page)
                  │   ├── video.mp4
                  │   ├── assets/ (Localized images)
                  │   └── resources/ (Attachments)
                  └── ...

      🔧 Advanced

      Regenerating the Index

      If you manually move files or skip lessons, you can regenerate the master index.html file based on the current contents of your downloads/ folder:

      npm run regenerate-index

      🛡 Disclaimer

      This tool is for personal backup and offline viewing purposes only. Please respect the content creators' terms of service and intellectual property rights. Do not distribute downloaded content without permission.

      📄 License

      This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) license. See LICENSE for the full legal code.