Integration of Videos into Moodle

How to Embed Videos in Moodle: 5 Methods Compared

Moodle is one of the world’s most popular learning management systems – especially in education, public institutions, and NGOs. It’s powerful, flexible, and open source. But when it comes to embedding videos, things can get technical – and often frustrating.

Moodle offers several ways to add video to your courses. Each comes with trade-offs: some are quick but limited, others need more setup but give you better results.

This guide walks through all five options, explains what works when, and helps you pick the right approach for your setup.

👉 In this article, you'll learn:

  • What options you have for embedding videos in Moodle courses
  • Why uploading videos directly to Moodle isn’t the best idea
  • Which technical and legal pitfalls exist when using platforms like YouTube or Vimeo
  • And how to embed videos securely and GDPR-compliantly – with tools like Ignite Video

I’ll try not to get too technical – but there are a few places where it’s hard to avoid. Sorry in advance!

What options are there for embedding videos in Moodle?

Let’s start with the basics: Moodle offers several ways to add content to your courses – including video. Here’s a quick overview of the most common methods:

1. Uploading videos directly to Moodle

The simplest option: upload an MP4 file into a text block, label, or file resource. Moodle plays it with its built-in VideoJS player.

When this works:
Short clips under 50 MB, simple courses with a handful of videos, or internal test environments where performance is not critical.

When it doesn't:
Video files are large. A 60-minute lecture can easily reach 1-2 GB. Most Moodle installations limit uploads to 50-250 MB. Even when you can upload larger files, every video you add increases backup size, slows down course duplication, and puts load on your Moodle server whenever multiple learners stream at the same time.

There is also no adaptive streaming. Moodle serves the same file to every device, regardless of bandwidth. A learner on a train with unstable mobile data gets the same 1080p file as someone on a university network.

The official Moodle documentation recommends external hosting once your video library grows beyond a few files.

Verdict: Fine for small experiments. Not practical at scale.

2. Embedding from platforms like YouTube or Vimeo

"When server space or upload limits are restricted, or if you are seeking some video player features not available within Moodle, it is convenient to upload videos to an online site like YouTube or Vimeo." – Moodle Docs

The classic workaround: upload your video to YouTube or Vimeo, copy the embed code or URL, paste it into a Moodle text editor. Moodle recognizes the link and displays the player.

When this works: Public content where privacy is not a concern. YouTube is free, familiar, and works on every device.

When it gets complicated: YouTube shows ads, suggested videos, and YouTube branding. That is distracting in a learning context. More importantly, both YouTube and Vimeo may process user data and may set cookies or local storage identifiers. For European institutions, especially in the public sector, this may create a GDPR problem.

Verdict: Quick and free, but comes with privacy baggage and limited control. Not ideal for organizations with GDPR obligations.

Looking for a privacy-compliant alternative? Ignite delivers video without cookies, without consent banners, and without data leaving the EU. See how Ignite works with Moodle →

3. Self-hosting with your own video player

For teams with technical resources: host video files on your own server (or a CDN) and embed them using an HTML5 player like Video.js or Plyr.

When this works: Organizations that already manage their own infrastructure and need full control over every component. Common in universities with dedicated IT departments.

When it gets complicated: You are responsible for encoding, storage, bandwidth, player maintenance, and security. There is no adaptive streaming unless you set up HLS transcoding yourself, which means running FFmpeg pipelines, managing chunk files, and configuring a streaming server. Subtitles, chapters, and accessibility features need to be built or integrated manually.

This approach works, but it is a full-time job, not a side task.

Verdict: Maximum control, maximum effort. Only practical if you have a dedicated team.

4. External video hosting with embed code

Instead of storing video files on your Moodle server, you host them on a dedicated video platform and embed them using a short HTML code snippet. You paste the code into Moodle's text editor, and the external player handles everything: streaming, quality adjustment, player rendering.

embed with ignite

The benefits over direct upload:

  • Adaptive streaming (quality adjusts to each learner's device and connection)
  • No storage pressure on your Moodle server
  • Smaller backups, faster course duplication
  • Central video management: update a video once, it changes everywhere
  • Professional player with subtitle support, chapters, and branding options

This is the approach most Moodle administrators settle on once their video library grows beyond a few files. The key question is which platform you choose to host on.

When it gets complicated: as soon as you want to have advanced features like view time tracking or similar. In the end, it's just an embed.

5. MediaTime plugin: a full video library inside Moodle

For organizations managing dozens or hundreds of videos across multiple courses, the embed-code approach can become tedious. The MediaTime plugin by BDcent solves this by creating a centralized video library directly inside Moodle.

MediaTime within Moodle

How it works: MediaTime organizes videos on three levels: site-wide, by category, and per course. The Ignite connector syncs your hosted videos into that library automatically, including metadata, tags, and poster images. Course creators browse the library in the Moodle file picker, select a video, and embed it. No embed codes to copy, no tabs to switch.

What makes this different from method 4:

  • Course creators never need to open an external dashboard
  • Videos are uploaded directly through Moodle (Ignite encodes in the background)
  • One video in the library can be used in dozens of courses without duplicates
  • Combined with VideoTime, every video becomes a trackable activity with completion tracking and gradebook integration
Completion thresholds
Completion thresholds
Resume playback
Resume playback
Fast-forward blocking
Fast-forward blocking
Gradebook integration
Gradebook integration
Interactive transcripts and chapters
Interactive transcripts and chapters
Tracking stays in Moodle
Tracking stays in Moodle


Who this is for: Universities, corporate training departments, academies, and any organization where multiple people create courses and need access to a shared video library.

MediaTime is available in the Moodle Plugin Directory. The Ignite connector is live and in production use.

For the full picture, including the partnership with BDcent, feature details, and FAQ:
Explore the MediaTime integration →


Which method should you use?

Let´s see ...

You run a small Moodle setup with a handful of videos.
Start with method 1 (direct upload) or method 4 (external hosting with embed code). Both are quick, need no plugin, and get you started in minutes.

You need GDPR compliance and European hosting.
Avoid embeds from US-Hosters unless you have a solid consent setup. External hosting with a European provider (method 4) gives you a clean solution. If you want everything inside Moodle, the MediaTime plugin (method 5) keeps your team in one place.

You manage a growing video library across multiple courses.
Embed codes get tedious when you have 50+ videos and several course creators. MediaTime (method 5) gives you a central library with search, permissions, and reuse across courses.

You need completion tracking for certification or compliance training.
Methods 4 and 5 both work, combined with the VideoTime plugin for watch tracking, gradebook integration, and fast-forward blocking.


How Ignite fits in

Ignite APP Screenshot

Ignite is a European video hosting platform built for exactly these use cases. Hosted in Europe with adaptive HLS streaming and AI-generated subtitles in many languages. You get full control over player design, access restrictions, and content protection.

With Moodle, Ignite works on every level: a simple embed code for quick setups, HLS stream URLs for VideoTime tracking, or the full MediaTime integration for a central video library inside your LMS. The embed code works in any Moodle version, no plugin needed.

Step-by-step guides, the full integration overview, and a DPO compliance checklist:
Moodle integration page →

Details on the MediaTime plugin and the partnership with BDcent:
MediaTime integration →

Sounds interesting?

Then you can try all features for 30 days completely free of charge. No up front subscription, no need for payment details. Of course, we can also schedule a personal demo to show you what's possible with Ignite.

Excellent video quality
Excellent video quality
GDPR-compliant
GDPR-compliant
Hosted in Europe
Hosted in Europe