---
title: Learn How to Build a Video Alexa Skill for Echo Show
description: Is Youtube dead in your Echo Show? Learn how to build an Alexa skill for the new Echo Show device using the new video capabilities.
image: https://blog.webrtc.ventures/hubfs/Imported_Blog_Media/WebRTC-VideoAlexaSkill.png
---

[Skip to content](https://blog.webrtc.ventures/2017/11/learn-how-to-build-a-video-alexa-skill-for-echo-show#main-content)

![WebRTC.ventures](https://blog.webrtc.ventures/hubfs/logo-main-light.svg)

- [WebRTC Services](https://webrtc.ventures/webrtc-development-services/)
  
  Show submenu for WebRTC Services 
  
    - [Assess](https://webrtc.ventures/services/assess/)
    - [Build](https://webrtc.ventures/services/build/)
    - [Integrate](https://webrtc.ventures/services/integrate/)
    - [Test](https://webrtc.ventures/services/test/)
    - [Manage](https://webrtc.ventures/services/manage/)
    - [Migrating From Twilio Video](https://webrtc.ventures/twilio-video/)
- Our Partners
  
  Show submenu for Our Partners 
  
    - [Amazon Chime SDK](https://webrtc.ventures/partners/amazon-chime-sdk/)
- Stories of Success
  
  Show submenu for Stories of Success 
  
    - [Remote Video Interpreting Platform with Agent Routing](https://webrtc.ventures/successes/remote-video-translation-platform/)
    - [WebRTC to SIP Gateway for ASL Interpreters](https://webrtc.ventures/successes/webrtc-to-sip-gateway-for-asl-interpreters/)
    - [Audio Listening Device to Improve Surgical Outcomes](https://webrtc.ventures/successes/audio-listening-device-to-improve-surgical-outcomes/)
    - [Albania’s First Telemedicine Platform](https://webrtc.ventures/successes/albanias-first-telemedicine-platform/)
    - [Automated Video Storytelling with the Amazon Chime SDK](https://webrtc.ventures/successes/automated-video-storytelling-with-the-amazon-chime-sdk/)
    - [Large Scale Video Conferencing](https://webrtc.ventures/successes/large-scale-video-conferencing/)
    - [Broadcasting and Webcast Control Room](https://webrtc.ventures/successes/live-video-broadcasting-and-webcast-control-room/)
- WebRTC Resources
  
  Show submenu for WebRTC Resources 
  
    - [WebRTC Live](https://webrtc.ventures/webrtc-live/)
    - [WebRTC Tips](https://www.youtube.com/playlist?list=PLayYqdnyegt3QvxX-Rt6wbFIK8727Z5Oz)
    - [WebRTC.ventures Blog](https://webrtc.ventures/blog/)
    - [Migrating From Twilio Video](https://webrtc.ventures/twilio-video/)
    - [WebRTC.ventures Training Program](https://webrtc.ventures/webrtc-ventures-training-program/)
- [About Us](https://webrtc.ventures/our-team/)
  
  Show submenu for About Us 
  
    - [Blog](https://webrtc.ventures/blog/)
    - [Our Team](https://webrtc.ventures/our-team/)
    - [Jobs](https://webrtc.ventures/jobs/)

Open main navigation

Close main navigation

- [WebRTC Services](https://webrtc.ventures/webrtc-development-services/)
  
  Show submenu for WebRTC Services 
  
    - [Assess](https://webrtc.ventures/services/assess/)
    - [Build](https://webrtc.ventures/services/build/)
    - [Integrate](https://webrtc.ventures/services/integrate/)
    - [Test](https://webrtc.ventures/services/test/)
    - [Manage](https://webrtc.ventures/services/manage/)
    - [Migrating From Twilio Video](https://webrtc.ventures/twilio-video/)
- Our Partners
  
  Show submenu for Our Partners 
  
    - [Amazon Chime SDK](https://webrtc.ventures/partners/amazon-chime-sdk/)
- Stories of Success
  
  Show submenu for Stories of Success 
  
    - [Remote Video Interpreting Platform with Agent Routing](https://webrtc.ventures/successes/remote-video-translation-platform/)
    - [WebRTC to SIP Gateway for ASL Interpreters](https://webrtc.ventures/successes/webrtc-to-sip-gateway-for-asl-interpreters/)
    - [Audio Listening Device to Improve Surgical Outcomes](https://webrtc.ventures/successes/audio-listening-device-to-improve-surgical-outcomes/)
    - [Albania’s First Telemedicine Platform](https://webrtc.ventures/successes/albanias-first-telemedicine-platform/)
    - [Automated Video Storytelling with the Amazon Chime SDK](https://webrtc.ventures/successes/automated-video-storytelling-with-the-amazon-chime-sdk/)
    - [Large Scale Video Conferencing](https://webrtc.ventures/successes/large-scale-video-conferencing/)
    - [Broadcasting and Webcast Control Room](https://webrtc.ventures/successes/live-video-broadcasting-and-webcast-control-room/)
- WebRTC Resources
  
  Show submenu for WebRTC Resources 
  
    - [WebRTC Live](https://webrtc.ventures/webrtc-live/)
    - [WebRTC Tips](https://www.youtube.com/playlist?list=PLayYqdnyegt3QvxX-Rt6wbFIK8727Z5Oz)
    - [WebRTC.ventures Blog](https://webrtc.ventures/blog/)
    - [Migrating From Twilio Video](https://webrtc.ventures/twilio-video/)
    - [WebRTC.ventures Training Program](https://webrtc.ventures/webrtc-ventures-training-program/)
- [About Us](https://webrtc.ventures/our-team/)
  
  Show submenu for About Us 
  
    - [Blog](https://webrtc.ventures/blog/)
    - [Our Team](https://webrtc.ventures/our-team/)
    - [Jobs](https://webrtc.ventures/jobs/)
- [Contact us](https://webrtc.ventures/contact/)

[Contact us](https://webrtc.ventures/contact/)

 Nov 2, 2017 12:00:00 AM

# Learn How to Build a Video Alexa Skill for Echo Show

[Alberto Gonzalez](https://blog.webrtc.ventures/author/alberto-gonzalez)

Share: [linkedin-in icon](http://www.linkedin.com/shareArticle?mini=true&url=https://blog.webrtc.ventures/2017/11/learn-how-to-build-a-video-alexa-skill-for-echo-show) [X Twitter icon](https://twitter.com/intent/tweet?url=https://blog.webrtc.ventures/2017/11/learn-how-to-build-a-video-alexa-skill-for-echo-show) [envelope icon](mailto:?body=https://blog.webrtc.ventures/2017/11/learn-how-to-build-a-video-alexa-skill-for-echo-show)

This post will explain how to build an Alexa skill for the new Echo Show device using the new video capabilities. By saying \`*Alexa, ask dropbox player to play ABC*\` the skill will search ABC in the linked “*Alexa*” folder and play remote dropbox videos in the echo device. You can use this logic with any storage service, for example S3, but we decided to use Dropbox because it is easier to use for non developers and doesn’t have any data transfer costs.

When I started this blog post, I was planning to directly stream video from Youtube into the alexa device; however, it seems that a skill that could do this would go against youtube terms of service. Note: we do not suggest going against Youtube’s terms; however, if someone is interested in learning more about the aforementioned skill, you can check it out [here](https://github.com/dmhacker/alexa-youtube-skill). 

Once I discarded the youtube streaming, I decided to play media files from Dropbox.

For testing, if you don’t have an Echo, the Amazon Developer portal lets you play and test skills. Yet, if you are playing audio and video, you will see that the portal is not quite there yet.

I also tried using Alexa Pi but, while I was able to play with several skills and stream audio easily, streaming video needed a real Echo show device capable of working with all the new graphical features: lists, images, audio/video players and touch selection events.

Let’s start with the high-level flow diagram of the skill to be developed:

[![](https://blog.webrtc.ventures/hs-fs/hubfs/Imported_Blog_Media/WebRTC-VideoAlexaSkillDiagram-1.png?width=896&height=306&name=WebRTC-VideoAlexaSkillDiagram-1.png) ![](https://blog.webrtc.ventures/hs-fs/hubfs/Imported_Blog_Media/WebRTC-VideoAlexaSkillDiagram-1.png?width=896&height=306&name=WebRTC-VideoAlexaSkillDiagram-1.png)](https://blog.webrtc.ventures/hubfs/Imported_Blog_Media/WebRTC-VideoAlexaSkillDiagram-1.png)

When a user speaks to Alexa, the Alexa Skill service will receive a POST request. This request body will contain the parameters for the Alexa service to generate a JSON reponse to a Web App or lambda function which will retrieve the video file and return it to the Alexa device. It will send something like the following to Alexa:

*“response”: {    “outputSpeech”: null,    “card”: null,    “directives”: \[     {         “type”: “VideoApp.Launch”,         “videoItem”:         {             “source”: “https://www.example.com/video/sample-video-1.mp4”,            “metadata”: {                 “title”: “Title for Sample Video”,                 “subtitle”: “Secondary Title for Sample Video”                          }         }    }         \],     “reprompt”: null    }*

Response example using the video directive

This message sent from the web service or lambda function to the Alexa service would be interpreted and in this case, the Echo Show would play the *sample-video-1.mp4*.

**Alexa Skill Configuration**

For this skill, you will have to have an amazon device registered with your amazon developer account. Once it is done, you will have to create a custom skill in the amazon developer [site](https://developer.amazon.com).

First, go to the *Alexa* tab and click on *get started* under the Alexa Skills Kit menu and then click on *add a new skill*.

After that, you can create the skill with any name and *Dropbox player* invocation name. You will also enable the Audio, Video and template global fields in out Alexa custom skill.

[![](https://blog.webrtc.ventures/hs-fs/hubfs/Imported_Blog_Media/AlexaSkillKit.png?width=562&height=325&name=AlexaSkillKit.png) ![](https://blog.webrtc.ventures/hs-fs/hubfs/Imported_Blog_Media/AlexaSkillKit.png?width=562&height=325&name=AlexaSkillKit.png)](https://blog.webrtc.ventures/hubfs/Imported_Blog_Media/AlexaSkillKit.png)

Once saved, you will press next and set up the interaction model and the configuration of the skill. In the interaction model you will use the built-in [intents](https://developer.amazon.com/docs/custom-skills/implement-the-built-in-intents.html) plus the *NumberIntent* (Intent for searching specific track in folder), *SearchIntent* (Intent for search specific text filename in folder) and *DemoIntent* (Intent for playing a demo video). For detailed information about the model used and steps, go to the repository [here](https://github.com/agilityfeat/video-streaming-alexa-skill).

In the configuration you will let the Alexa skill know where the lambda function is by passing to it the lambda ARN. For that you will have to create a lambda function.

**Lambda Function Configuration**

For creating the lambda function you will have to login to the AWS portal and click on the left cortner *Services* and then go to *Lambda* under compute. Then you will click on create a function and fill the function name and role. If you don’t have an existing role, you can create a default one and click on create function. After that, fill the environment variables with your *Dropbox Token* (This can be obtained creating a Dropbox developer app, more info [here](https://www.dropbox.com/developers)) and *Media Bucket* (Bucket name publicly available) and, then, configure the *Basic settings* with 320MB and 30s timeout.

[![](https://blog.webrtc.ventures/hs-fs/hubfs/Imported_Blog_Media/LambadaFunctionConfiguration-1.png?width=576&height=460&name=LambadaFunctionConfiguration-1.png) ![](https://blog.webrtc.ventures/hs-fs/hubfs/Imported_Blog_Media/LambadaFunctionConfiguration-1.png?width=576&height=460&name=LambadaFunctionConfiguration-1.png)](https://blog.webrtc.ventures/hubfs/Imported_Blog_Media/LambadaFunctionConfiguration-1.png)

Now you only need the function code that will contain all the logic for performing the API requests and responses to the Alexa service. This function can be downloaded from the following [github repository. ](https://github.com/agilityfeat/video-streaming-alexa-skill) If you don’t want to change anything there, you can directly upload the .ZIP file to the lambda function.

Important Notes about the lambda function code and the Alexa skill:

- It requires a Alexa/ folder in your dropbox account with some media file.
- I discovered that we can’t include more than one directive in the same response when you are using an *AudioPlayer.Play* directive with long-form audio or a *VideoApp.Launch*. It won’t work.
- It is important to note the *supportsDisplay* function. It is necessary to detect if an Alexa device has screen or not.
- For a very detailed information on how to create custom skills you can go [here](https://developer.amazon.com/docs/custom-skills/understanding-custom-skills.html)

**Test**

For testing, go back to the Amazon developer site (where we started creating the skill) and paste the ARN of the lambda function in the *endpoint* blank, under the *Configuration* tab.  Click on save and you will be able to test. Some functionalities like video or long audio do not work in the *Service Simulator* so the best way will be to test using an Echo Show and saying: *Alexa, launch dropbox player.* But If you don’t have a echo show handy, you can simulate some visual interactions or single requests.

[![](https://blog.webrtc.ventures/hs-fs/hubfs/Imported_Blog_Media/AlexaBlog1.png?width=578&height=392&name=AlexaBlog1.png) ![](https://blog.webrtc.ventures/hs-fs/hubfs/Imported_Blog_Media/AlexaBlog1.png?width=578&height=392&name=AlexaBlog1.png)](https://blog.webrtc.ventures/hubfs/Imported_Blog_Media/AlexaBlog1.png)

[![](https://blog.webrtc.ventures/hs-fs/hubfs/Imported_Blog_Media/EchoShow-1.png?width=576&height=356&name=EchoShow-1.png) ![](https://blog.webrtc.ventures/hs-fs/hubfs/Imported_Blog_Media/EchoShow-1.png?width=576&height=356&name=EchoShow-1.png)](https://blog.webrtc.ventures/hubfs/Imported_Blog_Media/EchoShow-1.png)

From here the user will be able to say: *track 2* or *play atletico* and the track 2 video will launch.

[![](https://blog.webrtc.ventures/hs-fs/hubfs/Imported_Blog_Media/StreamingFC-1.png?width=446&height=404&name=StreamingFC-1.png) ![](https://blog.webrtc.ventures/hs-fs/hubfs/Imported_Blog_Media/StreamingFC-1.png?width=446&height=404&name=StreamingFC-1.png)](https://blog.webrtc.ventures/hubfs/Imported_Blog_Media/StreamingFC-1.png)

And for stopping or exiting the app you will just have to say *Alexa stop* or *Alexa exit*.

In conclusion, although it is great to be able to build video skills, amazon is making his point clear. For them, Alexa is a voice first and the visual display is limited. Don’t expect to customize Alexa display as we do in Web development. But, if you don’t need a high degree of visual customization, it is easy to develop basic skills, there is good documentation, and, overall, Alexa skills can be great for extending current web apps and reaching people using amazon devices.

## Contact us to build or improve your WebRTC app!

Do you need more information on how to build audio or video Alexa skills in your next project? Would you like to extend your current service to Amazon Alexa? We have a team with thousands of hours of experience in video and audio applications and happy to help you out.

[Contact us today!](https://webrtc.ventures/contact/)

[CPaaS](https://blog.webrtc.ventures/tag/cpaas), [Managed Services](https://blog.webrtc.ventures/tag/managed-services), [Events](https://blog.webrtc.ventures/tag/events), [Video Conferencing](https://blog.webrtc.ventures/tag/video-conferencing), [Real Time Weekly](https://blog.webrtc.ventures/tag/real-time-weekly), [WebRTC Architecture](https://blog.webrtc.ventures/tag/webrtc-architecture), [Broadcasting](https://blog.webrtc.ventures/tag/broadcasting), [Medical](https://blog.webrtc.ventures/tag/medical), [WebRTC Live](https://blog.webrtc.ventures/tag/webrtc-live), [Showcase](https://blog.webrtc.ventures/tag/showcase), [Thoughts](https://blog.webrtc.ventures/tag/thoughts), [Vonage](https://blog.webrtc.ventures/tag/vonage), [Daily](https://blog.webrtc.ventures/tag/daily), [Jobs](https://blog.webrtc.ventures/tag/jobs), [Contact Centers](https://blog.webrtc.ventures/tag/contact-centers), [Telehealth](https://blog.webrtc.ventures/tag/telehealth), [Education](https://blog.webrtc.ventures/tag/education), [Technical](https://blog.webrtc.ventures/tag/technical), [General](https://blog.webrtc.ventures/tag/general), [Story of success](https://blog.webrtc.ventures/tag/story-of-success), [The WebRTC.ventures Blog](https://blog.webrtc.ventures/tag/the-webrtc-ventures-blog), [Testing](https://blog.webrtc.ventures/tag/testing), [Gaming](https://blog.webrtc.ventures/tag/gaming), [DevOps](https://blog.webrtc.ventures/tag/devops), [Symbl.ai](https://blog.webrtc.ventures/tag/symbl-ai)

## Related posts

[![](https://blog.webrtc.ventures/hs-fs/hubfs/Imported_Blog_Media/Building-a-Serverless-Post-Call-Analysis-Pipeline-for-Your-Contact-Center-.png?height=200&name=Building-a-Serverless-Post-Call-Analysis-Pipeline-for-Your-Contact-Center-.png)](https://blog.webrtc.ventures/2024/03/building-a-serverless-post-call-analysis-pipeline-for-your-contact-center)

## [Building a Serverless Post-Call Analysis Pipeline for Your Contact Center](https://blog.webrtc.ventures/2024/03/building-a-serverless-post-call-analysis-pipeline-for-your-contact-center)

[Hector Zelaya](https://blog.webrtc.ventures/author/hector-zelaya) 

 Mar 26, 2024 12:00:00 AM

In A Serverless Approach to Post-Call Analysis Using AWS Lambda, Amazon Transcribe, and Amazon...

[Read more](https://blog.webrtc.ventures/2024/03/building-a-serverless-post-call-analysis-pipeline-for-your-contact-center)

[![](https://blog.webrtc.ventures/hs-fs/hubfs/Imported_Blog_Media/Live-Capturing-Your-Screen.png?height=200&name=Live-Capturing-Your-Screen.png)](https://blog.webrtc.ventures/2020/04/chrome-extension-live-capture-your-screen)

## [Live Capturing Your Desktop Screen with a Chrome Extension](https://blog.webrtc.ventures/2020/04/chrome-extension-live-capture-your-screen)

[Alberto Gonzalez](https://blog.webrtc.ventures/author/alberto-gonzalez) 

 Apr 28, 2020 12:00:00 AM

Chrome extensions have been around since the beginning of Google Chrome. Although we usually...

[Read more](https://blog.webrtc.ventures/2020/04/chrome-extension-live-capture-your-screen)

[![](https://blog.webrtc.ventures/hs-fs/hubfs/Imported_Blog_Media/Default-B.jpg?height=200&name=Default-B.jpg)](https://blog.webrtc.ventures/2022/12/hamza-vonage-attention-detection)

## [Hamza blogs on Vonage about Attention Detection with the Vonage Video API](https://blog.webrtc.ventures/2022/12/hamza-vonage-attention-detection)

![Picture of Jen Oppenheimer](https://blog.webrtc.ventures/hs-fs/hubfs/Our-Team-Jen.jpg?width=50&name=Our-Team-Jen.jpg) [Jen Oppenheimer](https://blog.webrtc.ventures/author/jen-oppenheimer) 

 Dec 1, 2022 12:00:00 AM

Hamza Nasir is a WebRTC Developer on the WebRTC.ventures team currently working with Vonage on...

[Read more](https://blog.webrtc.ventures/2022/12/hamza-vonage-attention-detection)

### WebRTC.Ventures Services

...

- Assess
- Build
- Integrate
- Test
- Deploy & Manage

### Contact Us

...

**Video should be an opportunity, not a headache.**   
 We’re here to build, integrate, assess and optimize, test, and even deploy and manage your live video application. 

[Contact us](https://blog.webrtc.ventures/2017/11/learn-how-to-build-a-video-alexa-skill-for-echo-show#contact)

### WebRTC Live

...

 View [past episodes](https://blog.webrtc.ventures/webrtc-live/) of our webinar interview series about the latest webRTC use cases and technical updates. Join our mailing list to learn about upcoming episodes! 

![WebRTC Live](https://blog.webrtc.ventures/hs-fs/hubfs/Template%20Images/widged-bannet.webp?height=90&name=widged-bannet.webp)

![logo-main-light](https://blog.webrtc.ventures/hubfs/logo-main-light.svg "logo-main-light")

We’re one of the few agencies in the world dedicated to WebRTC development. This dedication and experience is why so many people trust us to help bring live video application dreams to life.

 

### Let's get started!

###### **[Contact us today](https://webrtc.ventures/contact/)**

**[info@webrtc.ventures](mailto:info@webrtc.ventures)**

<https://www.linkedin.com/company/webrtc-ventures> <https://www.youtube.com/@WebrtcVentures>

### Join our mailing list

We don't e-mail often (a few times a month max), and it will be worth it when we do! Of course, we respect your privacy and will not share your contact information.

© 2023 WebRTC.ventures, an [AgilityFeat](https://agilityfeat.com/) company / [Privacy Policy](https://webrtc.ventures/privacy-policy//)

```json
{
  "@context" : "https://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Alberto Gonzalez",
    "url" : "https://blog.webrtc.ventures/author/alberto-gonzalez"
  },
  "dateModified" : "2024-04-03T18:21:21.641Z",
  "datePublished" : "2017-11-02T04:00:00.000Z",
  "headline" : "Learn How to Build a Video Alexa Skill for Echo Show",
  "image" : [ "https://blog.webrtc.ventures/hubfs/Imported_Blog_Media/WebRTC-VideoAlexaSkill.png" ],
  "mainEntityOfPage" : {
    "@id" : "https://blog.webrtc.ventures/2017/11/learn-how-to-build-a-video-alexa-skill-for-echo-show",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://blog.webrtc.ventures/hubfs/logo-main-light.svg"
    }
  }
}
```