MediaShield
MediaShield — Video protection plugin for WordPress (free)
by Wbcom Designs · github.com/vapvarun/mediashield · website
★ 0stars
15release downloads
≈10active sites
0forks
Install
The author publishes release zips, so WP-CLI can install straight from GitHub:
wp plugin install https://github.com/vapvarun/mediashield/releases/download/v1.3.0/mediashield-1.3.0.zipReadme
MediaShield -- Video Protection for WordPress
Protect your video content with dynamic watermarking, session tracking, DRM encryption, and multi-platform support. Host videos on Bunny Stream, YouTube, Vimeo, or Wistia -- MediaShield wraps the player with protection while videos stream from their CDN. No video files stored on your server.
Free vs Pro Comparison
| Feature | Free | Pro |
|---|---|---|
| Video Protection | ||
| Dynamic watermark (username + IP) | Yes | Yes |
| Configurable watermark (7 fields: email, timestamp, user ID, custom text...) | -- | Yes |
| Right-click blocking | Yes | Yes |
| DevTools detection | Yes | Yes |
| Source URL hiding | Yes | Yes |
| Concurrent stream limiting | Yes | Yes |
| Domain whitelisting | Yes | Yes |
| Player | ||
| YouTube, Vimeo, Wistia, Bunny, self-hosted | Yes | Yes |
| Speed control (self-hosted/Bunny) | Yes | Yes |
| Keyboard shortcuts (Space, arrows, M, F) | Yes | Yes |
| Sticky/floating player on scroll | Yes | Yes |
| End screen CTA (per-video customizable) | Yes | Yes |
| Per-video player overrides | Yes | Yes |
| Gutenberg blocks (Video, Playlist, My Videos) | Yes | Yes |
[mediashield] shortcode |
Yes | Yes |
| Platform Integration | ||
| Embed from URL (paste & auto-detect) | Yes | Yes |
| Browse & bulk import from Bunny library | -- | Yes |
| Browse & bulk import from YouTube channel | -- | Yes |
| Browse & bulk import from Vimeo account | -- | Yes |
| Browse & bulk import from Wistia projects | -- | Yes |
| Multiple library connections per platform | -- | Yes |
| Upload videos directly to platforms | -- | Yes |
| Bunny webhook (encoding status updates) | -- | Yes |
| Analytics | ||
| Dashboard (views, sessions, completion) | Yes | Yes |
| Per-video stats | Yes | Yes |
| Per-user engagement | Yes | Yes |
| Playback heatmaps (10s position buckets) | -- | Yes |
| Realtime viewer dashboard (15s refresh) | -- | Yes |
| Playlist funnel (drop-off analysis) | -- | Yes |
| Device/browser breakdown | -- | Yes |
| CSV export | -- | Yes |
| Async PDF reports | -- | Yes |
| Weekly digest email | -- | Yes |
| Access Control | ||
| Require login | Yes | Yes |
| Role-based restriction (per-video) | Yes | Yes |
| LMS enrollment check (LearnDash, Tutor, Lifter) | -- | Yes |
| LMS Integration | ||
| Embed in any LMS lesson (shortcode/block) | Yes | Yes |
| Per-video milestone tags (10/25/50/75/100%) | Yes | Yes |
| Link video to LMS lesson | -- | Yes |
| Auto-mark lesson complete on video completion | -- | Yes |
| Configurable completion threshold (50-100%) | -- | Yes |
| Enrollment-based video access | -- | Yes |
| LearnDash adapter (verified v5.0.4) | -- | Yes |
| Tutor LMS adapter | -- | Yes |
| LifterLMS adapter | -- | Yes |
| Third-party LMS adapter API | -- | Yes |
| Security | ||
| HMAC session tokens (no DB lookup) | Yes | Yes |
| Suspicious activity detection (multi-IP, VPN) | -- | Yes |
| Suspicious activity alerts + dashboard | -- | Yes |
| User whitelisting (mark as safe) | -- | Yes |
| ClearKey DRM encryption (software-based) | -- | Yes |
| Bunny Stream DRM | -- | Yes |
| Local Shaka Packager DRM | -- | Yes |
| PWA offline playback (service worker) | -- | Yes |
| Signed/token-authenticated CDN URLs | -- | Yes |
| Milestone Actions | ||
| Track completion (25/50/75/100%) | Yes | Yes |
| Per-video tag assignments to users | Yes | Yes |
| Fire webhook on milestone | -- | Yes |
| Send email on milestone | -- | Yes |
| Tag user on milestone (CRM-ready) | -- | Yes |
| Admin | ||
| React admin SPA (7 pages) | Yes | -- |
| Pro admin pages (+8 pages) | -- | Yes |
| Video preview lightbox | Yes | Yes |
| Shortcode/block/PHP embed copy box | Yes | Yes |
| Auto-save settings with debounce | Yes | Yes |
| Setup wizard (4 steps) | Yes | Yes |
| Pro upsell indicators (locked nav items) | Yes | -- |
| Developer | ||
| 8+ actions, 8+ filters | Yes | Yes |
| Template override from theme | Yes | Yes |
| Conditional asset loading | Yes | Yes |
| Error boundary (no white-screen crashes) | Yes | Yes |
| REST API (23 free + 22 pro endpoints) | Yes | Yes |
| Third-party LMS adapter registration | -- | Yes |
mediashield_lms_adapters_loaded hook |
-- | Yes |
| Compliance | ||
| GDPR privacy exporter | Yes | Yes |
| GDPR privacy eraser | Yes | Yes |
| Pro table export/erase (email captures, DRM) | -- | Yes |
| Clean uninstall (tables, options, caps) | Yes | Yes |
Frontend upload ([mediashield_upload]) |
-- | Yes |
Requirements
- WordPress 6.5+
- PHP 8.1+
Installation
- Upload
mediashieldto/wp-content/plugins/ - Activate via Plugins menu
- Go to MediaShield > Dashboard
- Connect a video platform (Pro) or add videos manually
Documentation
- Installation & Setup
- Configuration
- Shortcodes & Blocks
- Hooks & Filters
- FAQ
- Pro: Getting Started
- Pro: Platform Connections
- Pro: DRM Setup
- Pro: Analytics
- Pro: Hooks & Filters
For Developers
Hooks & Filters
// Control video access
add_filter( 'mediashield_can_watch', function( $allowed, $video_id, $user_id ) {
// Custom access logic
return $allowed;
}, 10, 3 );
// Customize player HTML
add_filter( 'mediashield_player_html', function( $html, $video_id, $atts ) {
return $html;
}, 10, 3 );
// Disable output buffer on specific pages
add_filter( 'mediashield_enable_output_buffer', function( $enabled ) {
if ( is_checkout() ) {
return false;
}
return $enabled;
});
// Per-video milestone tag assigned
add_action( 'mediashield_milestone_reached', function( $user_id, $video_id, $pct, $session_id ) {
// Integrate with LMS, CRM, etc.
}, 10, 4 );
See Full Hooks Reference for all available hooks.
License
GPL v2 or later
Read the full README on GitHub →
Releases
| Tag | Published | Asset | Downloads |
|---|---|---|---|
| v1.3.0 | Aug 31, 2026 | mediashield-1.3.0.zip | 4 |
| v1.2.0 | Jul 24, 2026 | mediashield-1.2.0.zip | 6 |
| v1.1.0 | Jun 3, 2026 | mediashield-1.1.0.zip | 5 |
Active-site estimate ≈10 comes from the median of recent superseded releases. Method.