WordPress + WooCommerce Plugin

Protect & Sell
Video Content
Securely

Deliver private videos only to customers who have paid. Signed URLs, IP lock, session control and a beautiful grid player — all in one plugin.

One-time payment · Lifetime updates · No subscription

✓ WooCommerce Integration ✓ Signed URL Security ✓ Grid Player UI
🎬 My Videos
Secure Video Stream — Customer View

How It Works

From purchase to playback — fully automated and secure.

🛒

Customer Buys

Purchases a product via WooCommerce checkout

🔑

Access Granted

Plugin detects the purchase and unlocks the video

🔗

Signed URL

A secure, time-limited URL is generated on click

Secure Playback

Video streams directly — no download possible

Everything You Need

A complete solution to sell and protect video content on your WordPress site.

🔒

Signed URLs

Every video link is signed with HMAC-SHA256 and expires in 60 seconds. Sharing the link is useless — it only works for the authenticated buyer.

📍

IP & Device Lock

First access locks the video to a specific IP and device fingerprint. A different device or connection is automatically blocked and logged.

👤

Session Lock

Only one active session per account at a time. If someone logs in from another device, the first session is immediately invalidated.

🛒

WooCommerce Integration

Link each video to a WooCommerce product. Access is checked automatically on every playback — no manual management needed.

🎬

Grid Player UI

Customers see their purchased videos in a beautiful 4-column grid with thumbnail previews. Click to open a fullscreen lightbox player.

📊

Access Logs

Every playback and blocked attempt is logged with user, video, IP and timestamp. Export to CSV for full audit trail.

🎞️

Multi-Format Support

Supports MP4, WebM, OGV and MOV. MIME type is auto-detected — just upload and it works across all browsers.

⚙️

Admin Panel

Upload videos, manage access, view logs and configure settings — all from a clean, modern admin interface inside WordPress.

🗑️

Clean Uninstall

Removing the plugin cleans up all database tables, options and user meta automatically. No leftover data in your WordPress.

Security Architecture

Multiple layers of protection on every single video request.

  • 🔐

    WordPress Login Check

    Every request requires an active WordPress session. Anonymous access returns 401 immediately.

  • ⏱️

    Token Expiry (60s)

    Signed URLs expire in 60 seconds. Even if captured, they cannot be replayed after expiry.

  • Purchase Verification

    WooCommerce order history is checked on every request. Cancelled orders lose access instantly.

  • 📍

    IP + Device Fingerprint

    First access binds the video to a specific IP and User-Agent hash. Mismatches are blocked and logged.

  • 🛡️

    Path Traversal Protection

    File paths are validated with realpath() to prevent directory traversal attacks.

  • ☁️

    Cloudflare-Aware

    Correctly detects real user IP even behind Cloudflare or other reverse proxies.

stream.php — Security Flow
1. is_user_logged_in()
   ✓ pass → continue
   ✗ fail → 401 Unauthorized

2. time() > $expires
   ✓ valid → continue
   ✗ expired → 403 Link expired

3. hash_hmac( sha256 )
   ✓ match → continue
   ✗ invalid → 403 Bad token

4. wc_customer_bought_product()
   ✓ purchased → continue
   ✗ not paid → 403 Not purchased

5. svs_check_access_lock()
   ✓ same IP+deviceSTREAM ▶
   ✗ different → 403 + log

One Shortcode, That's It

Add [my_videos] to any WordPress page and you're done.

🔓

Not Logged In

"Log in to see your videos" with a login link

🛒

Logged In, No Purchase

"You haven't purchased any videos yet."

Logged In + Purchased

Grid of purchased videos with fullscreen player

Simple Pricing

One price, everything included, forever.

Secure Video Stream
59
One-time payment — lifetime updates included
Buy Now — €59

Secure payment via PayPal · Instant ZIP delivery

Requirements

Works with any standard WordPress + WooCommerce setup.

WordPress

5.8 or higher

🛒

WooCommerce

6.0 or higher

🐘

PHP

7.4 or higher

🗄️

MySQL

5.7 or higher

🌐

Apache / Nginx

With .htaccess support

Frequently Asked Questions

Everything you need to know before buying.

Does it prevent downloading?

The plugin disables right-click, the download button and serves videos via a secure stream endpoint. However, it is not DRM — a technically advanced user could still use screen recording software. It is significantly more secure than a standard video embed.

Does it work with any WooCommerce product type?

Yes — you link each video to a WooCommerce product ID. Any product type works: simple, variable, or virtual. Access is granted as soon as the order status is "Completed".

What happens if a customer changes IP (e.g. mobile)?

The IP lock resets automatically after a configurable number of hours (default: 24h). You can reduce this to 6–12h for mobile-heavy audiences from the Settings panel.

Can I sell the same video linked to multiple products?

Yes — you can upload the same video file and link it to different products, or create multiple entries pointing to the same file. Each is managed independently.

Does it support multiple videos per purchase?

Yes — a customer who has purchased multiple products will see all their purchased videos in the grid on the [my_videos] page.

What video formats are supported?

MP4, WebM, OGV, OGG and MOV. The plugin auto-detects the correct MIME type based on the file extension, so all modern browsers handle playback correctly.

Do I get updates?

Yes — lifetime updates are included with your one-time purchase. New features and fixes are delivered as new ZIP releases.