Настройка Widevine DRM для воспроизведения видео в headless-браузере
Настройте Widevine DRM в BotBrowser для доступа к защищенному видеоконтенту в headless-окружениях.
Обзор
Widevine - система управления цифровыми правами от Google, используемая стриминговыми платформами. BotBrowser включает библиотеку Widevine CDM, поэтому DRM-защищенный видеоконтент работает сразу без дополнительной настройки.
Базовое использование
chrome --bot-profile="/profiles/windows-chrome-122.enc" \
--user-data-dir="$(mktemp -d)"
BotBrowser может согласовывать лицензии Widevine через EME, расшифровывать и воспроизводить 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();
Воспроизведение видео в headless-режиме
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 (программный) в headless-режиме. Профиль фингерпринта контролирует, как браузер сообщает о своих DRM-возможностях, соответствуя реальному поведению платформы.
Устранение неполадок
"No key system supported": убедитесь, что библиотека Widevine CDM присутствует в каталоге BotBrowser.
Видео воспроизводится, но нет изображения: проверьте video.readyState и video.currentTime для подтверждения прогресса воспроизведения.
Начало работы
- Скачайте BotBrowser с GitHub
- Проверьте поддержку Widevine с помощью скрипта проверки выше
- Используйте
--autoplay-policy=no-user-gesture-requiredдля воспроизведения видео в headless-режиме