Protecting your videos

What VideoKavach does to keep your lectures off Telegram — and, just as importantly, what it cannot do.

Read this part first

No video platform can make copying impossible. Anything a student can watch, they can point a phone at. What good protection does is remove the easy methods and make the remaining ones traceable back to the person who leaked it. Every layer below is built on that idea.

The layers

LayerWhat it stopsWhat it does not
Encrypted streamingDownloading the file with a browser extension or a download managerScreen recording
Identity watermarkAnonymous sharing — a leaked copy names the leakerThe leak itself, only who can be blamed for it
Domain allowlistYour embed code working on someone else's websiteA student who is legitimately logged in
Session capOne login being streamed by a whole batch at onceSequential sharing at different times
Device limitAn account being used across unlimited phonesTwo people sharing one phone

Encrypted streaming

Secure videos are split into short encrypted segments. The decryption key is fetched separately for each viewing session and only released to a viewer holding a valid playback token, so the file never exists as a single downloadable object.

VideoKavach also rejects requests from the tools people typically reach for first — yt-dlp, youtube-dl, ffmpeg, curl, wget and similar.

A determined attacker can work around this

User-agent blocking is a speed bump, not a wall — it can be spoofed by anyone who knows how. It stops casual copying, which is the majority of it. The watermark is what protects you against the rest.

Identity watermark

The student's email, phone or ID is drawn faintly over the picture and moves to a new position every five seconds, so it cannot be cropped out reliably. If a recording of your lecture surfaces in a group, the watermark tells you which account it came from.

It stays inside the picture area rather than the player frame. On a phone held upright, where the video occupies a band across the middle, the watermark sits in that band — so a crop to just the picture still carries it.

Adjusting it

Under Settings → Player branding, watermark opacity runs from 0 to 100%. Higher is harder to remove but more distracting.

Setting opacity to 0 turns it off

At 0% the watermark is not merely faint, it is absent, and leaked recordings become untraceable. Only use 0 for free content you do not mind being shared.

Making the watermark meaningful

A watermark is only useful if it carries a real identity. There are two ways to supply one, and they offer very different guarantees.

URL parameters

Add ?viewerId=…&email=…to the embed. Quick to set up, but a student can edit them to someone else's name.

Fine behind your own login, with domains locked.

Signed embed token

Your server signs the identity with your API key. It cannot be altered without invalidating the signature.

Use for paid content. How to sign one.

Domain allowlist

Restricts which websites may embed your videos. Set an account-wide default under Settings, and override it per video where needed.

  1. 1. List your domains

    myinstitute.com, lms.myinstitute.com, or *.myinstitute.com for every subdomain.

  2. 2. Check your staging site too

    Forgetting a test domain is the usual reason a video works live but not in preview.

Empty means unrestricted

An empty allowlist allows every domain. A video page will warn you when neither it nor your account has any domain set.

Concurrent session cap

Each student may stream from a limited number of places at once — three by default. When a fourth starts, the oldest session is dropped rather than the new one being refused, so a student who switched devices is never locked out of their own account.

This is what stops one login being passed around a batch to watch simultaneously.

Device limits and offline downloads

For institutes using the native app, students may register a limited number of devices. Downloaded videos stay encrypted on the device and carry the same watermark.

Device limits behave differently from session caps

Going over the device limit is refused outright instead of dropping the oldest device. Removing a device automatically would delete the lectures a student had downloaded for offline study — possibly right before an exam, on a train with no signal. Students free a slot themselves from the manage-devices screen.

Device budgets are counted per institute. A student buying courses from two institutes on the same app gets a full allowance from each.

A sensible starting configuration

  • Upload paid content as Secure, never Public MP4.
  • Set your domain allowlist in Settings on day one.
  • Keep watermark opacity somewhere around 40–60%.
  • Pass a real student identity — signed tokens for anything paid.
  • Leave the session cap at its default unless students complain.