#dt-videoshield-wrapper * { box-sizing: border-box; }
#dt-videoshield-wrapper a { text-decoration: none; }
.dt-vs-container {
max-width: 1240px;
margin: 0 auto;
padding: 0 24px;
}
.dt-vs-hero {
padding: 85px 0 60px;
text-align: center;
background: radial-gradient(circle at 50% 20%, rgba(244, 63, 94, 0.22) 0%, rgba(6, 9, 19, 0) 70%);
position: relative;
}
.dt-vs-badge {
display: inline-flex;
align-items: center;
gap: 8px;
background: rgba(244, 63, 94, 0.12);
border: 1px solid rgba(244, 63, 94, 0.4);
color: #fb7185;
padding: 8px 20px;
border-radius: 9999px;
font-size: 13px;
font-weight: 700;
letter-spacing: 0.05em;
text-transform: uppercase;
margin-bottom: 24px;
}
.dt-vs-hero h1 {
font-size: clamp(32px, 5.2vw, 56px);
font-weight: 800;
line-height: 1.15;
margin: 0 auto 20px;
max-width: 1050px;
color: #ffffff;
letter-spacing: -0.02em;
}
.dt-vs-gradient {
background: linear-gradient(135deg, #fb7185 0%, #f43f5e 50%, #fb923c 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.dt-vs-hero p.subtitle {
font-size: clamp(16px, 2vw, 20px);
color: #94a3b8;
max-width: 880px;
margin: 0 auto 36px;
line-height: 1.6;
}
.dt-vs-ctas {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 16px;
margin-bottom: 36px;
}
.dt-vs-btn-primary {
display: inline-flex;
align-items: center;
gap: 10px;
background: linear-gradient(135deg, #e11d48 0%, #be123c 100%);
color: #ffffff !important;
padding: 16px 36px;
border-radius: 12px;
font-size: 16px;
font-weight: 700;
box-shadow: 0 10px 25px -5px rgba(225, 29, 72, 0.45);
transition: all 0.25s ease;
border: 1px solid rgba(255, 255, 255, 0.2);
}
.dt-vs-btn-primary:hover {
transform: translateY(-2px);
box-shadow: 0 16px 32px -6px rgba(225, 29, 72, 0.6);
}
.dt-vs-btn-secondary {
display: inline-flex;
align-items: center;
gap: 10px;
background: rgba(15, 23, 42, 0.8);
color: #cbd5e1 !important;
padding: 16px 32px;
border-radius: 12px;
font-size: 16px;
font-weight: 600;
border: 1px solid rgba(255, 255, 255, 0.12);
transition: all 0.25s ease;
}
.dt-vs-btn-secondary:hover {
background: rgba(30, 41, 59, 0.9);
color: #ffffff !important;
border-color: #fb7185;
}
.dt-vs-trust {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 20px;
margin-top: 24px;
font-size: 13.5px;
color: #94a3b8;
}
.dt-vs-trust span {
display: inline-flex;
align-items: center;
gap: 6px;
color: #cbd5e1;
}
/* Features Grid */
.dt-vs-features-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
gap: 24px;
margin: 40px 0;
}
.dt-vs-card {
background: #0b1120;
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 20px;
padding: 32px;
transition: all 0.3s ease;
position: relative;
}
.dt-vs-card:hover {
transform: translateY(-4px);
border-color: rgba(244, 63, 94, 0.4);
box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.5);
}
.dt-vs-card-icon {
width: 52px;
height: 52px;
border-radius: 14px;
background: rgba(244, 63, 94, 0.12);
border: 1px solid rgba(244, 63, 94, 0.3);
display: flex;
align-items: center;
justify-content: center;
font-size: 24px;
margin-bottom: 20px;
}
.dt-vs-card h3 {
font-size: 20px;
font-weight: 800;
color: #ffffff;
margin: 0 0 12px;
}
.dt-vs-card p {
font-size: 14.5px;
color: #94a3b8;
line-height: 1.6;
margin: 0;
}
/* Interactive Player Simulator */
.dt-vs-player-box {
background: #0b1120;
border: 1px solid rgba(244, 63, 94, 0.3);
border-radius: 24px;
padding: 36px;
margin: 40px 0;
}
.dt-vs-screen {
position: relative;
background: #000;
border-radius: 16px;
overflow: hidden;
aspect-ratio: 16/9;
display: flex;
align-items: center;
justify-content: center;
border: 1px solid #1e293b;
}
.dt-vs-floating-watermark {
position: absolute;
color: rgba(255, 255, 255, 0.45);
font-size: 13px;
font-family: monospace;
font-weight: 700;
pointer-events: none;
background: rgba(0, 0, 0, 0.3);
padding: 4px 10px;
border-radius: 6px;
border: 1px dashed rgba(255, 255, 255, 0.2);
user-select: none;
transition: all 1.5s ease-in-out;
}
/* Pricing Grid */
.dt-vs-pricing-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
gap: 28px;
margin: 40px 0;
}
.dt-vs-price-card {
background: #0b1120;
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 20px;
padding: 36px 28px;
display: flex;
flex-direction: column;
justify-content: space-between;
position: relative;
transition: all 0.3s ease;
}
.dt-vs-price-card.featured {
border: 2px solid #fb7185;
box-shadow: 0 0 35px rgba(244, 63, 94, 0.25);
}
.dt-vs-price-badge {
position: absolute;
top: -14px;
left: 50%;
transform: translateX(-50%);
background: linear-gradient(135deg, #e11d48 0%, #fb7185 100%);
color: #ffffff;
font-size: 11px;
font-weight: 800;
letter-spacing: 0.08em;
padding: 4px 14px;
border-radius: 9999px;
text-transform: uppercase;
}
.dt-vs-price-val {
font-size: 42px;
font-weight: 900;
color: #ffffff;
margin: 16px 0 4px;
}
.dt-vs-check-list {
list-style: none;
padding: 0;
margin: 24px 0 32px;
display: flex;
flex-direction: column;
gap: 12px;
}
.dt-vs-check-list li {
font-size: 14px;
color: #cbd5e1;
display: flex;
align-items: center;
gap: 10px;
}
.dt-vs-check-list li span { color: #fb7185; font-weight: 800; }
Protect Your Moodle Courses with VideoShield Pro
Eliminate screen recording theft and unauthorized course ripping. Dynamic moving viewer watermarks, canvas rendering obfuscation, anti-screen capture defense, and watch-time gradebook sync—without expensive external DRM bandwidth fees.
✔ 100% Unencrypted Source Code
✔ Native Moodle Activity (
mod_videoshield)✔ 30-Day Money-Back Guarantee
How VideoShield Pro Stops Video Piracy Cold
Standard HTML5 video players expose raw MP4 links and let users screen record with zero repercussions. VideoShield Pro changes the game.
Dynamic Moving Watermarks
Overlays learner name, email, IP address, and session timestamp continuously floating across the video. The position, angle, and opacity randomly shift, making automated cropping or blurring mathematically impossible.
Anti-Screen Capture Shield
Detects OBS Studio, Camtasia, QuickTime screen grabbers, and browser tab captures. When capture software is triggered, the player immediately blacks out the stream or displays an active copyright violation banner.
Encrypted Stream Obfuscation
Prevents right-click “Save Video As”, blocks developer tools / inspect element sniffing, and splits video delivery into encrypted in-memory blobs. Raw direct video download URLs are never exposed to the client browser.
Watch-Time Gradebook Sync
Accurately tracks every second watched. Students cannot fast-forward or skip ahead past unviewed material if enforced. When completion threshold (e.g. 90% watched) is reached, grades auto-sync to Moodle Gradebook.
Host Anywhere (Self-Host or CDN)
Store your MP4 or HLS videos on your own Moodle server, AWS S3, Cloudflare R2, Bunny CDN, or Vimeo. VideoShield acts as the client-side playback enforcement engine without charging per-gigabyte bandwidth fees.
Native Moodle Activity (mod_videoshield)
Installs as a native course activity module. Teachers can add a “VideoShield Video” just like a Quiz or Assignment, set completion criteria, restrict access by grade, and view learner telemetry in real-time.
Test the Anti-Piracy Watermark Engine
Watch how the viewer-specific forensic watermark floats continuously to prevent screen capture piracy. Toggle player controls below.
78% (Grade: 7.8/10)
Standard Moodle Video vs VideoShield Pro
Why relying on standard Moodle video or YouTube unlisted links results in complete course piracy.
| Security Protection Feature | Standard HTML5 Video | SaaS Video DRM (VdoCipher/Bunny) | VideoShield Pro (Ours) |
|---|---|---|---|
| Dynamic Learner Watermark | ❌ None | ⚠️ Static / rudimentary | ✅ Dynamic moving position, angle, and opacity |
| Anti-Screen Grabber Blackout | ❌ Zero protection | ⚠️ Browser dependent | ✅ Automatic OBS / screen grabber interception |
| Watch-Time Gradebook Sync | ❌ Page open only | ❌ Requires custom webhook dev | ✅ Native Moodle Gradebook % completion sync |
| Bandwidth & Hosting Fees | Free on your server | ❌ $0.05 to $0.15 per GB consumed | ✅ Zero bandwidth markup (Host on S3, R2, or VPS) |
| Unencrypted Source Code | Open source player | ❌ Closed proprietary API | ✅ 100% Clean, unencrypted PHP & JavaScript code |
Choose Your VideoShield Licensing Tier
Use coupon code NEWLAUNCH40 at checkout for 40% off your subscription. 30-day money-back guarantee.
Single Site License
For individual course creators and schools.
Regular $89
- ✔ 1 Moodle Production Domain + Unlimited Staging
- ✔ Unlimited Protected Videos & Students
- ✔ Dynamic Moving Learner Watermarks
- ✔ Anti-Screen Recording & Right-Click Protection
- ✔ Gradebook Watch-Time % Completion Sync
- ✔ 1 Year Continuous Updates & Standard Support
Campus & Multi-Site
For universities, colleges & multi-branch institutions.
Regular $179
- ✔ Up to 5 Production Moodle Sites
- ✔ Unlimited Videos Across All 5 Sites
- ✔ Custom Watermark Branding (Institutional Logo Overlay)
- ✔ HLS & Encrypted Chunked Stream Support
- ✔ Cloudflare R2 / AWS S3 Direct Upload Presets
- ✔ Priority Support (4-Hour SLA)
Agency & Developer
For LMS hosting partners, dev agencies & commercial platforms.
Regular $349
- ✔ Unlimited Client Moodle Installations
- ✔ 100% Unencrypted Source Code (Direct Git Access)
- ✔ White-Label Rights (Custom player styling in Moodle)
- ✔ Dedicated Core Developer Slack/WhatsApp Channel
- ✔ Custom Video Pipeline Integration Architecture
- ✔ Lifetime Client Reseller Rights
Frequently Asked Questions
Everything you need to know about Moodle video protection and dynamic watermarking.
How does the dynamic watermark deter course piracy?
When a pirate attempts to record or leak course video, their own verified identity (Full Name, Moodle User ID, IP Address, and timestamp) is indelibly floating over the footage. Because the watermark moves randomly every few seconds and shifts transparency, it cannot be cropped or blurred with AI inpainting without destroying the lecture content. Leakers face immediate legal accountability.
Do I need to pay monthly fees for video bandwidth?
No! Unlike SaaS DRM platforms (e.g. VdoCipher or Wistia) that charge you heavy monthly fees per gigabyte watched, VideoShield Pro is a self-contained Moodle module. You can store your videos on Cloudflare R2 (which has zero egress fees!), Amazon S3, Bunny CDN, or directly on your Moodle web server.
How does VideoShield Pro integrate into Moodle courses?
It installs as a native Moodle course activity (mod_videoshield). Instructors turn editing on in any course, click “Add an activity or resource”, choose “VideoShield Protected Video”, paste their video file or URL, and configure completion criteria (e.g. require 85% watched to unlock the subsequent quiz).
function copyVsCoupon(code, btn) {
navigator.clipboard.writeText(code).then(() => {
const orig = btn.innerHTML;
btn.innerHTML = ‘✔ Copied!’;
btn.style.background = ‘#22c55e’;
btn.style.color = ‘#fff’;
setTimeout(() => {
btn.innerHTML = orig;
btn.style.background = ‘#fff’;
btn.style.color = ‘#0f172a’;
}, 2500);
});
}
function shiftWatermark() {
const wm = document.getElementById(‘vs-watermark’);
const top = Math.floor(Math.random() * 70 + 10);
const left = Math.floor(Math.random() * 60 + 10);
wm.style.top = top + ‘%’;
wm.style.left = left + ‘%’;
}
function toggleScreenCapture(show) {
const overlay = document.getElementById(‘vs-capture-overlay’);
overlay.style.display = show ? ‘flex’ : ‘none’;
}
// Auto drift watermark every 4 seconds
setInterval(shiftWatermark, 4000);