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
    • Admin
      • User
        • Create User
        • Find Users
        • Update User Password
        • Login as Customer
        • Show User details
        • Show User Session
        • Delete User Sessions
        • Verify User Email
      • Organization
        • List organizations
        • Get an organization
      • Profile
        • Update Password
    • 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
      • me
      • Profile Updates
      • DEL User
      • Profile Avatar update
      • Permission Details
      • Old Permission Details
    • Libraries
      • Get Library List
      • Get Library Details
      • Create New Library
      • Destory Library
      • Update Library
      • Update Logo
      • Get Library Settings
      • Upsert Library Settings
    • Organization
      • Delete a Organization
      • List organizations
      • Create an organization
      • Get an organization
      • Update an organization
      • Switch an organization
    • Organization's invitations
      • Sent invitation list
      • Send invitation
      • Resend Invitation
      • Show Token
      • Accept Invitation
      • Reject Invitation
      • Cancel Invitation
    • Members
      • Members
      • Remove Member
      • test permission
      • Update Member Permission
    • Billings
      • Wallet
        • Get Wallet Trnxs
        • Get Wallet
        • Wallet Transaction
        • Update Wallet
        • Get Trnx Details
      • Self
        • Get Org's Billing Overview
        • Get Organization's Billing Info
        • Billing Usage of Org
        • Delete Org Payment Method
        • Update Billing Info
        • Set Org Default Payment Method
      • Plans
        • List Plans
        • Get A Plan
      • Subscription
        • Get Subscriptions
        • Subscribe to a Plan
        • Upgrade a Subscription
        • Get Current Active Subscription
        • Get A Subscription Details
        • Update A Subscription
        • Cancel A Subscription
        • Resume A Subscription
        • Pause A Subscription
      • Invoice
        • List Invoice
        • Get An Invoice
        • Download An Invoice PDF
      • VATs
        • Index VATs
      • Coupon
        • List Coupon
        • Get A Coupon
        • Create A Coupon
        • Update A Coupon
        • Delete A Coupon
        • Get Coupon by Name
    • Audits
      • Audits
    • 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 library
      • 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
    • Migrate
      • welcome
      • Debug
      • test
    • 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
    • Library Matrics
      • Admin
      • Get Matrics
      • project Usages
    • Access Control
      • Put Access Control
      • Get access Control
    • Analytics
      • Library Get geo-distribution
      • Library views
      • Library avg video watch
      • Project Total Watch
      • Library Avg Watch per Unique user
      • Library All Player Errors
      • Library Popularity Analysis
      • Library 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
    • User
    • Welcome to vidinfra
      GET
    • health check
      GET
    • Regions List
      GET
    • key
      POST
  • CDN
    • Admin
      • Distributions
        • Get Distribution List
        • Get A Distribution Details
        • Delete Distribution List
        • Update Distribution Status
      • SSL Certificate Manage
        • Get Certificate
        • Delete Certificate
        • Get List Certificates
        • Create New SSL
      • Constellix Zone
        • Update Constellix
        • Get Constellix zone
        • Delete Constellix
        • Get List Constellix
        • Create Constellix
      • Dns Record Zone
        • Update Dns record
        • Get Dns record
        • Delete Dns record
        • Get List Dns record
        • Create Dns Record zone
    • Distributions
      • Patch Distribution
      • CDN Distribution API – Create Distribution
      • Update A Distribution
      • Get Distribution Count
      • Get Distribution Stats
      • Get Distribution List
      • Delete Distribution
      • Get A Distribution Details
      • revoke-ssl
      • Toggle WebP
      • Assign Certificate To Distribution
    • SSL Certificate Manage
      • Get Certificate
      • Get Certificate Stats
      • Delete Certificate
      • Request For Let's Encrypt SSL
      • Get List Certificates
      • Create New SSL
    • Origins/Upstreams Manage
      • Create Origins
      • Get Origins LIst
    • Purge
      • Create Purge
    • Prefetch
      • Create Prefetch
    • Cache Rules
      • Create Cache Rules
      • Cache Rules List
      • Cache Rules Details
      • Cache Rules Delete
      • Cache Rules update
    • Access Rules
      • Create New Access
      • Update
      • Access Rules List
      • Access Rules Details
      • Access Rules Details Copy
    • Analytics
      • analytics
    • Https Headers
      • Https Headers
      • Get Headers
    • Verificatins
      • Validate distribution cname endpoin
      • Validate Accme DNS challenge endpoint
  • Billing
    • Plans
      • List Plans
    • Billable Metrics
    • Pricing Rules
    • Usage Metrics
    • Charge Models
    • Pricing Tiers
    • Wallet
    • Invoices
    • Audit Logs
    • Add-Ons
    • Events
      • Ingest
        • Ingest Single Event
        • Ingest Bulk Event
      • List Events
  • WebP Edge
    • Upsert Host Site
    • List Host Sites
    • Delete Proxy Host
    • Chorki WebP Check
    • Chaldal WebP Check
    • G&G WebP Check
  • experiment
    • flexprice
      • Customer
        • Get a customer
        • Get customer
        • Create Customer
        • Delete Customer
        • Set default payment method
        • Delete payment method
        • Get customer invoice
        • Get customer wallet
        • Get a customer saved payment method
        • Get payment method details
        • Update Customer
      • Payment
        • Delete Payment
        • Make Payment
      • Wallet
        • Get a wallet
        • Get a realtime wallet
        • Update wallet
      • Plan
        • Delete Plan
        • Get a Plan
      • Feature
        • List features
        • List features by ID
        • Delete Feature
      • Subscription
        • List Subscription
        • Get a Subscription
        • Cancel a Subscription
        • Pause a Subscription
      • Ingest event
      • Delete Addon
      • Delete Coupon
      • Get an invoice
  • Vidinfra
    • Library
      • Create Library
      • Get Library Details
      • Update Library
      • Delete Library
      • List Libraries
      • Library Metrics
    • Folder
      • Create Folder
      • Get Folder Details
      • Update Folder
      • Delete Folder
      • List Folders
      • Move Folder
      • Bulk Move Folder
      • Bulk Delete Folder
    • Video
      • Create Video
      • Get Video Details
      • Update Video
      • Delete Video
      • List Videos
      • Get Video By Custom ID
      • Search Videos
      • Bulk Move Videos to Folder
      • Pull Video
      • Video Timelines
      • Restore Deleted Video
      • Bulk Restore Deleted Video
      • Bulk Delete Videos
    • Subtitle
      • Create Subtitle
      • Get Subtitle
      • Update Subtitle
      • Delete Subtitle
      • List Subtitle
    • Video Thumbnails
      • Upload Thumbnail
      • Delete Thumbnail
      • Set Thumbnail
    • Transcoding Profiles
      • Create Transcoding Profile
      • List Transcoding Profiles
      • Get Transcoding Profile
      • Update Transcoding Profile
      • Mark Default Transcoding Profile
      • Delete Transcoding Profile
    • Player Themes
      • Create Player
      • Player Details
      • Update Player
      • Delete Player
      • List Players Themes
      • Mark Player As Default
    • Video Chapter
      • Upsert Chapter
      • List Chapter
    • Webhook Endpoints
      • Create Webhook Endpoint
      • List Webhook Endpoints
      • Get Webhook Endpoint by ID
      • Update Webhook Endpoint
      • Delete Webhook Endpoint
    • Webhook Deliveries
      • Get a Single Delivery
      • Retry a Webhook Delivery
      • List Deliveries for a Specific Endpoint
    • Security
      • Get Security Settings
      • Update Security Settings
    • Video Multipart Upload
      • Initialize Multipart Upload
      • Get Part Upload URL
      • List Uploaded Parts
      • Complete Multipart Upload
      • Abort Multipart Upload
    • Internals
      • Get Library by ID
      • Get Player Details
      • Video detais
    • Webhook
      • Transcoding Webhook
    • Migration Jobs
      • Create Migrations
      • Validate Credentials
  • Vidinfra Ingest
    • Migrations
      • Get Migration List
      • Create Migration Job
      • Get Migration Details
      • Update a Migration Job
      • Get Logs of a Migration
      • Get WebHooks of a Migration
      • Update a Migration Status
      • Del a Migration
      • Start a Migration
      • Cred Validation
      • Migration Job List By Library with Filter
      • Mark Videos Downloadable
    • Videos
      • Get Video Jobs
      • Get a Video Job Details
      • Create a Video Job
      • Update a Video Job Details
      • Delete A Video Job
      • Get a Video Logs
      • Update a Video Job Status
    • Logs
      • Get Recent Logs
    • Webhooks
      • Get All Webhooks
      • Get Webhooks Details
      • Mark a Webhook Sent
    • Ping Api
  • Vidinfra KMS
    • Get Key
    • Create Key
    • Delete Key
  • Vidinfra Transcoding
    • Create Job
    • List Jobs
    • Delete
  • HLS Download
    • Create HLS Migrations Job
    • Get HLS Migrations Jobs
  • WebP Edge Admin
    • Cluster
      • Cluster Details
      • Cluster List
      • Create Cluster
      • Update A Cluster
      • DEL a Cluster
    • Sites
      • Site List
      • Create Site
      • Site Details
      • Del a Site
      • Update a Site
    • Health
  • Tenbyte Proxy
    • Control
      • Get Health
      • Create a VHost
      • List VHosts
      • Update a VHost
      • Del a VHost
      • A VHost Details
    • Engine
  • Tenbyte Replica
    • Get Jobs
    • Create Jobs
  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.
Modified at 2025-06-19 04:59:01
Previous
DRM
Next
FairPlay DRM
Built with