A persistent solution to presenting content across multiple Chromecast devices, inspired by Greenscreen.
Developed with Node, React, and Apollo.
This branch is in an unstable, pre-release state. Use at your own risk. You've been warned.
Parcel currently has an issue with circular dependencies maxing out the call stack. It's been patched (see here) but that patch hasn't made it into a release yet. For now, a local tarball with the patches included is bundled in .pkgs
. Once this patch is merged, I'll pin the newer version and remove the bundled dependency.
TODO: Usage instructions.
This project requires Node.js and NPM (bundled with Node), as well as a MongoDB server. Since Node is cross-platform, it should work on Windows, MacOS, and Linux.
Grab the latest stable copy of Node/NPM from here or install it via nvm.
In order to access the Chromecast API, you need to register as a Cast developer (it costs $5).
Once you've done this, log in to the Cast Developer SDK Console and click Add New Application. Choose Custom Receiver, then name it Multicast
and set the Receiver Application URL to http://YOUR_LOCAL_IP:3944/landing
. Disable Guest Mode and then Save.
NOTE: Make sure to use your LAN IP here (192.168.1.xx or similar), not your WAN/external IP. This should resolve to your server only within your local network.
You now need to register your Chromecast devices as developer devices. For each device, locate the Serial Number (located on the back of the device and on the box), click Add New Device, and enter the Serial Number and a brief Description. (NOTE: This may take up to 15 minutes to take effect. Go grab a cup of coffee and then head back.)
TODO: Application-specific installation instructions.
In order for a Chromecast to establish and maintain a connection with a Cast sender, the sender must open two ports:
1900/UDP (DIAL) 5353/UDP (mDNS)
Make sure that the device running MultiCast has these ports open, as well as the standard HTTP ports
80/TCP/UDP (HTTP) 443/TCP/UDP (HTTPS)
Multicast can't find your devices? Make sure they've already been setup and powered on and the display that they're connected to is powered on and displaying their output.
If you can view them from other Cast-enabled apps but not from Multicast, its likely an issue with your firewall. Make sure you configured your firewall correctly (see Firewall Settings).
Running CentOS and Seeing This Error?
Error: getaddrinfo -3008
Make sure you have nss_mdns
installed:
sudo yum install nss_mdns
If you run into any problems while using this, please report them here.
See the contribution guide for instructions on contributing to the project.
This project relies on node-castv2 which uses an outdated version of protobuf. Details of the vulnerability can be found here.
This project is licensed under the MIT License - see LICENSE for more details.
Special thanks to Greenscreen and the team over at Groupon for inspiring this product.