Skip to content
This repository has been archived by the owner on Jun 23, 2022. It is now read-only.
/ multicast Public archive
forked from superhawk610/multicast

💚 A persistent solution to presenting content across multiple Chromecast devices.

License

Notifications You must be signed in to change notification settings

weglot/multicast

 
 

Repository files navigation




MultiCast

A persistent solution to presenting content across multiple Chromecast devices, inspired by Greenscreen.

Developed with Node, React, and Apollo.


pre-release v3.0 travis-build


PRE-RELEASE

This branch is in an unstable, pre-release state. Use at your own risk. You've been warned.

Known Issues

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.

Usage

TODO: Usage instructions.

Getting Started

Prerequisites

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.

Setup

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.

Firewall Settings

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)

Having Trouble?

Common Errors

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

Issues

If you run into any problems while using this, please report them here.

Contributing

See the contribution guide for instructions on contributing to the project.

Security Disclosure

This project relies on node-castv2 which uses an outdated version of protobuf. Details of the vulnerability can be found here.

License

This project is licensed under the MIT License - see LICENSE for more details.

Acknowledgments

Special thanks to Greenscreen and the team over at Groupon for inspiring this product.

About

💚 A persistent solution to presenting content across multiple Chromecast devices.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 96.9%
  • JavaScript 1.7%
  • Other 1.4%