Security isn't an afterthought.
It's the product.

Every layer of VidEncrypt is designed to keep your content safe.

How signed URLs work

1

Browser requests a play token from your server

2

Your server calls VidEncrypt API with API key

3

VidEncrypt returns signed HLS URL (60s TTL)

4

Browser loads HLS player with signed URL

5

After 60s, URL is invalid — token refreshed automatically

How Max Security works

1

Viewer opens a page with an embedded video

2

Embed displays the Watch in Secure Player action

3

Click triggers a videncrypt:// deep link

4

VidEncrypt Desktop App opens with one-time install footprint

5

App validates a single-use playback token with VidEncrypt API

6

Content-protected window mode is applied before playback starts

7

Video plays in secure player while capture attempts are blocked or constrained

What we protect against

Hotlinking

Signed URLs with 60s TTL prevent URL sharing. Expired links return 403.

Token Replay

One-time token validation with nonce tracking prevents replay attacks.

Direct R2 Access

R2 buckets are private. All access goes through our authenticated CDN layer.

Bot Scraping

Rate limiting + device fingerprinting detect and block automated download attempts.

Unauthorized Embeds

Referrer validation ensures videos only load on whitelisted domains.

Screen Recording

Max Security mode moves playback into a desktop app window with OS-level capture protection.

Leak Attribution

Watermark context can include user/session/IP/timestamp so leaked recordings remain traceable.

How watermarking protects you

Two independent layers work together: secure playback for prevention and watermarking for attribution.

Layer 1: session-aware watermark values can be injected from your backend context
Layer 2: generic project watermark fallback still applies in iframe playback
If content is re-recorded externally, watermark context supports forensic traceability
Works in both standard browser embeds and secure desktop-player sessions

Platform coverage

PlatformRecording blockedWatermarked
Windows (desktop app)OS-level protectionYes
macOS (desktop app)OS-level protectionYes
Android app targetFLAG_SECURE pathYes
iOS SafariNo guaranteed OS-level blockYes
Chrome desktopUse Secure Player for stronger protectionYes
Firefox desktopUse Secure Player for stronger protectionYes
Android browserNo guaranteed OS-level blockYes

What's coming next

Public browser allowlist controls from project settings
Native iOS secure-player path with stronger capture constraints
Plan-level security entitlement controls

Infrastructure security

Data at rest

Encrypted at Cloudflare R2 (AES-256)

Data in transit

TLS 1.3 enforced on all connections

API keys

SHA-256 hashed, never stored in plain text

Sessions

Redis-backed with TTL, httpOnly cookies

CSRF protection

On all state-changing endpoints

Responsible Disclosure

Found a vulnerability? We take security reports seriously. Please reach out to us with details and we'll respond within 24 hours.

security@videncrypt.io