Downloads skool.com videos – either directly from a classroom/post URL
(login is taken from the browser) or from a master .m3u8 URL.
- macOS (cookie decryption via Keychain +
openssl) yt-dlpandffmpeg→brew install yt-dlp ffmpeg- A Chromium-based browser in which you are logged in to skool (default: Helium; also chrome, brave, chromium, edge, arc)
# Single lesson (URL from the browser address bar, with ?md=...)
./mediapull.py "https://www.skool.com/<community>/classroom/<id>?md=<lesson>"
# List all lessons of a course with links
./mediapull.py --list-lessons "https://www.skool.com/<community>/classroom/<id>"
# Download the entire course
./mediapull.py --all "https://www.skool.com/<community>/classroom/<id>"
# Choose quality / only show qualities
./mediapull.py URL -q 720
./mediapull.py URL --list
# Different browser / profile
./mediapull.py URL -b chrome --profile "Profile 1"
# Stage 1: direct master .m3u8 URL (e.g. from the DevTools)
./mediapull.py "https://stream.video.skool.com/....m3u8?token=..."Options: -q/--quality {best,1080,720,480,worst,audio}, -o/--output,
-b/--browser, --profile, --list, --list-lessons, --all.
- Cookies: reads the skool cookies from the browser's Chromium cookie DB
and decrypts them with the Keychain key (
auth_tokenetc.). - Extraction: loads the page, reads
playbackId+playbackTokenfrom the__NEXT_DATA__JSON and builds the manifest URLhttps://stream.video.skool.com/{playbackId}.m3u8?token={playbackToken}. - Download:
yt-dlpdownloads the HLS and muxes to MP4. skool restricts playback via theRefererheader to skool.com – this is set automatically.
Use only for content you have legitimate access to (your own membership), for personal use. Respect the platform's terms of service and copyright.