vidinfra
  1. DRM
vidinfra
  • Documentation
    • Guides
      • Welcome
      • Getting Started
        • What is Vidinfra?
        • Quick Start Guide
        • Publish First Video
        • FAQs
      • Upload & Import Videos
        • Upload from Device
        • Import from Vimeo
        • Import from YouTube
        • Import from Zoom
      • DRM
        • Widevine DRM
        • FairPlay DRM
      • Accounts
        • Accounts
      • Organization Settings
        • User Management
        • Billing
        • Settings
  • API Reference
    • Projects
      • Get projects list
      • Get project
      • Create New Project
      • Destory Project
      • Update project
      • upload logo
      • Get Project Settings
      • Upsert Project Settings
    • importer.vidinfra.com
      • welcome
      • Debug
      • test
    • Auth
      • User Registration
      • User Login
      • Verify-email
      • Forgot Password
      • Forgot Password Verify OTP
      • Forgot Password Set
      • Resend OTP
      • Logout
      • Set Password
      • Check Account exists
      • Update Password
      • Google Oauth Redirect
      • Google Oauth Callback
      • api-access-check
      • New Auth token using Refresh token
      • Github Oauth Redirect
      • Google Oauth Callback Copy
      • Get User Sessions
      • Delete User Sessions
    • User
      • Profiles
      • Profile Updates
      • Profile Avatar update
    • Organization
      • List organizations
      • Create an organization
      • Get an organization
      • Update an organization
      • Switch an organization
    • Organization's invitations
      • Sent invitation list
      • Send invitation
      • Show Token
      • Accept Invitation
      • Reject Invitation
    • Audits
      • Audits
    • Members
      • Members
      • test permission
    • API Keys
      • Get All API keys
      • Get API Key
      • Create API Keys
      • Destory API Keys
      • api key middleware (test)
    • Folders
      • Get All Folders
      • Create Folder
      • Get Folder by ID
      • Update Folder
      • Move Folder
      • Bulk Move Folders (empty)
      • Delete Folder
      • Get Folder Tree
    • Videos
      • Get All video of a project
      • Get a Video
      • Get Video using Custom field
      • create video
      • Upload thumbnail
      • Update video
      • Destroy video
      • Search Video
      • batch video Assign to collecition
      • Mark Thumbnail As Default
      • Get Video Timelines
    • Video Metas
      • Create or Update Video Meta Data
      • Get All Meta Data of a Video
    • Video Captions
      • create video caption
      • Delete a video Caption
      • Get video caption
    • Video Chapter
      • create video chapters
    • Uploads
    • Tags
      • Get all tags upder a project
      • Create Tag
      • Delete tag
    • Players
      • Get all Players
      • Create Player
      • Get Specific player
      • update player
      • Delete Player
      • Player Mark as default
    • Webhook Endpoints
      • Get webhook
      • create web hook
      • GET Webhook by ID
      • Update webhook
      • Delete web hook
    • Advertisements
      • get all ads
      • create ads
      • get single advertisement
      • Update ads
      • Delete ads
    • Webhook Event Logs
      • Get webhook event logs
      • Resend Webhook event by Id
      • Resend All Webhook Event
    • Analytics Direct Api
      • geo-distribution
      • Project Views
      • avg video watch
      • Total watch Time
      • Project Avg Watch per Unique user
      • Total Player Error
      • project popularity-analysis
      • Project Collection Insights
      • Collection Views
      • Collection avg Watch time
      • Collection Avg Watch per unique user
      • Collection Geo Distribution
      • Get all Users
      • User media views
      • User Avg video watch
      • user Player log
      • user sessions
      • Get all Video
      • video Player error
      • Video View
      • video Geo Distribution
      • video Avg watch
      • copy
    • Streams
      • Create livestream
      • Get all stream
      • Get a livestream
      • update status of livestream
      • delete a stream
      • get livestream historys
    • Stream Metas
    • Usages
      • Bandwidth Usage
      • Storage Usage
      • Get Over Usage
    • Encoding profile
      • Get all profiles
      • Create profile
      • Get A profile
      • Update a encoding profile
      • Delete a encoding profile
      • Make a profile default
    • Project Matrics
      • Get Matrics
      • project Usages
    • Access Control
      • Put Access Control
      • Get access Control
    • Analytics
      • Project Get geo-distribution
      • project views
      • Project avg video watch
      • Project Total Watch
      • Project Avg Watch per Unique user
      • Project All Player Errors
      • Project Popularity Analysis
      • Project Collections insights
      • Collection Geo Distribution
      • Collection avg watch time
      • Collection avg watch per unique User
      • Collection Player error
      • Video Geo Distribution
      • Video views
      • Video Avg Watch
      • Video Player Log
      • User
      • User Avg Video Watch
      • User Total Watch
      • User player error log
    • Plan
      • public plans
      • current plan
      • Account Plans
      • Get plan by ID
      • Admin Get Plans
      • Admin Create plan
      • Admin Get Plan by ID
      • Admin Update Plan by ID
      • Admin Delete plan By ID
      • Admin Get Plan Metrices
      • Admin Get Plan Metrices By Type
      • Admin Create Plan Matrices By Type
      • Admin Update Plan Metrices By ID
    • Upload Tokens
      • Obtain credentials before upload
    • subscribe
      • stripe redirect subscription
        • create checkout session
        • over usage payment
      • current subscription
      • discribe a plan by planCode
      • subscribe
      • cancel subscription
      • over usage payment
      • Stripe over usage autopay payment (test)
    • Transaction
      • Get All Transaction
    • Invoice
      • Get All Invoices
      • Get Invoice by ID
    • vimeo video importer
      • vimeo job list
      • Vimeo videos by migration id
      • Vimeo Set video importer
      • Vimeo sync import
      • Vimeo import videos
      • Get pull videos
      • pull video from url
    • test
      • Welcome to vidinfra Copy
      • metrics
    • transcoding service
      • get all jobs
      • get a job
      • create jobs
      • Update a job
      • Delete a job
      • create job v2
    • transcoding service v2
      • create jobs
      • get all jobs
      • get a job
      • Update a job
      • Delete a job
    • Welcome to vidinfra
      GET
    • health check
      GET
    • Regions List
      GET
    • key
      POST
    • Untitled Endpoint
      GET
  1. DRM

Widevine DRM

Widevine DRM introduction, security and integration

What is Widevine DRM?#

Widevine DRM is a widely adopted digital rights management (DRM) technology developed and maintained by Google. It provides encryption and licensing solutions to protect video content from unauthorized downloads across browsers like Chrome, Firefox, and Edge. Additionally, it secures content playback on Android devices, Android TV, and Chromecast. Widevine DRM supports streaming via MPEG-DASH and HLS protocols.
Many OTT platforms and e-learning services utilize Widevine DRM to safeguard their content and maximize revenue by preventing unauthorized distribution and piracy.

Widevine DRM Security Levels#

Google Widevine DRM offers three levels of security, categorized based on whether encryption and decryption occur at the hardware or software level. These are Widevine L1, L2, and L3.
image.png
Widevine DRM Security Levels

Widevine L1 (Highest Security Level)#

In L1 security, DRM keys and decrypted content never interact with the device’s main CPU.
Instead, a secure hardware processor (Trusted Execution Environment - TEE) handles decryption and media playback.
This prevents screen capture and ensures high security.
Platforms like Netflix restrict full HD (1080p) and 4K playback to L1-certified devices.
TEE (Trusted Execution Environment) ensures encryption keys remain protected and cannot be stolen.

Widevine L2#

Like L1, decryption happens in secure hardware, but the decrypted video buffers are sent to the CPU for playback.
Unlike L1, TEE does not handle video processing.
L2 is primarily used for non-mobile devices.

Widevine L3 (Software-Based Security)#

L3 relies entirely on software for decryption and playback, without a secure hardware component.
Budget smartphones and older devices typically support only L3.
Chromium-based desktop browsers (e.g., Chrome, Edge, and Firefox) use L3.

Widevine DRM Compatibility#

VidInfra provides detailed documentation on Widevine DRM compatibility across different browsers, operating systems, and devices to ensure seamless playback.

How Does Widevine DRM Work?#

Widevine DRM operates through a secure decryption process involving multiple exchanges between the Content Decryption Module (CDM) and the Widevine DRM license server. An HTML5 video player facilitates these interactions but cannot independently decrypt the encrypted content.
image.png
DRM Overview

Step-by-Step Decryption Process for Playback#

1.
Video File Received from CDN
The encrypted video file is delivered via a Content Delivery Network (CDN) to the user’s device.
2.
Browser Identifies Encrypted Content
When a user presses ‘play,’ the browser detects whether the video is encrypted.
If encrypted, the browser extracts ‘initData’ (initialization data) and passes it to the video player.
3.
Data Sent to the Content Decryption Module (CDM)
The video player sends the extracted initialization data to the CDM for further processing.
4.
CDM Generates a License Request
Based on the received data, CDM generates a license request and forwards it to the video player.
5.
Widevine License Server Processes the Request
The video player sends the license request to the Widevine DRM license server, which verifies the request and prepares a license response.
6.
License Sent to the Player
The license server sends the Widevine license back to the video player in an encrypted format.
7.
CDM Receives and Processes the License
The video player forwards the received license to CDM for decryption.
8.
Decryption via OEMCrypto Module
The OEMCrypto module within the device decrypts the content using the license key.
9.
Decrypted Video is Streamed in Chunks
Once decrypted, the video is delivered to the player in small chunks for seamless playback while ensuring security.
10.
Playback Begins Securely
The user can now watch the video securely, with DRM protection preventing unauthorized downloads or screen recording.

VidInfra and Widevine DRM#

VidInfra fully supports Widevine DRM, ensuring high-level security and seamless streaming across all supported devices. By integrating Widevine, VidInfra helps content creators and businesses protect their digital assets, prevent piracy, and ensure smooth playback across browsers and mobile devices.

Supported DRM Systems at VidInfra:#

Widevine DRM (Google)
FairPlay DRM (Apple)
With VidInfra’s DRM integration, you can confidently stream your content while maintaining full control over its security and accessibility.
Previous
DRM
Next
FairPlay DRM
Built with