All Projects → castlabs → electron-releases

castlabs / electron-releases

Licence: MIT license
castLabs Electron for Content Security

Programming Languages

python
139335 projects - #7 most used programming language
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to electron-releases

Shaka Player
JavaScript player library / DASH & HLS client / MSE-EME player
Stars: ✭ 5,386 (+3013.29%)
Mutual labels:  offline, drm
kaltura-player-android
Kaltura Player is a rich, easy to integrate and easy to use video player for all media types and ad scenarios you need. - based on Google ExoPlayer
Stars: ✭ 22 (-87.28%)
Mutual labels:  drm, widevine
txwrapper
Helper funtions for offline transaction generation.
Stars: ✭ 59 (-65.9%)
Mutual labels:  offline
Useful-Softwares-Tools-list
List of useful Softwares, Tools, Plugins, Utilities (Online/Offline)
Stars: ✭ 22 (-87.28%)
Mutual labels:  offline
fridge
Fridge for Codechef: An android app for downloading and browsing questions and contests from codechef.com offline
Stars: ✭ 17 (-90.17%)
Mutual labels:  offline
LightweightQtDRMStreamViewer
A lightweight as possible DRM stream viewer based on the Qt Web Engine
Stars: ✭ 15 (-91.33%)
Mutual labels:  drm
harika
Offline-, mobile-first graph note-taking app focused on performance with the knowledgebase of any scale
Stars: ✭ 111 (-35.84%)
Mutual labels:  offline
zx-ip-address
Deprecated
Stars: ✭ 96 (-44.51%)
Mutual labels:  offline
deadlines
A simple, offline deadline tracker made with Vue.js and localForage.
Stars: ✭ 22 (-87.28%)
Mutual labels:  offline
firefighter-demo
🚨 Demo to improve an existing firefighter app by making it queue tasks offline
Stars: ✭ 68 (-60.69%)
Mutual labels:  offline
kube-install
一鍵安裝部署高可用的多kubernetes集羣(二進位離線方式),支持定時安裝、添加與銷毀node、銷毀與修復master、一鍵卸載集羣等。One click offline installation of highly available multiple kubernetes cluster, supports schedule installation, addition of nodes, rebuild of kubernetes master, and uninstallation of clusters.
Stars: ✭ 336 (+94.22%)
Mutual labels:  offline
flutter map tile caching
Plugin for 'flutter_map' providing advanced caching functionality, with ability to download map regions for offline use.
Stars: ✭ 66 (-61.85%)
Mutual labels:  offline
eglfs
🚀 EGL fullscreen platform plugin
Stars: ✭ 21 (-87.86%)
Mutual labels:  drm
kainstall-offline
kainstall tools offline file
Stars: ✭ 31 (-82.08%)
Mutual labels:  offline
Offline
[READ-ONLY] Subtree split of the Payum Offline Component -- clone into Payum/Offline/ (master at payum/payum)
Stars: ✭ 25 (-85.55%)
Mutual labels:  offline
kubeplay
Deploy kubernetes by kubespray in offline
Stars: ✭ 123 (-28.9%)
Mutual labels:  offline
universal-react-starter-kit
Universal React Starter Kit is an universal web application framework using koa, react, redux and webpack.
Stars: ✭ 13 (-92.49%)
Mutual labels:  offline
preact-journal
14k offline-capable journaling PWA using preact, node, MySQL, and IndexedDB.
Stars: ✭ 33 (-80.92%)
Mutual labels:  offline
tailwindcss-dash-docset
TailwindCSS Dash Docset, built with the Dash Docset Builder in PHP. We needed it. 🌈️
Stars: ✭ 37 (-78.61%)
Mutual labels:  offline
progrssive
A PWA for reading RSS feeds. It works offline!
Stars: ✭ 23 (-86.71%)
Mutual labels:  offline

Electron for Content Security

Check out the Wiki for general news, guides, and other updates.

⚠️ The v16 series of Electron for Content Security, labeled wvcus, moves to using the Component Updater Service to handle installation of the Widevine CDM, and has incompatible API updates compared to the previous wvvmp releases.

See additional updates in the sections below, and please report any issues you find!

Electron for Content Security (ECS) is a fork of Electron created by castLabs to facilitate the use of Google's Widevine Content Decryption Module (CDM) for DRM-enabled playback within Electron, including support for Verified Media Path (VMP) and persistent license storage. It is intended to be used as a drop-in replacement for stock Electron and currently has full support for Windows and macOS platforms, with partial support for Linux (which lacks support for persistent licenses due to VMP limitations on the platform).

The sections below will describe the features/modifications that ECS provides, for anything else refer to the regular Electron documentation.

How does it work?

To achieve Widevine support the Widevine CDM will be installed on first launch and enabled as an option for playback of DRM protected content using common EME APIs. Subsequent launces will trigger a backround update check. If an update is available it will be downloaded and applied on next launch.

The provided builds are VMP-signed for development and can be used with Widevine UAT or other servers accepting development clients. For production use you can sign up for our EVS service, to obtain production VMP signing capabilities. Previously a license agreement with Google Widevine was required to get your own VMP signing certificate, but with EVS this is no longer necessary.

Installing

To install prebuilt ECS binaries, use npm. The preferred method is to install ECS as a development dependency in your app:

npm install "https://github.com/castlabs/electron-releases#v20.0.0+wvcus" --save-dev

Since ECS is not published in the npm package index a GitHub URL is used instead to reference a particular release, just modify the # tag at the end to the version you want to use.

⚠️ The above command is just an example, use a release of a currently supported version to make sure you have the latest features and security updates!

Using

Using ECS is very similar to using stock Electron, the main difference being that you should wait for the Widevine CDM installation to complete before opening your BrowserWindow. This can be achieved using the new components API:

const {app, components, BrowserWindow} = require('electron');

function createWindow () {
  const mainWindow = new BrowserWindow();
  mainWindow.loadURL('https://shaka-player-demo.appspot.com/');
}

app.whenReady().then(async () => {
  await components.whenReady();
  console.log('components ready:', components.status());
  createWindow();
});

Extensions to Electron

The only visible extensions provided is the new components API.

Widevine CDM installation

Component installation/updates are always automatically triggered unless the Component Updater is disabled, e.g. by passing --disable-component-update. This is always done on a delay timer, even if there is no version of a component installed.

To make sure the Widevine CDM is promptly installed the components.whenReady() API can be used (see example above). This forces immediate installation if there isn't already a version of the Widevine CDM available.

Legal notice / Disclaimer

THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. UPDATES, INCLUDING SECURITY UPDATES, WILL BE PROVIDED ON A BEST-EFFORT BASIS.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].