← Swarmify Blog

Video Hosting for Online Courses: The Complete Guide (2026)

Where to host paid course videos in 2026: real monthly costs at 50, 200 and 1,000 students, LMS limits for Teachable, Thinkific, Kajabi and LearnDash, and honest trade-offs.

James Christensen · March 3, 2026 · Updated October 1, 2026 · 18 min read
Video hosting platforms compared for online course creators

📋 TL;DR: Key Takeaways

• Check your LMS’s meter first: you can’t compare hosts until you know which limit your LMS applies. Teachable includes 1,000 GB of video storage per account; Thinkific caps monthly video bandwidth at 100-400 GB on its Basic, Start and Grow plans. A course with a few dozen active students can outgrow the smaller allowances.

• YouTube unlisted is fine for free content only: anyone with the link can watch, and YouTube decides the ads and related videos around your lesson.

• Cheapest raw delivery: Bunny Stream, from $0.005/GB delivered with a $1 monthly minimum, if you’re comfortable wiring it up yourself.

• Watch the bandwidth caps: Vimeo’s self-serve plans stop at 2 TB/month and Wistia Business includes 1 TB. SmartVideo bills by views and storage with unlimited bandwidth on every plan.

The right video host for an online course depends on two things: which LMS you already use and how many hours of video your students actually stream each month. If you’re on Teachable, Thinkific or Kajabi, start with the built-in hosting and learn where its limit sits. If you’re on WordPress with LearnDash, you need an external host, and the real choice is between cheap-but-DIY (Bunny Stream), per-minute building blocks (Cloudflare Stream), marketing-grade players with bandwidth caps (Vimeo, Wistia), and view-based pricing with no bandwidth meter (SmartVideo, which is our product).

This guide prices each option against the same course at 50, 200 and 1,000 students, using numbers from each vendor’s own pricing page, checked on October 1, 2026. Where a vendor doesn’t publish a number, I say so instead of guessing.

I’ve worked with a lot of course creators at Swarmify, and the path is usually the same: YouTube unlisted links, then Vimeo, then a bandwidth warning during a launch, then a search for something that doesn’t punish growth. The goal here is to let you skip the middle steps.

Why Course Video Is a Different Hosting Problem

Most video hosting platforms are priced for marketing video: a few short clips many people watch once. Course video is the opposite: a small library watched for hours by paying students.

That changes what matters:

  • Watch time, not video count, drives cost. A 30-lesson course is a small library, but 200 students each watching 10 hours a month is 2,000 hours of streaming. Plans that meter bandwidth or minutes delivered feel that directly.
  • Launches are spiky. Opening enrollment or dropping a new module sends a cohort to the same lessons in the same week. A monthly cap that looks generous on average can be hit in one launch.
  • The video is the product. If anyone with a link can watch or rehost your lessons, you’re giving away what you sell.
  • Completion matters more than views. You need to know whether a student finished a lesson, ideally inside your LMS, not just that someone pressed play.
  • Length shapes engagement. An MIT study of 6.9 million video-watching sessions, summarized by Quality Matters, recommends videos shorter than six minutes. Shorter lessons also start faster and are easier to rewatch on a phone.

Why Is YouTube Unlisted a Trap for Paid Courses?

Almost every creator starts here, because YouTube is free and uploading is easy. For a paid course, though, unlisted links cause predictable problems:

  • No access control. An unlisted video can be watched by anyone who has the URL. If a student shares the link, the lesson is public in practice.
  • You don’t control the viewing experience. Ads, related videos and YouTube’s branding are YouTube’s decisions, not yours: its embed documentation says you can’t turn related videos off, only limit them to your own channel. We’ve written about how YouTube embeds work against your website in more detail.
  • No per-student completion data. YouTube Studio reports aggregate watch time. It can’t tell you which enrolled student finished which lesson.

Video streaming technology for course delivery An unlisted link is only as private as the least careful person who has it.

YouTube still has a place: free mini-courses, lead magnets and public previews. When the content is free, anyone being able to watch it is the point.

What to Look for in Course Video Hosting

Before comparing platforms, here’s the checklist I’d use. No option wins every row, so decide which rows matter for your course.

Capability Why it matters for courses Priority
Adaptive bitrate streaming Drops quality instead of stalling when a student is on hotel wifi or mobile data Essential
Predictable cost as students grow Bandwidth caps and per-minute delivery fees grow with every enrollment; know which meter you're on Essential
LMS fit A plugin, a supported embed, or a URL your LMS's completion tracking understands Essential
Ad-free, unbranded player Paying students shouldn't see someone else's ads or recommendations High
Analytics Drop-off points tell you which lesson to re-record High
DRM / encryption Blocks downloading and, at the top tiers, screen recording; worth it for high-ticket courses in piracy-prone niches Depends on price point

Every Course Video Hosting Option, Compared

Prices below come from each vendor’s pricing page as of October 1, 2026.

Platform Starting price What it meters Best for Biggest limitation
YouTube (unlisted) Free Nothing Free courses, lead magnets No access control, YouTube's branding and recommendations
Vimeo $12/month billed annually, $20 monthly (Starter) Storage (2 TB on Starter) and 2 TB/month bandwidth Small courses that want a polished player Same 2 TB/month bandwidth limit on every self-serve plan
Wistia Free; Business $79/month billed annually Storage (250 GB+) and bandwidth (1 TB on Business) Marketing analytics and lead capture 1 TB bandwidth, $25 per extra user
Bunny Stream $1/month minimum, pay per use Storage from $0.01/GB, delivery from $0.005/GB Budget-minded, technically comfortable creators DIY setup; you assemble the pieces
Cloudflare Stream $5 per 1,000 minutes stored Minutes stored and $1 per 1,000 minutes delivered Developers building a custom platform API-first; delivery cost rises with every minute watched
Self-hosted Your web hosting bill Whatever your host limits Almost nobody No adaptive streaming or CDN by default
SmartVideo $19/month billed annually ($23 monthly) Views (10,000/month on Startup) and storage (1 TB); unlimited bandwidth WordPress/LearnDash course sites No DRM; not in LearnDash's video progression provider list

YouTube (Unlisted or Private)

YouTube is the right answer when the content is free. A public mini-course that sells a paid program benefits from YouTube’s reach and costs nothing to host.

It’s the wrong answer for anything you charge for. There’s no way to limit an unlisted video to enrolled students, and the player, ads and recommendations are YouTube’s, not yours.

Vimeo

Vimeo is the usual first step up. Starter is $12 per month billed annually ($20 billed monthly) with one user and 2 TB of storage; Standard is $25 and Advanced $75 on annual billing (Vimeo pricing, 2026). Every plan includes an ad-free player, and password privacy and unlisted links start on Starter.

The catch for courses is bandwidth. Vimeo’s FAQ says the self-serve bandwidth limit is 2 TB per month on Starter, Standard and Advanced alike, and that if you reach it you’ll be asked to lower consumption or talk to sales. Upgrading from Starter to Advanced buys more storage and features but not more bandwidth. Our breakdown of Vimeo’s bandwidth limits covers how that plays out in practice.

Wistia

Wistia has strong marketing analytics: engagement graphs, CTAs and lead-capture forms on Business, with marketing automation integrations only on the Business + Signals tier ($329/month billed annually). The Free plan includes 25 GB of storage and 200 GB of bandwidth with Wistia branding. Business is $79/month billed annually with 250 GB+ of storage, 1 TB of bandwidth, three users and $25 per additional user (Wistia pricing, 2026).

For a course, the 1 TB bandwidth line is the one to watch. Wistia was built to measure marketing video, so you’re paying for lead-gen tooling most course creators won’t use.

Bunny Stream

Bunny Stream is the price floor for course video. Its pricing lists free encoding, storage from $0.01/GB, CDN delivery from $0.005/GB, and a $1 monthly minimum (Bunny Stream pricing, 2026). Those are starting rates. Bunny’s pricing documentation shows $0.005/GB as the Volume tier rate for the first 500 TB a month, while the Standard tier costs $0.01/GB or more depending on the region served. Storage is billed on every encoded rendition, so a library can hold several times the footage you uploaded, and each extra storage region adds to the storage rate.

Bunny also offers Media Cage DRM, with AES-128 encryption and, on its Enterprise DRM tier, Widevine and FairPlay plus screen-recording and screenshot blocking (Bunny’s DRM docs say screen-grab protection isn’t available on Widevine L3 clients). AES-128 and download prevention carry no extra charge, while Enterprise DRM adds a $99 monthly base fee per library plus per-license fees.

The trade-off is setup. You manage uploads, libraries, embed settings and security yourself. LearnDash’s video progression needs Bunny’s HLS playlist URL rather than the iframe embed, with MP4 fallback turned on and a 720p-or-higher source. If that sounds manageable, Bunny is hard to beat on value. Our Bunny Stream review goes deeper.

Cloudflare Stream

Cloudflare Stream bills on two dimensions: $5 per month for each 1,000 minutes of video stored, and $1 per 1,000 minutes delivered. Encoding and ingress are free, and storage cost depends on duration, not file size (Cloudflare Stream pricing, 2026).

That model is simple, but delivery cost grows with every minute watched, and the documentation notes that client-side preloading and buffering count as delivered minutes. Stream is a building block for developers: great APIs, but not a finished course video library.

Self-Hosted (WordPress Media Library or S3)

Don’t do this for a paid course. A web server that serves a video file directly offers no adaptive streaming, no edge delivery and no analytics, and most hosting plans aren’t sized for hours of streaming per student. We’ve covered why WordPress isn’t built for video hosting in detail. S3 plus a CDN can work, but by the time you’ve added encoding, a player and access rules, you’ve built a worse version of a dedicated host.

SmartVideo

Full disclosure: this is our product, so I’ll be specific about both sides.

SmartVideo’s pitch to course creators is no bandwidth meter. Bandwidth is unlimited on every plan; you pay for views and storage instead. Startup is $19/month billed annually ($23 monthly) for 10,000 views and 1 TB of storage. Growth is $59/month ($69 monthly) for 50,000 views and 3 TB. Pro is $99/month ($119 monthly) for 150,000 views and 5 TB. Views are pooled across every video on your account, and how a view is counted decides your bill, so ask support how your lesson pages would count before you budget. If you go over your views, the overage is $2, $1 or $0.75 per 1,000 views depending on plan, billed on your next invoice, so a busy launch month costs a little more instead of hitting a wall.

On WordPress, the SmartVideo plugin adds a block, shortcodes and native widgets for Gutenberg, Elementor, Beaver Builder, Bricks, Breakdance and Divi 5, so you can place a lesson video anywhere in a LearnDash lesson or topic. It streams with HLS adaptive bitrate. Outside WordPress, it installs with a script snippet plus a <smartvideo> tag on Squarespace, Shopify or any HTML site. Our LearnDash + SmartVideo guide walks through the setup, and Learning Inclusion’s case study shows it in a real training program.

Analytics dashboard showing video engagement metrics Plan-level analytics differ: basic view stats on Startup, an analytics dashboard on Growth, real-time analytics on Pro.

Where SmartVideo falls short:

  • No DRM. SmartVideo doesn’t encrypt streams (no AES-128, signed URLs or Widevine/FairPlay). It blocks direct downloads and, on request, support can lock your key to your domains so other sites can’t play your videos. That lock is applied manually and keys off the referrer, so viewers whose browsers strip the referrer can be blocked too, and you should send support every domain you need, staging included. Until it’s applied, a copied key can run up views against your plan. If you need encryption that stops downloading, Bunny’s Media Cage or a DRM specialist like VdoCipher is the better fit.
  • LearnDash video progression. LearnDash documents its “watch the whole video before marking complete” feature for a fixed list of providers (YouTube, Vimeo, Wistia, Bunny.net, Spotlightr, Presto Player, Amazon S3 and Media Library files). SmartVideo isn’t on that list, and I haven’t verified forced completion with it, so if that feature is a hard requirement, test it before you commit.
  • Analytics depend on plan. Startup includes basic view stats; you need Growth for the analytics dashboard and Pro for real-time analytics and a custom watermark.

What Video Hosting Does Your LMS Already Include?

Your LMS decides half of this for you. Here’s what each platform publishes about its own video hosting.

LMS Built-in video hosting Published limit Using an external host
Teachable Yes 1,000 GB video storage per account; $15/month per extra TB Embed in lesson content
Thinkific Yes Under 3 GB per file; monthly bandwidth 100 GB (Basic), 200 GB (Start), 400 GB (Grow), 1,000 GB (Expand) Embed in lesson content
Kajabi Yes 4 GB per video file; no video storage or bandwidth figure on the pricing page, where plans limit products and contacts (Basic: 5 products, 2,500 contacts) Embed in lesson content
LearnDash (WordPress) No; video lives in your Media Library or an external host Set by your web host or video host Video progression supports YouTube, Vimeo, Wistia, Bunny.net, Spotlightr, Presto Player, S3 and local files; any other host embeds in lesson content

🎓 Running your course on WordPress or LearnDash? SmartVideo bills by views and storage with unlimited bandwidth on every plan, so a launch week can’t trip a bandwidth cap. It installs as a WordPress plugin with blocks and shortcodes for your lesson pages. See how SmartVideo works for course creators →

Course creators collaborating on online learning content Teachable meters storage, Thinkific meters bandwidth, and LearnDash leaves the choice to you.

The Thinkific numbers deserve a second look. In practice, a small cohort can cross the line: at roughly 1 GB per hour of streamed video (an assumption; actual usage depends on resolution and adaptive bitrate), 50 students watching 10 hours a month is about 500 GB, already above the Grow plan’s 400 GB. Thinkific says you’ll get up to 60 days to act before any restriction applies (Thinkific bandwidth limits, 2026). The fix is an upgrade or moving playback to an external host: Thinkific says the limit applies only to videos uploaded to Thinkific, not to externally hosted videos embedded by link. Our Teachable vs Thinkific comparison goes into this storage-versus-bandwidth split.

If you run LearnDash on WordPress, you have no built-in hosting to fall back on, so the choice of external host matters more.

What You’ll Actually Pay: Three Course Sizes

Here’s one course priced across platforms, using the same assumptions for every vendor.

Assumptions: 30 lessons averaging 30 minutes (15 hours, about 900 minutes and roughly 15 GB stored); each student watches 10 hours a month; about 1 GB delivered per hour watched; one video per lesson page. For SmartVideo we model one billed view per lesson watched, which is 20 views per student per month. That 20-view figure is a modeling assumption, not a measured billing rate: SmartVideo’s billed-view count can differ from lesson starts, so check how your pages would count before relying on it. Plan prices use annual billing where offered: SmartVideo’s $19 is $23 billed monthly and Vimeo Starter’s $12 is $20.

Platform 50 students
(500 GB / 30K min / 1K views)
200 students
(2 TB / 120K min / 4K views)
1,000 students
(10 TB / 600K min / 20K views)
YouTube $0 $0 $0
Vimeo (Starter) $12 $12, but at the 2 TB/month limit 5× the self-serve limit; custom Enterprise pricing
Wistia (Business) $79 $79, 2× the 1 TB included bandwidth 10× included bandwidth; talk to Wistia
Bunny Stream (lowest published rates) ~$3 ~$10 ~$50
Cloudflare Stream ~$35 ~$125 ~$605
SmartVideo $19 (Startup) $19 (Startup) $39 (Startup + 10K views overage) or $59 (Growth)

How the numbers work: Bunny = 15 GB × $0.01 storage + GB delivered × $0.005 (Volume tier), with a $1 minimum; storage is billed per rendition, but even ten times the source size would add only about $1.35, and the Standard tier at $0.01/GB in Europe and North America would double the delivery line. Cloudflare = $5 prepaid for up to 1,000 stored minutes + $1 per 1,000 minutes delivered, billed after use. SmartVideo’s 1,000-student figure is $19 + 10,000 extra views × $2 per 1,000, billed on the next invoice. Vimeo and Wistia show list price plus how far the course is over each plan’s published bandwidth.

A few things stand out:

  • Bunny Stream is the cheapest paid option at 50 and 200 students on the Volume tier, as long as you’re willing to do the integration work. At 1,000 students its roughly $50 is above SmartVideo’s $39 with these inputs, because Bunny meters every gigabyte delivered and SmartVideo meters views.
  • Cloudflare Stream becomes the most expensive option with a published price at 1,000 students, because every minute watched is billed. It’s priced for platforms that need its API.
  • Vimeo and Wistia look cheap until the bandwidth line. At 200 students this course is at Vimeo’s self-serve limit and double Wistia Business’s included bandwidth.
  • SmartVideo’s bill follows views, not bandwidth. Going from 50 to 1,000 students moves it from $19 to $39 on Startup (or $59 on Growth, which adds the analytics dashboard).

Illustration of a potted plant growing coins along a trellis shaped like a rising chart Hosting costs grow with enrollment, and each host’s meter decides how steeply.

Your numbers will differ. In this model, shorter lessons mean more views per watch-hour, and lower resolutions mean fewer gigabytes. Plug in your own lesson length and watch time before you decide.

How to Choose

Here’s the decision framework I’d give a friend:

You’re on Teachable or Kajabi: Start with the built-in hosting. It’s included, and it removes a whole integration from your stack. On Teachable, the published limit is 1,000 GB of video storage per account, which our 15-hour example course (roughly 15 GB) barely touches.

You’re on Thinkific: Use the built-in hosting, but check your plan’s monthly bandwidth against your students’ watch time before launch. If a launch will push you past the allowance, compare the next plan up with an external host embedded in your lessons.

You’re on WordPress with LearnDash: You need an external host. If you want the lowest bill at 50 to 200 students and LearnDash’s forced-completion video progression, Bunny Stream is the natural fit. If you’d rather avoid bandwidth math and set-up work, SmartVideo’s plugin is the simpler path. Test whether you need video progression first, since SmartVideo isn’t on LearnDash’s supported list.

Piracy is a documented problem in your niche: Pay for DRM. Bunny’s Media Cage and VdoCipher both sell it, and SmartVideo doesn’t.

You need marketing analytics more than course delivery: Wistia, if the 1 TB bandwidth fits your audience.

The course is free: YouTube. Its reach helps, and access control doesn’t matter.

Student learning from an online course on laptop Pick the host whose meter matches how your course grows: storage, bandwidth, minutes or views.

One more piece of advice: don’t optimize the wrong problem. The MIT data above points to lesson length as a bigger lever on engagement than any hosting switch. Cut long lectures into short, focused lessons first. Then pick the host whose pricing model fits how your students actually watch. If you sell access by subscription rather than one-off courses, our guide to video hosting for membership sites covers that angle.

Compare SmartVideo Plans →

Frequently Asked Questions

Can I use YouTube for a paid online course?

You can, but you give up access control. Anyone with an unlisted link can watch the video, and YouTube controls the ads, branding and recommendations around your lesson. For free courses and lead magnets that’s fine. For paid content, use a host that limits playback to your site.

Which video host works best with LearnDash?

LearnDash doesn’t host video itself, so you’ll pair it with an external host. Its video progression feature supports YouTube, Vimeo, Wistia, Bunny.net, Spotlightr, Presto Player, Amazon S3 and Media Library files. Of the paid hosts priced in this guide, Bunny.net has the lowest published rates, and YouTube is free but has no access control. LearnDash also lets you embed any other video in lesson content, though you won’t get all of the video progression options.

How much bandwidth does an online course use?

Multiply students by hours watched per month by the data per hour. At around 1 GB per streamed hour, 200 students watching 10 hours each is about 2 TB a month. That’s already Vimeo’s self-serve monthly limit and double Wistia Business’s included 1 TB, and launches can push it higher.

Does Thinkific limit video bandwidth?

Yes. Thinkific publishes monthly bandwidth limits of 100 GB on Basic, 200 GB on Start, 400 GB on Grow and 1,000 GB on Expand, with higher limits on Plus tiers. If you go over, Thinkific notifies you and gives you up to 60 days to act before restrictions apply. Individual video files must also be under 3 GB.

How much video storage does Teachable include?

Teachable’s usage-fee policy says every plan includes 1,000 GB of video storage per account. Beyond that, it charges $15 per month for each additional terabyte. Teachable doesn’t publish a streaming bandwidth cap on that page.

Do I need DRM to protect my course videos from piracy?

Most course creators don’t need it. DRM adds cost and setup, and a determined viewer can still record the screen unless you pay for the top protection tiers. It’s worth it for high-priced courses in niches where piracy is a documented problem, and Bunny’s Media Cage and VdoCipher both offer it. For everyone else, layer cheaper defenses: keep videos behind your LMS login, use a host that doesn’t expose public share links, and add watermarks where your plan supports them.

Should I self-host course videos on my WordPress server?

No. Serving video files straight from your web server gives students no adaptive streaming, no edge delivery and no analytics, and many hosting plans aren’t sized for hours of streaming per student. A dedicated host costs little and avoids those problems.

What’s the ideal video length for online courses?

Short. The MIT study of 6.9 million video sessions that Quality Matters summarizes recommends keeping videos under six minutes. If a topic needs 30 minutes, split it into several focused lessons; shorter files also start faster on mobile connections.

What’s the cheapest video hosting for a small course?

For raw hosting, Bunny Stream: at its lowest published rates, a 50-student course in our example costs about $3 a month, with a $1 minimum. If your LMS includes hosting, like Teachable or Kajabi, there’s no separate video bill within its limits. Expect to trade setup time for the savings with Bunny.

Can I switch video hosts after launching my course?

Yes, but plan for the work. You’ll re-upload every video, replace every embed in your lessons, and re-check any completion tracking that depended on the old host. It’s easier to choose a host whose pricing model fits your growth before launch than to migrate mid-cohort.

Course Videos That Don’t Buffer or Charge Per Student

Buffer-free course videos with no per-student fees. Works with LearnDash, Teachable, and any LMS.

See SmartVideo for course video
10% conversion increase
“We’ve had a 10% increase in conversion rate from lead to customer.”
Pedro C.
Dir. of Digital Marketing, White Jacobs
Instant side-by-side winner
“SmartVideo loaded immediately; YouTube took 5 seconds to start. It became a no-brainer.”
Aaron H.
IT Director, PizzaTV
Rankings improved
“Our search-engine rankings went up after we switched over to Swarmify.”
Philip A.
Owner, Ignite Images