平台
Widevine DRM 设置:无头浏览器视频内容
在 BotBrowser 中配置 Widevine DRM,在无头环境中访问受保护的视频内容。
概述
Widevine 是 Google 的数字版权管理系统,被流媒体平台广泛使用。BotBrowser 内置了 Widevine CDM 库,DRM 保护的视频内容无需手动配置即可正常工作。
基本用法
chrome --bot-profile="/profiles/windows-chrome-122.enc" \
--user-data-dir="$(mktemp -d)"
BotBrowser 可以通过 EME 协商 Widevine 许可证、解密并播放 DRM 保护的视频,并报告正确的 requestMediaKeySystemAccess 能力。
验证 Widevine 支持
const { chromium } = require('playwright-core');
const browser = await chromium.launch({
executablePath: '/path/to/botbrowser/chrome',
args: ['--bot-profile=/profiles/windows-chrome-122.enc'],
headless: true,
});
const page = await (await browser.newContext()).newPage();
const widevine = await page.evaluate(async () => {
try {
const config = [{
initDataTypes: ['cenc'],
videoCapabilities: [{
contentType: 'video/mp4; codecs="avc1.42E01E"',
robustness: 'SW_SECURE_DECODE',
}],
}];
await navigator.requestMediaKeySystemAccess('com.widevine.alpha', config);
return { supported: true };
} catch (e) {
return { supported: false, error: e.message };
}
});
console.log('Widevine:', widevine);
await browser.close();
无头模式下的视频播放
const browser = await chromium.launch({
executablePath: '/path/to/botbrowser/chrome',
args: [
'--bot-profile=/profiles/windows-chrome-122.enc',
'--autoplay-policy=no-user-gesture-required',
],
headless: true,
});
const page = await (await browser.newContext()).newPage();
await page.goto('https://example-streaming-site.com/video');
await page.waitForSelector('video');
--autoplay-policy=no-user-gesture-required 参数允许视频在无用户交互时自动播放。
DRM 安全级别
BotBrowser 在无头模式下以 Widevine L3(软件级别)运行。指纹配置文件控制浏览器如何报告 DRM 能力,匹配真实平台行为。
故障排除
"No key system supported":验证 Widevine CDM 库是否存在于 BotBrowser 目录中。
视频播放但无画面:检查 video.readyState 和 video.currentTime 确认播放是否正常进行。
开始使用
- 从 GitHub 下载 BotBrowser
- 使用上述能力检查脚本验证 Widevine 支持
- 无头视频播放使用
--autoplay-policy=no-user-gesture-required
#widevine#drm#video#streaming#platform