Widevine CDM Pluginを使用する

Electronで、Chromeブラウザーに同梱される Widevine CDMプラグインを使用できます。

プラグインを取得する

Electronは、ライセンス的な理由でWidevine CDMプラグインは同梱されません。Widevine CDMプラグインを取得するために、最初に、使用するElectronビルドのChromeバージョンとアーキテクチャを合わせた公式のChromeブラウザーをインストールする必要があります。

Note: Chromeブラウザのメジャーバージョンは、Electronが使用するChromeバージョンと同じでなければなりません。そうでなければ、プラグインは、navigator.plugins経由でロードされて表示されるにも関わらず動作しません。

Windows & macOS

Chromeブラウザーで、chrome://components/を開き、 WidevineCdm を探し、それが最新であることを確認し、APP_DATA/Google/Chrome/WidevineCDM/VERSION/_platform_specific/PLATFORM_ARCH/ディレクトリからすべてのプラグインバイナリを探します。

APP_DATA は、アプリデータを格納するシステムロケーションです。Windowsでは%LOCALAPPDATA%、macOSでは~/Library/Application Supportです。VERSION は、Widevine CDM プラグインのバージョン文字列で、 1.4.8.866のような文字列が格納されます。PLATFORM は、 macwinです。ARCHx86x64です。

Windowsでは、widevinecdm.dllwidevinecdmadapter.dllが必要で、macOSでは、libwidevinecdm.dylibwidevinecdmadapter.pluginです。任意の場所にコピーできますが、一緒に配置する必要があります。

Linux

Linux上では、プラグインバイナリは、Chromeブラウザーにいっほに格納され、 /opt/google/chrome 配下にあり、ファイル名は libwidevinecdm.solibwidevinecdmadapter.soです。

プラグインを使用する

プラグインファイルを取得した後、Electronoの--widevine-cdm-pathコマンドラインスイッチでwidevinecdmadapterのパスを指定し、--widevine-cdm-versionスイッチでプラグインのバージョンを指定します。

Note: widevinecdmadapter バイナリはElectronにパスが通っていてもwidevinecdm バイナリはそこに置く必要があります。

コマンドラインスイッチは、appモジュールのreadyイベントが発火する前に通り、プラグインが使用するページは、プラグインを有効にしなければなりません。

サンプルコード:

// You have to pass the filename of `widevinecdmadapter` here, it is
// * `widevinecdmadapter.plugin` on macOS,
// * `libwidevinecdmadapter.so` on Linux,
// * `widevinecdmadapter.dll` on Windows.
app.commandLine.appendSwitch('widevine-cdm-path', '/path/to/widevinecdmadapter.plugin')
// The version of plugin can be got from `chrome://plugins` page in Chrome.
app.commandLine.appendSwitch('widevine-cdm-version', '1.4.8.866')

let win = null
app.on('ready', () => {
  win = new BrowserWindow({
    webPreferences: {
      // The `plugins` have to be enabled.
      plugins: true
    }
  })
})

プラグインの検証

プラグインが動作するかどうかを検証するために、次の方法を使用できます。

results matching ""

    No results matching ""