Назад к блогу
Платформа

Настройка 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 для подтверждения прогресса воспроизведения.

Начало работы

  1. Скачайте BotBrowser с GitHub
  2. Проверьте поддержку Widevine с помощью скрипта проверки выше
  3. Используйте --autoplay-policy=no-user-gesture-required для воспроизведения видео в headless-режиме
#widevine#drm#video#streaming#platform