Chromecast API wrapper for Electron applications
Clone or download
Latest commit 0c84bd7 Dec 17, 2017

Electron Chromecast

Join the chat at Build Status

An implementation of the chrome.cast API in electron



You must consume electron-chromecast from within your renderer process, preferably in a preload script.

// ES5

// ES6
import 'electron-chromecast';

This will inject the chrome.cast variables and the associated methods globally automatically.
By default when requesting a new Session through chrome.cast.requestSession you will be provided an active Session with the first Chromecast Device we find. To change this behaviour read the Advanced section.


// ES5
var chromecast = require('electron-chromecast');

chromecast(function (receivers) {
    return new Promise(function (resolve, reject) {
        // Do some logic to choose a receiver, possibly ask the user through a UI
        var chosenReceiver = receivers[0];

// ES6
import chromecast from 'electron-chromecast';

chromecast(async (receivers) => {
    // Do some logic to choose a receiver, possibly ask the user through a UI
    const chosenReceiver = receivers[0];
    return chosenReceiver;

The function returned from electron-chromecast should be called with a single parameter; a function that returns a promise that will eventually resolve with a single receiver. This receiver is the one that will be used by chrome.cast.


Note: Behind the scenes we use MDNS which has some system requirements, make sure your system has the required dependencies.


  • All the TODO's in code (We only implemented the functionality required by Google Play Music, however this should be sufficient for MOST applications)

TODO (But totally not needed): The API