Tutorial · Skool

How to Download Skool Videos: Classroom, Workshop Replays, and Community Content

Skool memberships range from $97 to nearly $1,000 a year. Instructors leave platforms. Communities get shut down or paywalled differently. Archiving the content you paid for is not piracy - it is responsible self-protection. That said, there is a legal line worth respecting: downloading your own legitimately purchased access is very different from redistributing content to others who have not paid. This guide focuses on the former. The technical reason most tools fail on Skool is that video is served through Bunny.net Stream with Referer enforcement and HLS segmentation. Vidora handles both natively.

By the Vidora team 12 min read

1. Why Skool videos are technically hard to download

Skool is a community platform, not a video host. For video delivery, it relies entirely on Bunny.net Stream, a CDN-based video infrastructure. Understanding why generic downloaders fail on Skool is the same as understanding why they fail on Bunny.net - because the problems are identical.

Bunny.net Stream as the video backend

Every classroom video and workshop replay on Skool is stored and transcoded by Bunny Stream. The player embedded on a Skool classroom page is an iframe pointing to iframe.mediadelivery.net, Bunny's embed domain. The actual HLS playlist and video segments are served from Bunny's CDN edge nodes, typically at URLs like vz-XXXXXXXX-XXX.b-cdn.net/{VIDEO-GUID}/playlist.m3u8.

This is the same infrastructure used by thousands of independent course platforms and communities. Our dedicated Bunny.net video downloader guide goes deep on the architecture. For Skool, the practical implications are:

Referer enforcement

Bunny CDN validates the Referer HTTP header on every segment request. If the Referer does not match an allowed origin (in this case, the Skool domain or the Bunny iframe origin), the CDN returns 403 Forbidden. This is the primary reason 95 percent of generic downloaders appear to "find" the M3U8 but then fail to download: they grab the playlist URL but send subsequent segment requests without the correct Referer, triggering the 403 on every single segment.

Token authentication on HLS playlists

Bunny Stream uses short-lived signed tokens appended to playlist and segment URLs. These tokens have an expiry window, typically one hour. If you copy an M3U8 URL and wait too long before fetching segments, the token expires and you get another 403. The solution is to start the download immediately after capturing the URL, while the session is still active.

The combination of "iframe isolation, Referer enforcement, token expiry, HLS segmentation" is exactly why most free browser downloaders silently show zero results on Skool pages. A tool needs to be built with Bunny-specific logic to handle all four constraints correctly. You can use the M3U8 detector tool to confirm whether a given Skool page is serving HLS content before attempting any download method.

2. Method 1: DevTools approach for one-off videos

This method works without installing any extension. It requires about five minutes of setup and is reliable for downloading individual videos. For bulk downloads across an entire classroom, Method 2 is faster.

Prerequisites

If you have not used the Network tab before, the guide on how to find an M3U8 URL in DevTools covers the full workflow visually, step by step.

Step 1: Open the Skool classroom lesson and press play

Navigate to the classroom section of your Skool community. Open the specific lesson or workshop replay you want to download. Press the play button on the embedded video. Wait two to three seconds for buffering to start - this is necessary because Bunny lazy-loads the HLS playlist on play. Nothing appears in the Network tab before that first play event.

Step 2: Open DevTools and go to the Network tab

Press F12 on Windows/Linux or Cmd+Option+I on Mac. Click the Network tab. If the request list is already populated with entries from page load, click the clear (trash) icon to clean the list, then replay a few seconds of the video to regenerate the relevant requests.

Step 3: Filter by m3u8

In the filter input at the top of the Network tab, type m3u8. Within one to two seconds of the video playing, one or two requests appear: the master playlist (resolution-agnostic) and possibly one quality-specific playlist. The master playlist URL contains just playlist.m3u8 without a resolution suffix.

Step 4: Copy the master playlist URL

Right-click the master playlist entry and select Copy > Copy link address. This URL, including the token query string at the end, is what you pass to ffmpeg. Do not close the browser tab yet - the session token stays valid as long as the tab is open and the token has not expired.

Step 5: Download with ffmpeg, passing the Referer

Open a terminal and run:

ffmpeg -referer "https://skool.com/" \
  -i "PASTE_YOUR_M3U8_URL_HERE" \
  -c copy skool-lesson.mp4

The -referer flag is the critical difference. Without it, every segment returns 403. The value https://skool.com/ is the parent page origin; Bunny's CDN accepts requests with a Referer matching the embedding domain. -c copy performs stream copy (no re-encoding), preserving full quality with no processing overhead.

If the video segments use AES-128 encryption (check the playlist file for an #EXT-X-KEY line), ffmpeg decrypts them automatically using the key URL referenced in the playlist. The output MP4 is fully playable without any additional steps. For more on encrypted HLS, see the guide on AES-128 HLS downloader methods.

Tip: a 45-minute 1080p Skool workshop replay typically produces an MP4 between 400 MB and 800 MB, depending on the original recording bitrate. Budget your disk space accordingly before starting a batch.

3. Method 2: One-click batch download via Vidora

Vidora was built with native Bunny.net support, which means it handles Skool videos correctly out of the box. The Referer header is injected automatically via declarativeNetRequest (Chrome's approved mechanism for request header modification), the iframe is scanned for the video rather than the parent page, and AES-128 key fetching is transparent. You do not need ffmpeg or any command-line knowledge.

Step-by-step: single classroom video

  1. Install Vidora from the Chrome Web Store. No account required. All processing happens locally in your browser - nothing is sent to Vidora's servers.
  2. Open your Skool classroom lesson. Log into your community, go to the Classroom tab, and open the specific lesson or module you want to save.
  3. Press play on the video. This is required. The Bunny Stream player does not request the HLS playlist until you press play, so Vidora has nothing to detect until that moment.
  4. Click the Vidora icon in your Chrome toolbar. The popup opens and shows the detected video with its title, the identified host (Bunny.net), and the available quality options (typically 720p and 1080p for most Skool communities).
  5. Select your preferred quality and click Download. Vidora fetches all HLS segments in parallel (six concurrent connections by default), reconstructs the audio and video tracks, and saves a clean MP4 to your Downloads folder. The filename is derived from the lesson title pulled from the page metadata.

For a 60-minute 1080p workshop replay on a 100 Mbps connection, the download typically finishes in 4 to 8 minutes. You can move to the next lesson tab while the current download runs in the background.

Batch downloading all classroom videos

Vidora processes one video per browser tab. For a classroom with 20 or 30 lessons, the fastest approach is the parallel tab workflow:

  1. Open lesson 1, press play, trigger the Vidora download
  2. Open lesson 2 in a new tab, press play, trigger the download
  3. Repeat across tabs. Each download runs independently without blocking the others

You can queue an entire classroom module in under 10 minutes of clicking, then leave everything to finish. For community owners backing up a full school before migrating platforms, this is the fastest path. The broader strategy for protecting your course library across multiple platforms is covered in the save online courses offline guide.

4. Skool-specific notes

Skool has a specific content architecture that affects which videos are downloadable and how. Understanding the differences saves time.

Classroom videos vs community wall videos

Skool separates two types of content: the Classroom (structured course lessons organized into modules) and the Community (a social feed where members post text, links, and sometimes embedded videos). Classroom videos are always Bunny.net-hosted HLS streams and download reliably with both methods in this guide. Community wall posts may contain videos embedded from external sources (YouTube, Loom, Twitter/X), or occasionally Bunny.net-hosted clips. For Loom videos posted in the community, the Loom downloader guide covers that specific case. YouTube-embedded posts are not covered here.

Workshop replays

Live workshops hosted on Skool (weekly calls, coaching sessions, group Q&A) are typically recorded and uploaded to the Classroom section as replays within 24 to 72 hours. Once published, a workshop replay is treated identically to any other classroom video: it is a Bunny.net HLS stream with the same Referer requirements. Press play on the replay, then follow either method above. The only wrinkle is that very recently uploaded replays may still be transcoding - if the quality selector in Vidora shows only 360p, wait a few hours and try again. Bunny transcoding usually completes within 30 minutes for most video lengths.

Comments with embedded videos

Community members sometimes post video comments or lesson feedback using Loom links or screen-recorded videos embedded in discussion threads. These are not classroom content and are not hosted on Bunny.net through Skool. They require platform-specific methods depending on the source (Loom, Vimeo, etc.).

Mobile app vs web - only web works

The Skool mobile app (iOS and Android) does not support browser extensions, and Chrome DevTools is not accessible on mobile devices. Every method in this guide requires a desktop browser on Windows, Mac, or Linux. If you only have access to the mobile app, you cannot use these methods directly. Open a browser tab on a desktop device logged into the same Skool account, and download from there.

Video quality available on Skool

Bunny.net auto-transcodes uploaded videos into a quality ladder: 360p, 480p, 720p, and 1080p are standard. If the creator uploaded 4K source material, 1440p and 2160p may also appear. In practice, most Skool classroom recordings are produced at 1080p from a laptop camera or screen recording tool, so 1080p is the ceiling in most communities. Vidora selects the highest available quality by default and lets you choose a lower tier if storage or bandwidth is a concern.

The technical capability to download Skool videos is straightforward once you understand the Bunny.net layer. Whether you should is a question with a factual answer that depends on your specific situation.

Content you legitimately paid to access

If you are an enrolled member of a Skool community and you paid for access, you have a legitimate interest in the content. Making a personal offline copy for your own study in most jurisdictions falls under fair use (United States), fair dealing (United Kingdom, Canada, Australia), or equivalent doctrines. Skool's platform Terms of Service, as of the date of this guide, do not explicitly prohibit personal archiving of content you have purchased access to. Individual community owners may set their own rules in their community guidelines - check those before bulk downloading.

Your own content as a community owner

If you created the content and uploaded it to your Skool community, you own the copyright. Downloading your own videos is a data portability action, not a legal grey area. You should have offline backups of everything you publish, and not just because of platform risk. Bunny.net is Skool's CDN, not your permanent storage. If Skool changes its terms, pricing, or infrastructure, your master copies should live somewhere you control.

The hard line: redistribution

Downloading for personal archiving is defensible. Sharing downloads with people who have not paid for access is copyright infringement in every relevant jurisdiction. This includes uploading to file-sharing sites, passing files to friends, or re-selling access. Vidora is designed as a personal archiving tool. Using it to pirate and redistribute content is a misuse of the tool and a legal liability for you personally. The Vidora alternatives page has notes on the legal posture of various downloader tools if you want a broader comparison.

6. What to do if a creator removes your access

This is one of the most common reasons people look up how to download Skool videos - and one of the most legitimate. Situations that trigger access removal include:

All of these situations have happened to real members of well-known communities. The lesson is simple: download while you have access, not after.

The responsible archiving workflow

The right time to archive is immediately after you join, not when you are about to lose access. Here is a practical workflow for anyone who has paid for a significant Skool community:

  1. Audit what is available. Go through the full Classroom section and note how many modules and lessons exist. Check whether workshop replays are published and accessible.
  2. Download systematically. Work module by module. Use Vidora's parallel-tab method: open multiple lessons simultaneously, trigger downloads, let them run while you continue auditing. Name files consistently (module number - lesson number - title).
  3. Archive to a dedicated folder. Keep a local folder structure that mirrors the classroom organization: CommunityName/Module-01/01-lesson-title.mp4. This makes it easy to find content later without the platform's navigation.
  4. Do not redistribute. Your archive is for your own study. The creator's intellectual property is their livelihood. Personal backup is defensible; sharing is not.

If you are already locked out and cannot download, your options are limited. You cannot access content you no longer have credentials to view. This is the strongest argument for proactive archiving. The broader framework for protecting access to all your paid course content, across Skool and other platforms, is covered in the guide to saving online courses offline.

For Skool community owners who are migrating to another platform and need to back up their school's content, the same workflow applies. You have full access to your own classroom, so the technical steps are identical. Vidora's one-click method makes this feasible for schools with dozens of lessons. Creators moving from Skool to platforms like Teachable (or vice versa) typically go through exactly this backup-and-re-upload process. The Vidora for course creators page covers the full migration backup workflow.

7. Frequently asked questions

Can I download a Skool workshop replay?

Yes, as long as the replay has been published to the classroom section. Workshop replays are served through Bunny.net Stream in exactly the same way as regular classroom videos. Press play on the replay page, then use Vidora or the DevTools method to capture and download the HLS stream. Very recently uploaded replays may still be transcoding - if the quality options look limited, wait one to two hours and try again.

What if the creator detects that I downloaded their video?

Skool and Bunny.net do not have a mechanism to identify individual downloads vs normal playback at the CDN level. Both generate the same HLS segment requests. Skool tracks lesson completion through player-reported events (the player sends a "completed" signal when you finish watching inside the Skool classroom interface). When you download via Vidora or ffmpeg, those completion events do not fire, so your progress dashboard may not update. The creator sees lesson completion rates in their analytics, but not individual download events. There is no "alert" sent to the creator when a member downloads a video.

Does this work on the Skool mobile app?

No. Browser extensions do not run inside the Skool mobile app, and Chrome DevTools is not accessible on iOS or Android. You need a desktop browser (Chrome, Edge, or another Chromium-based browser) on Windows, Mac, or Linux. Log into your Skool community in a desktop browser and use either method described in this guide. The mobile app and the web app share the same account credentials, so you can access your full classroom from a desktop even if you normally use mobile.

My Skool membership expired. Can I still use my local archive?

Yes. A video file saved to your local drive is yours to keep permanently, regardless of what happens to your Skool membership. It is a standard MP4 file that plays in any media player (VLC, QuickTime, Windows Media Player). You cannot access new classroom content after expiry, but any videos you downloaded while the membership was active remain fully accessible on your device indefinitely.

Will downloading videos break community rules?

Skool's platform-level Terms of Service do not explicitly prohibit personal archiving of content you have purchased access to. However, community owners can set their own rules in the community guidelines. Some creators explicitly allow offline downloads; others prohibit it. Check the community's "About" or "Rules" section before bulk downloading. Personal archiving for private study is generally tolerated; redistributing files to non-members violates both platform terms and copyright law in every jurisdiction.

Why does my download show "No video found" in Vidora?

The most common cause is that you did not press play before opening the Vidora popup. Bunny Stream on Skool lazy-loads the HLS playlist only when the play button is pressed. Click play in the Skool classroom player, wait two to three seconds for the first segments to buffer, then click the Vidora icon. If it still shows no video found, try reloading the lesson page and repeating the process. In rare cases, the lesson may use Bunny MediaCage DRM - check the Network tab for a license request to license.mediadelivery.net. If you see one, the stream is DRM-protected and cannot be downloaded by any tool.

Can I download community wall videos posted by other members?

Community wall posts on Skool can contain videos from various sources - Loom links, YouTube embeds, or occasionally Bunny.net-hosted clips. If the post contains a Loom video, see the Loom download guide. YouTube-embedded videos fall outside the scope of this guide. If a wall post contains a Bunny.net-hosted clip (less common), the same DevTools method applies: open DevTools, filter by m3u8, press play on the clip, and copy the playlist URL. Note that you should only download content from members who have explicitly made it available for download - community norms around member-posted content vary significantly.

Is there a way to download the entire Skool classroom at once?

There is no single-button "download all" feature in Vidora or any other tool specifically built for Skool's classroom structure. The parallel-tab method described in Method 2 is currently the fastest practical approach: open each lesson, press play, trigger the download, then move to the next lesson. For a 30-lesson classroom, this takes 10 to 15 minutes of clicking and then runs automatically. Power users comfortable with the command line can script the DevTools method by collecting all M3U8 URLs for a module and running ffmpeg in a loop. The M3U8 URL extraction guide covers how to gather those URLs systematically.

About the author

RGC Digital LLC builds Vidora. We specifically tested and engineered Bunny.net Referer handling so Skool and other Bunny-backed communities work correctly out of the box.

Related reading