npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

skool-downloader

v1.0.0

Published

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

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.