Since its release in 2013, Chromecast has gone a long way and had several iterative hardware upgrades (generations 1-3, Ultra, and Audio). Nonetheless, the core design principles of the device remained – Chromecast offers a simple and affordable streaming experience with cross-device compatibility. 

Chromecast’s latest incarnation released earlier this year makes it much more than just a simple streaming stick. The addition of an interactive user interface and a dedicated remote control has turned it into a fully-fledged media platform attracting even more interest from app developers and media providers. 


Depending on the source, Google is estimated to have sold at least 30-55 million Chromecast and Chromecast built-in devices. The Cast SDK was made available to all developers in 2014. At the same time, Chromecast app development services are on the rise, and Chromecast developers are in high demand.

The 2020 Google Chromecast is not only a 4K refresh of the 2016 Ultra model, but also comes with a remote control.

What is Chromecast?

From a user’s perspective, Chromecast is probably the easiest way to stream video content from an app to your TV. Hardware-wise, it’s an affordable, simple HDMI dongle that you plug into your TV’s HDMI port (although the cast functionality can also be built into your TV). One of the biggest advantages of Chromecast is convenience and cross-device compatibility. 

Chromecast is also relatively cheap. The new 4K-capable Chromecast with Google TV (that’s the actual name!) costs just $49.99.

The cast icon appears in every supported app once a compatible receiver application is found in the same network.

The Google Cast feature essentially turns your existing smartphone, tablet, or laptop into a remote control for a media app. With a press of the Chromecast icon in your favorite app, you can play, pause, rewind, control the volume and even make playlists. 

What’s important, casting with Chromecast does not drain your phone’s battery or increase the load on the processor – while streaming content to your TV, you can still launch another app or even let your device go into sleep mode.

How to become a Chromecast developer?

To start your career as a Chromecast developer, you need to install your Google Cast device and register it at the Google Cast SDK Developer Console. This will be a necessary step for all the app testing purposes. For help registering devices go here.

  • Plug your Chromecast into the TV’s HDMI port and connect USB for power.
  • Download and run the Google Home app on your sender device (phone or tablet). Alternatively, you can cast from your browser on a laptop).

Register your device here.

The Google Home app serves as the hub for all your Google Cast devices.

Google Cast SDK

Google Cast SDK provides Chromecast developers with API libraries and a collection of a few example applications to inspire you and help you build your first Google Cast application. The APIs are well documented in the Google Cast API Reference here (more on that below).

Remember that each Google Cast app must consist of a sender and receiver application. One (e.g. the phone or tablet) sends the content to the other (e.g. TV).

Sender application

The sender supports user actions from the supported mobile device (phone or tablet). To develop a sender application you will need to use Cast APIs dedicated to the specific platform:

Basic design principles for the sender application:

  • The sender application (eg. a mobile device) should indicate when it’s ready to start playing. For example, the play button is not displayed until the device is ready to start playing on the receiver device.
  • Casting controls are big and easy to use.
  • Display relevant loading screens to show when content is loading or the device is not ready for casting
  • Add transitions make the app “feel” faster.

Receiver application

The receiver application handles communication between the sender app and the Cast device. You have the following options when developing a receiver application:

Basic design principles for the receiver application:

  • Display state information. If the content is paused, it should be indicated on the TV screen.
  • The receiver can display additional information when paused (e.g. show plot synopsis or cast information).

1. Default Media Receiver 

The default media receiver is the no-frills Chromecast casting experience, and includes Google’s branding and styling. There is no way to customize UI elements. This receiver application is pre-built and hosted by Google. It provides the basic controls and UI elements for audio and video content streaming purposes. 

To use the Default Media Receiver you do not need to register with the Google Cast SDK Developer Console.

2. Styled Media Receiver

The styled media receiver allows you to add your styles and branding based on a pre-built receiver application – a media player UI for audio and video content. Styled Media Receiver allows you to customize several UI elements with CSS.

The styled media receiver

To start with the Styled Media Receiver template, simply select this option when registering a new application. During the registration process, you will be asked to provide the URL to a CSS file allowing you to customize the receiver application’s UI (more about the CSS styles here).

3. Custom receiver

Custom receivers can be implemented using the Web Receiver SDK with HTML5/JavaScript to handle custom messages from your sender app. This is especially useful when your app provides media types other than those described in Supported Media. The Web Receiver application runs on a Chromecast and is implemented using the JavaScript Receiver API. 

The Web Receiver application enables the following:

  • A customized interface to display the app’s content on the TV.
  • Handling messages from the sender to control content on the receiver.
  • Handling custom messages from the sender application that are application-specific.

For a list of all features of the Web Receiver SDK read this.

Google is planning the next release of the Web Receiver SDK in December 2020. An early preview version of the update (aka Shaka v3) is available to Chromecast developers. 

The Web Receiver SDK extends the functionality of the app, e.g. by adding new content types. Source: Google

Basic design principles for the Web Receiver application

  • No interactive elements – only informational elements to describe the state of the app, (e.g. paused, playing, or error messages). 
  • User interaction should only take place on the sender device (phone, tablet, or Chrome browser), not the Web Receiver (TV).
  • UI elements should be located in the lower third of the Web Receiver display, leaving a 10% margin from the edges of the screen (for possible overscan).
  • Smooth and cinematic transitions (fade-in and fade-out) should be used between screen states. For example, the content-loading state lingers on-screen and fades into the media playing experience.

4. Android TV Receiver

Android TV Receiver uses the Cast Connect library. It builds on top of the Cast infrastructure but uses an Android TV app as a receiver. So, if you’re attempting to cast to your Android TV and a relevant app will receive the message and broadcast the requested media as if it was a Chromecast.

Which to choose?

The type of your receiver application may depend on the specific media types your application needs to support and stream.

How to start developing for Chromecast

Each media application must use the Media Playback Messages defined for the Google SDK. This will ensure the media app will offer a consistent user experience across many platforms. These structures also support custom data, where appropriate, and an application may define its own messages for commands not supported by the SDK.

You must register a Styled Media Receiver or a Custom Receiver to receive an application ID that’s used with API calls from the sender application. For detailed instructions on how to register your Sender and Receiver applications go here.

  1. Review Google’s User Experience Guidelines to make sure your design is consistent with other Cast apps.
  2. Get the API libraries for sender and receiver apps.
  3. Have a look at Sample Chromecast Apps to help you get started.
  4. Register and publish your application to get an app ID to include with your API calls.

Sample Apps

The easiest way to make headway with your first Google Cast compatible app is to see the sample apps provided by Google and play around with them.

Sample apps (and Tutorials) provide useful examples of working code that you can browse, run, and learn from to get started developing your own Google Cast app. These apps comply with the Google Cast Design Checklist and follow Google Cast development best practices, and thus serve as a solid starting point for developing an own app for Google Cast.

CastReceiver

Details
Platform Receiver, MPL
Languages JavaScript, HTML, CSS
Source Code github.com/googlecast/CastReceiver
Tutorial codelabs.developers.google.com/codelabs/cast-receiver/

CastAndroidTvReceiver

Details
Platform Android
Languages Android
Source Code github.com/googlecast/CastAndroidTvReceiver
Tutorial codelabs.developers.google.com/codelabs/cast-connect-atv/

CastVideos-android

Details
Platform Android
Languages Android
Source Code github.com/googlecast/CastVideos-android
Tutorial codelabs.developers.google.com/codelabs/cast-videos-android/

CastVideos-ios

Details
Platform iOS
Languages Swift, Objective-C
Source Code github.com/googlecast/CastVideos-ios
Tutorial codelabs.developers.google.com/codelabs/cast-videos-ios/

CastVideos-chrome

Details
Platform Chrome
Languages JavaScript, HTML, CSS
Source Code github.com/googlecast/CastVideos-chrome
Tutorial codelabs.developers.google.com/codelabs/cast-videos-chrome/

Video apps

The video apps listed here show how to cast videos from a sender using the CAF Sender SDK. For simplicity, these apps are not fully compliant with the UX Checklist.

CastHelloVideo-ios

Details
Platform iOS
Languages Objective-C, Swift
Source Code github.com/googlecast/CastHelloVideo-ios

Audio apps

The audio apps listed here show best practices for building media apps.

Android-UniversalMusicPlayer

This app works across Android devices including Auto and Wear, as well as Cast devices.

Details
Platform Android
Languages Kotlin
Source Code github.com/googlesamples/android-UniversalMusicPlayer/

Summary

The possibility to “cast” video content to TV has been identified as one of the top user-requested features for all video and media apps. Developing apps for Chromecast or adding the Google Cast functionality to an existing media streaming platform is a surefire way to gain more visits, boost engagement, and unlock additional monetization opportunities.