MOODLE_FILTER · FREE

VideoKavach for Moodle

A tiny text filter that turns [videokavach id="…"] into a watermarked, encrypted player. Drop it in any rich-text editor across your Moodle site.

GPL_v3 · REQUIRES_MOODLE_3.9+ · PHP_7.4+

What it gives you

Built for coaching institutes, universities, and online academies that already use Moodle for their LMS.

Anywhere a rich text editor lives

Course descriptions, lesson pages, forum posts, book chapters, assignment intros, quiz feedback — drop the shortcode and it just becomes a video.

Configurable watermark template

Choose what gets stamped on each viewer's frame. Use {email}, {fullname}, {username}, {id}, {ip} — alone or combined.

Automatic viewer identity

The current Moodle user is wired into VideoKavach as the watermarked viewer. No JWT signing, no API keys to wire up — just install and use.

Responsive by default

Modern aspect-ratio CSS inlined directly into the output. Works on any Moodle theme without enqueuing extra stylesheets.

Stays out of Moodle's way

Doesn't touch the database, doesn't add capabilities, doesn't create activities. A pure text filter — uninstall just removes it.

Companion to mod_videokavach

Use this filter for the simple drop-anywhere case. For full LMS integration with signed tokens and OTP, the mod_videokavach activity module handles that separately.

INSTALLATION

Four short steps

  1. 01

    Install the plugin

    In Moodle: Site administration → Plugins → Install plugins. Upload the ZIP. Moodle will walk you through the upgrade and database steps automatically.

  2. 02

    Enable the filter

    Site administration → Plugins → Filters → Manage filters. Set VideoKavach to On (active everywhere) or Off, but available (per-course opt-in).

  3. 03

    Configure the watermark

    Open Site administration → Plugins → Filters → VideoKavach. Set the watermark template — default {email} works for most setups. Try {fullname} ({email}) for richer attribution.

  4. 04

    Use the shortcode

    In any course description, lesson, forum post, or page, paste [videokavach id="YOUR_VIDEO_ID"]. Save. The filter replaces it with the player on the next page render.

USAGE

One shortcode, anywhere

Works inside the Atto editor, TinyMCE, plain HTML mode, forum posts, glossary entries — anywhere Moodle runs its filter chain on text.

[videokavach id="abc123def456"]

Optional attributes:

[videokavach id="abc123" aspect="4:3" autoplay="1"]
id — required
aspect — 16:9 or 4:3
autoplay — 1 or 0

Shorthand [kavach id="…"] also works.

WATERMARK

You control what gets stamped

Each viewer's video carries a personalised watermark, drawn live on every frame. The template is a Moodle admin setting — change it once and it applies site-wide.

{email}

[email protected]

Just the email

{fullname} ({email})

Alice Smith ([email protected])

Name + email

{email} · {ip}

[email protected] · 49.207.x.x

Email + IP for tighter forensics

{username} · {id}

alice · 12

When emails are anonymised

Supported placeholders: {email}, {username}, {fullname}, {id}, {ip}.

Common questions

Does this conflict with the existing mod_videokavach activity module?+

No — they're independent. The filter is a pure text-replacement plugin (filter/videokavach/). The activity module (mod/videokavach/) handles richer integration with signed tokens. You can install one, the other, or both side by side.

Will it work in the Moodle Mobile App?+

Not yet. The Moodle Mobile App sanitises iframes out of filter output for security. We're working on a mobile template path. For now, the filter works perfectly in any web browser.

Do students need a separate VideoKavach account?+

No. The filter creates per-viewer sessions automatically using each Moodle user's identity. Students don't see videokavach.com at all — only the embedded player.

How does the watermark identify the right student?+

The filter substitutes placeholders ({email}, {fullname}, etc.) from the currently logged-in Moodle user and passes that to VideoKavach. The watermark text is rendered on every frame, traceable in any screen recording.

What if my Moodle test user doesn't have an email?+

Use {fullname} or {username} in the watermark template instead — those are always present. You can mix: {fullname} ({email}) gracefully shows just the name when email is missing.

Get going in five minutes

Free plugin, free VideoKavach account to start. Upgrade only when your storage or bandwidth needs grow.