Tutorial · Teachable

How to Download Teachable Course Videos for Offline Access

A Teachable-specific guide for two legitimate audiences: course creators archiving their own content, and students saving paid lessons for offline study. The tricky part is that Teachable does not deliver video itself - it delegates to Bunny.net, Vimeo, or Wistia, and each host needs a different approach. Vidora auto-detects all three and handles authentication in one click.

By the Vidora team 11 min read

1. Why Teachable does not offer a download button

Teachable is an LMS (learning management system) platform, not a video host. Its business model is built around giving course creators control over the student experience: drip-scheduled lessons, completion tracking, certificates, quiz gates. A built-in download button would undercut that model by letting students grab everything at once and disappear.

There is also a commercial incentive. Teachable earns a percentage of each sale on lower-tier plans. Keeping students inside the platform increases the chance they enroll in more courses. Downloads break that loop.

The result is a deliberate UX-as-DRM approach: no right-click, no obvious export option, the player wrapped in an iframe, and the video streamed rather than linked directly. None of this is cryptographic DRM (unlike MasterClass or some enterprise LMS platforms). The content is still technically accessible if you know where to look, which is exactly what this guide covers.

If you want the broader picture of which course platforms support offline access and which ones use real DRM, the parent guide on saving online courses for offline access covers the full landscape with a comparison table.

2. How Teachable actually hosts your videos

This is the core technical insight that most guides miss. Teachable does not transcode or stream video from its own servers. When a course creator uploads a video to a Teachable school, the platform delegates delivery to one of three third-party video hosts, depending on the creator's plan and settings:

Option A: Bunny.net Stream

The default for most Teachable plans since 2023. Bunny.net is a CDN-based video platform that serves HLS playlists from iframe.mediadelivery.net or b-cdn.net edge nodes. The embedded player URL looks like:

https://iframe.mediadelivery.net/embed/{LIBRARY_ID}/{VIDEO_GUID}

Bunny videos use token-signed HLS with a strict Referer check on every segment request. Generic downloaders hit a 403 error because they strip or misformat the Referer header. Full technical details are in the dedicated Bunny.net video downloader guide.

Option B: Vimeo Pro / Vimeo OTT

Creators who already have a Vimeo Pro or Business account can connect it to Teachable as the video source. These videos appear inside a standard Vimeo player iframe at player.vimeo.com, but with private settings that block public access. Vimeo private videos require a valid Referer matching the whitelisted domain (in this case, the .teachable.com school domain or the creator's custom domain). Without the correct Referer, the player returns a permission-denied error. Our dedicated guide covers how to download private Vimeo HLS streams if you want the full breakdown.

Option C: Wistia

Less common but present, especially among creators who migrated from older Teachable plans or who use Wistia for marketing elsewhere. Wistia delivers via its own CDN using a proprietary player, with media files served from embed-ssl.wistia.com and fast.wistia.net. Wistia uses signed URLs rather than Referer-based auth, but the effective behavior is similar: raw segment requests from outside the player context get rejected. The guide on downloading Wistia videos covers this host specifically.

How to identify which host a specific course uses

Two ways to check without any special tools:

  1. Visual inspection of the player URL. Right-click the lesson video and choose "Inspect" or open DevTools (F12). In the Elements tab, search for iframe. The src attribute will contain one of: iframe.mediadelivery.net (Bunny), player.vimeo.com (Vimeo), or fast.wistia.net or embed-ssl.wistia.com (Wistia).
  2. Vidora auto-detect. Install Vidora, press play on the video, and open the Vidora popup. The popup shows the detected host alongside the video title and available qualities. No manual inspection needed.

If you want to go deeper on identifying stream sources manually, the guide on how to find an M3U8 URL in DevTools walks through the Network tab workflow step by step. You can also run a quick pre-flight check with the M3U8 detector tool directly from your browser.

3. Method 1: Per-platform manual approach via DevTools

If you prefer not to use an extension, the manual route works on any Chromium-based browser. The workflow is the same for all three hosts: find the playlist URL in the Network tab, then fetch it with the right headers. The tricky part is that the headers differ by host.

For Bunny.net-hosted Teachable courses

Open DevTools (F12), go to the Network tab, filter by m3u8, press play. Copy the master playlist URL (the one at b-cdn.net or vz-*.b-cdn.net). Then run:

ffmpeg -referer "https://iframe.mediadelivery.net/" \
  -i "PASTE_M3U8_URL_HERE" \
  -c copy lesson-01.mp4

The -referer flag is mandatory. Without it, every segment returns 403. See the full Bunny walkthrough at Bunny.net video downloader guide.

For Vimeo-hosted Teachable courses

Filter the Network tab by m3u8. Vimeo playlists come from vod-adaptive-ak.vimeocdn.com or similar. The Referer must match the Teachable lesson page domain. Run:

ffmpeg -referer "https://YOURSCHOOL.teachable.com/" \
  -i "PASTE_VIMEO_M3U8_URL" \
  -c copy lesson-01.mp4

If the Vimeo video is also behind an OAuth token (Vimeo OTT), you may also need to pass the Authorization header from the Network tab. Full details in the Vimeo download guide.

For Wistia-hosted Teachable courses

Wistia's player fetches an asset manifest from fast.wistia.net/embed/medias/{MEDIA_ID}.json. Inside that JSON, the assets array contains direct MP4 URLs at various bitrates. You can copy the highest-quality MP4 URL and download it directly - no HLS muxing needed for most Wistia videos. Full method in the Wistia downloader guide.

For all three manual methods, the prerequisite skill is knowing how to read the Network tab. The guide on finding an M3U8 URL teaches this in about five minutes.

4. Method 2: Vidora one-click (recommended for most users)

Vidora was built specifically to handle the authentication complexity described above. It ships with native support for Bunny.net, Vimeo private players, and Wistia - the exact three hosts that appear in Teachable schools. Auto-detection means you do not need to know which host a given course uses before you start.

Step-by-step

  1. Install Vidora from the Chrome Web Store. It requires no account, stores nothing in the cloud, and works entirely locally in your browser.
  2. Open your Teachable lesson. Navigate to the lesson page inside your enrolled course.
  3. Press play on the video. This is required - Teachable's video hosts lazy-load the playlist on play, so the URL does not exist until you press play.
  4. Click the Vidora icon in your Chrome toolbar. The popup appears, showing the detected host (Bunny / Vimeo / Wistia), the video title pulled from the page, and the available qualities.
  5. Select your quality (1080p is usually the best available) and click Download.
  6. Vidora fetches all HLS segments in parallel (or the Wistia MP4 directly), muxes audio and video, and writes a clean MP4 to your Downloads folder. The filename is derived from the lesson title so it sorts naturally.

For a standard 30-minute 1080p Teachable lesson over a good connection, the download takes 2 to 4 minutes. You can trigger the next lesson download while the current one is finishing in the background.

Batch downloading a full course module

Vidora processes one lesson at a time per tab. For a module of 10 lessons, the practical workflow is:

  1. Open lesson 1, press play, trigger download from the Vidora popup
  2. Open lesson 2 in a new tab, press play, trigger download
  3. Continue across tabs. Each download runs independently in the background

You do not need to wait for one to finish before starting the next. Browsers handle parallel downloads naturally. A 20-lesson module can be queued in under 5 minutes of clicking, then left to finish while you do other work.

This section matters. The technical capability exists; whether you should use it is a separate question with a factual answer that depends on your situation.

Your own content (course creators)

If you created the course, you own the copyright. Downloading your own videos from Teachable is not a legal question - it is a data portability question. You are retrieving your own intellectual property. Do it, back it up in multiple places, and do not rely on Teachable as your sole copy.

Content you legitimately paid for (students)

In most jurisdictions, making a personal offline copy of content you have paid to access is permitted under fair use (US), fair dealing (UK, Canada, Australia), or similar doctrine. Teachable's own Terms of Service (as of 2026) do not explicitly prohibit personal downloads of content you have purchased access to. However, terms change. Before bulk downloading, review the current Teachable Terms of Service and, if in doubt, ask the course creator directly. Many creators explicitly allow offline access and will say so if you email them.

Rule of thumb: if you paid for it and you are archiving it for your own personal study, you are almost certainly in the clear. If you are distributing copies to others who have not paid, that is piracy, regardless of how you frame it.

Content you did not pay for

Do not. This includes courses purchased by someone else and shared with you, "preview" content beyond the free sample, and courses you cancelled before download. Downloading content you do not have legitimate access to is copyright infringement in every jurisdiction. Vidora is designed for legitimate backup use, not piracy, and the same legal exposure applies to any tool you use.

What about creator permission?

Some creators actively encourage students to download their content for offline study, especially when the course is targeted at travelers or learners in low-bandwidth regions. If you are not sure, email the creator. A brief "I paid for your course, can I download it for offline study?" gets a yes in the majority of cases. That permission also protects you from any ambiguity in the platform's TOS. For a full breakdown of what is and is not legal across popular course platforms, see the course offline guide and the Vidora alternatives page which compares the legal posture of different tools.

6. Edge cases: DRM, captions, and full-module batch download

DRM-protected Teachable courses

Most Teachable courses are not DRM-protected. Teachable's default Bunny.net integration uses AES-128 encryption for transport security (the key is in the playlist and automatically used by the player), but this is not the same as Widevine or FairPlay DRM. AES-128 streams are downloadable by design - the key is present in the playlist.

A small number of Teachable Enterprise customers enable Bunny MediaCage DRM. These courses display no visual difference to the student but will fail with any downloader, including Vidora. If a download fails consistently after pressing play, DRM is the most likely cause. No workaround exists for Widevine-protected streams short of screen recording.

Caption and subtitle files

Teachable renders captions through the video host's player, not through a Teachable-native system. This means:

If captions are important for your learning workflow, download the .vtt files separately and keep them alongside the MP4 in the same folder. Most media players (VLC, IINA) auto-load a .vtt or .srt with the same filename as the video.

Batch downloading a full course module

There is currently no Teachable-specific batch tool that scrapes your entire enrolled course automatically. The most practical approach with Vidora is the parallel-tab method described in Method 2 above. For power users comfortable with the command line, an alternative is to use the DevTools method to collect all M3U8 URLs for a module, then run a shell script that loops through them with ffmpeg. This is documented in the M3U8 URL extraction guide.

Course access after cancellation or refund

Teachable course access is typically lifetime (for one-time purchases) or duration-based (for subscription courses). If you purchased lifetime access, the course should remain available even if you cancel your student account. However, if the course creator unpublishes the course or deletes their Teachable school, your access disappears regardless. This is one of the strongest arguments for downloading a backup the day you purchase, before anything changes.

7. Frequently asked questions

Is downloading a Teachable course I paid for legal?

In most cases, yes - for personal offline use. US fair use doctrine and similar provisions in most countries cover personal copies of legitimately purchased content. Teachable's TOS (as of 2026) does not explicitly ban it for paid content. Always verify the current terms and, if uncertain, contact the creator. Distributing your copy to others is a different story: that is copyright infringement.

Will Teachable detect that I downloaded a video?

Teachable cannot distinguish a download from normal playback at the CDN level. The same HLS segment requests fire in both cases. Teachable's platform may log completion events (video watched, lesson completed), but these are triggered by the player's built-in reporting, not by raw network requests. Vidora operates outside the player, so completion events may not fire during a download - this means lesson progress may not update if you only download and never watch inside the player.

Can I download a Teachable course that was shared with me?

No. If you did not pay for the course yourself and do not have your own enrolled account, you do not have legitimate access. Downloading content you do not have rights to is infringement regardless of how easy the technology makes it. This guide is written for students with valid enrollment and creators accessing their own content.

If I cancel my Teachable subscription, do I lose the videos I downloaded?

No. Once a file is on your local drive, it is yours to keep regardless of what happens to your account. This is the main value of downloading: your access to the local copy is not contingent on Teachable, the creator, or your subscription status. Make sure you download before you cancel if your enrollment is time-limited.

What video quality can I download from Teachable?

It depends on what the creator uploaded and which host they use. Bunny.net auto-transcodes to multiple qualities up to 1080p (and 4K if the source is 4K). Vimeo Pro delivers up to the original upload resolution. Wistia similarly preserves the original quality. In practice, most Teachable courses are recorded at 1080p. Vidora selects the highest available quality by default, but you can choose a lower quality from the popup to save bandwidth or storage.

My Teachable course uses Bunny.net but Vidora shows "no video found". What went wrong?

Most likely you did not press play before opening the Vidora popup. Bunny lazy-loads the HLS playlist on play. Click play in the Teachable player, wait two seconds for the first segment to load, then open Vidora. If it still fails, the course may use Bunny MediaCage DRM - check the Network tab for segment URLs ending in ?token= combined with a DRM license request to license.mediadelivery.net. If you see both, the stream is DRM-protected and cannot be downloaded.

Can I download course worksheets, PDFs, and attachments too?

Yes, but separately. Teachable usually serves PDFs and downloadable resources as direct links - look for a download button on the lesson page, or right-click and "Save link as" on any file link. These are plain file downloads and do not require any special tool. Videos are the complex part; attachments are straightforward.

Does this work on Teachable courses with a custom domain?

Yes. The custom domain is a cosmetic wrapper. The underlying video host (Bunny, Vimeo, or Wistia) is the same regardless of whether the school URL is courses.yourinstructor.com or yourinstructor.teachable.com. Vidora detects the video iframe inside any Teachable page, custom domain or not.

About the author

RGC Digital LLC builds Vidora. We reverse-engineered the Bunny.net, Vimeo, and Wistia delivery models specifically so Teachable users do not have to figure it out themselves.

Related reading