Widevine DRM Setup
Configure DRM content playback with Widevine CDM and keep DRM capability signals consistent with the profile’s platform identity.
Prerequisites
- BotBrowser binary installed. See INSTALLATION.md.
- A profile file (
.encor.json). - Widevine CDM obtained through official channels. BotBrowser does not distribute proprietary modules.
- ENT Tier2 license for Widevine CDM integration.
Overview
Widevine is Google’s Digital Rights Management (DRM) system used by streaming services and other sites to protect video content. When a site requires DRM playback, the browser must have a Widevine Content Decryption Module (CDM) installed. Without it, the site may show errors, refuse to play content, or detect that DRM is unavailable.
DRM capability reporting varies across platforms. The order of MediaKeySystemAccess results and the specific configurations supported differ by OS. BotBrowser ensures that DRM capability results are consistent with the profile’s platform identity.
How It Works
What Widevine CDM Does
The Widevine CDM handles:
- Encrypted Media Extensions (EME) API responses
- License request and response negotiation
- Decryption of protected video streams
- DRM capability reporting
DRM Capability Consistency
BotBrowser ensures that DRM capability result ordering and reporting are consistent with the profile’s platform. A Windows profile reports Windows-appropriate DRM capabilities, an Android profile reports Android-appropriate capabilities.
Platform Consistency
| Platform | DRM Behavior |
|---|---|
| Windows | Widevine CDM loaded from standard location. License negotiation follows Windows patterns. |
| macOS | Widevine CDM loaded from macOS-specific path. |
| Android | Hardware-backed DRM support reported when profile specifies it. |
| Linux | Widevine CDM path follows Linux conventions. |
Quick Start
Ensuring Widevine CDM Availability
-
Obtain the Widevine CDM from official sources. BotBrowser does not bundle or distribute the CDM.
-
Place the CDM in the expected location for your platform:
- Windows: The CDM is typically located in the BotBrowser installation directory or the user data directory.
- macOS: The CDM follows macOS library conventions.
- Linux: Place the CDM in the standard library path.
-
Launch BotBrowser with your profile. BotBrowser detects the installed CDM automatically:
import { chromium } from "playwright-core";
const browser = await chromium.launch({
executablePath: process.env.BOTBROWSER_EXEC_PATH,
headless: true,
args: [
"--bot-profile=/path/to/profile.enc",
],
});
const page = await browser.newPage();
// Navigate to a DRM-protected streaming site to verify playback works
await page.goto("https://streaming-service.example.com");
await browser.close();Common Scenarios
Testing DRM-protected content playback
const browser = await chromium.launch({
executablePath: process.env.BOTBROWSER_EXEC_PATH,
headless: true,
args: [
"--bot-profile=/path/to/profile.enc",
"--proxy-server=socks5://user:pass@proxy.example.com:1080",
],
});
const page = await browser.newPage();
await page.goto("https://streaming-service.example.com");
// The site should detect DRM support and offer content playbackVerifying DRM capability consistency
To verify DRM protection is working correctly:
- Launch BotBrowser with a profile and navigate to a DRM-protected streaming service.
- Confirm that content plays back without errors.
- Verify on a fingerprint testing site that DRM capability reporting matches the profile’s target platform.
Troubleshooting / FAQ
| Problem | Solution |
|---|---|
| Widevine not detected | Ensure the CDM is installed in the correct location for your platform. BotBrowser does not bundle the CDM. |
| DRM playback fails | Verify the CDM version is compatible with the BotBrowser version. |
| DRM capability order differs from expected | The profile defines the expected DRM capability order. Ensure the profile matches the target platform. |
| ”Unsupported platform” from streaming site | Check that the profile’s platform identity matches a platform the site supports (e.g., Windows, macOS). |
Next Steps
- Cross-Platform Profiles. Profile portability across operating systems.
- Advanced Features. Widevine CDM integration details.
- Device Emulation. Control device metrics for platform consistency.
Related documentation: Advanced Features | Profile Configuration
Legal Disclaimer & Terms of Use • Responsible Use Guidelines . BotBrowser is for authorized fingerprint protection and privacy research only.