Building Hulu’s Living Room Experience with Amazon Alexa
by Ling Shi, Principal Software Development Lead
Smart home device use is expanding rapidly — almost a third of all households in the US used a smart speaker to make a purchase in Q4 2017. With more consumers leveraging these devices to make their daily lives easier, we knew bringing Hulu commands to smart home devices would be impactful and useful for our viewers. That’s why this past fall, we announced Hulu’s first foray into voice control using Amazon Alexa with Fire TV.
In this post, we will explain how we used the Alexa Skills Kit and Video Skill API to deliver a voice-centric experience to Alexa.
This past fall, Hulu viewers watching on Amazon Fire TV were able to enjoy our voice control system on Alexa-enabled devices such as the Echo and the Dot or their Fire TV voice remote.
Below are some examples of commands viewers can leverage to control Hulu via voice:
“Alexa, watch ESPN on Hulu.”
“Alexa, tune to Bravo.”
“Alexa, watch The Handmaid’s Tale.”
“Alexa, watch This is Us.”
“Alexa, play next”
The Technical Details of Our Integration
We developed the Hulu voice command system by leveraging the Video Skill API in the Alexa Skills Kit. The Hulu system consists of the following parts:
- Hulu Metadata Service — This service exports Hulu catalog information (metadata and show availability windows) to Amazon. By delivering up Hulu’s content catalog to Amazon, Alexa can understand and serve up requested content.
- Alexa Service — This consists of a set of core services that bind the Hulu app, Fire TV, and Alexa-enabled device together to convert the viewer’s voice command to Alexa directives
- AWS Lambda — This is a microservice that runs on AWS to convert Alexa directives to Hulu-specific actions
- ADM Service — This is an Amazon push notification service that exists to deliver Hulu directives to the Hulu Fire TV App
- Hulu App — This is the core Hulu app and user interface running on the Fire TV. It retrieves Hulu directives from ADM and executes them within the app.
- Alexa Video Library — This is a library provided by Amazon to simplify device pairing for the Hulu App
- Amazon Echo — This is the device inside the viewer’s home that receives voice commands and replies accordingly
The workflow is structured as follows:
- Amazon calls the Hulu Metadata Service regularly to retrieve the Hulu catalog
- The viewer launches the Hulu App by simply saying “Alexa, open Hulu”
- When the Hulu App is launched, the Alexa Video Library registers it with the Alexa service and pairs it to the Hulu video skill
- The viewer invokes the Hulu video skill by saying “Alexa, watch [title] on Hulu”, or “Alexa, pause” etc.
- Alexa service handles the voice input commands and converts them to Alexa directives, finally pushes out to AWS Lambda
- For a video on demand playback directive (e.g. “Alexa, watch The Handmaid’s Tale”), the Alexa service will send Hulu a unique show ID to the Hulu video skill.
- For a live program playback directive (e.g. “Alexa,tune to HBO”), the Alexa service will send a “go to network X” directive to the Hulu video skill.
- Playback control directives (pause, seek, etc…) are forwarded directly to Hulu video skill.
- Hulu video skills converts the Alexa directives to Hulu directives and sends them to the Hulu App via the ADM push notification mechanism
- The Hulu App gets a directive from ADM and runs that command for the users
- For all launching playback directives, the Hulu App will check the user’s entitlement, content availability, geo location, and other restrictions.
- If the directive is to launch a live program, the Hulu App will handle local affiliate channel selection — map a network, like Fox Sports, to a local channel “Fox Sports Arizona” based on user’s geolocation.
This design was just the beginning, and we’re currently researching additional improvements to enrich our viewers’ experience since the launch of this feature last fall.
If you’re interested in working on projects like these, see our current job openings here.