If you’ve ever tried downloading videos hosted on Skool.com, you’ve probably run into access errors or 403s. That’s because Skool streams video using tokenized .m3u8 manifests over CDN infrastructure — specifically Fastly — with strict header and token checks.
This guide walks you through the exact working method to download those videos using yt-dlp, the modern replacement for youtube-dl.
To follow along, you'll need:
yt-dlpinstalled
(viabrew install yt-dlporpip install -U yt-dlp)- A valid
.m3u8link with a signature token (see below) - Basic shell access (macOS, Linux, WSL, or terminal)
- Open the video on Skool in your browser.
- Right-click and select Inspect to open Developer Tools.
- Go to the Network tab.
- Filter by
m3u8. - Look for a request to
manifest-gcp-us-east1-vop1.fastly.video.skool.com/.../rendition.m3u8?... - Right-click the
.m3u8request → Copy as cURL. - Extract just the full
.m3u8URL with the?signature=...token at the end.
Once you have the full .m3u8 URL, run:
yt-dlp \
--add-header "Referer: https://www.skool.com/" \
--add-header "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36" \
--output "~/Desktop/skool-video.%(ext)s" \
"https://manifest-gcp-us-east1-vop1.fastly.video.skool.com/.../rendition.m3u8?cdn=...&signature=..."
💡 Make sure to paste the full signed URL from DevTools. If the token is expired (expires=...), refresh the page and grab a new one.
⸻
📄 What’s Happening Behind the Scenes?
Skool’s video URLs:
• Are CDN-hosted by Fastly
• Require a signed query string (signature=...)
• Enforce referer and user-agent headers
• Expire based on a Unix timestamp (expires=...)
yt-dlp can:
• Parse .m3u8 manifests
• Download all .ts segments
• Merge them automatically into .mp4
⸻
🧪 Optional Bash Script
Save the following as skool-dl.sh:
#!/bin/bash
# Usage: ./skool-dl.sh <signed .m3u8 URL>
yt-dlp \
--add-header "Referer: https://www.skool.com/" \
--add-header "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36" \
--output "$HOME/Desktop/skool-video.%(ext)s" \
"$1"
Make it executable:
chmod +x skool-dl.sh
Then run:
./skool-dl.sh "https://manifest-gcp-us-east1-...rendition.m3u8?...&signature=..."
⸻
🛑 Common Errors
Error Reason Fix
403 Forbidden Expired token Refresh page and re-copy .m3u8
403 Forbidden Missing headers Ensure Referer and User-Agent are set
Unable to download webpage Wrong URL Only use signed Fastly .m3u8, not stream.video.skool.com
⸻
📦 Example Output
[generic] Extracting URL...
[hlsnative] Downloading m3u8 manifest...
[download] Merged format into skool-video.mp4
Your video should now be saved as ~/Desktop/skool-video.mp4.
⸻
⚠️ Legal Disclaimer
This guide is provided for educational or archival purposes. Respect intellectual property rights and platform terms of service. Do not redistribute copyrighted content.
- https://github.com/serpapps/skool-downloader
- How to Download Skool Classroom Video Content for Offline Viewing
- How to Bulk Download All the Videos in a Skool Classroom
- How to Download Skool Videos Using yt-dlp and a Signed .m3u8 URL
- How to Download Skool Videos with yt-dlp
- How to Download Skool Videos (.m3u8?token URL type // HLS Stream)
- How to Download Skool.com Videos (and the Entire Course)
👉 Get the Skool Video Downloader: https://serp.ly/skool-video-downloader