/somafm-alexa

Play Soma FM channels on your Echo

Primary LanguageJavaScriptMIT LicenseMIT

Soma FM for Alexa

Play Soma FM channels on Alexa! Over 30 unique channels of listener-supported, commercial-free, underground/alternative radio broadcasting to the world. All music hand-picked by SomaFM's award-winning DJs and music directors. If you enjoy what you're hearing on Soma FM please support them!

Update 4/20/17

This skill has been published by Soma FM. It's free to enable. Check it out!

Motivation

I love Soma FM and while channels are available with Alexa via TuneIn they're not always easy to dig out. It seemed to me that the easiest way to reliably summon BAGeL Radio and Lush to my Echo was to create a Soma FM specific skill. Additionally I wanted to try cutting my teeth on Alexa Skill development. Two birds with one stone! This skill is not (yet) published so to use it you will have to have a developer account with Amazon and be somewhat comfortable deploying a new skill to Lambda. A nice getting started guide is here.

What Can it Do?

Play a Channel

Alexa ask Soma FM to play Indie Pop Rocks! - Plays Indie Pop Rocks! Substitute you favorite station and away you go!

After the channel starts you'll see the following card in the Alexa app.

Indie Pop Rocks

Tell You What Song is Currently Playing

Alexa ask Soma FM what song is playing - Responds with the song title and artist of the currently playing song -> "This is How Dare You by Thao & Mirah"

We'll jot that down on a card so you can come back to it later if you like.

Thao & Mirah

Tell You What the Most Popular Stations Are

Alexa ask Soma FM what's popular - Responds the most popular channels -> "The most popular stations ranked by current listeners are Groove Salad, Drone Zone, and Space Station Soma"

I mean, outside of the holidays, that's usually the three you'll hear in my experience but it's nice for someone new to Soma FM.

Things to be Aware of

  • The channel list is currently hard coded so if a new one launches a code change will be required. Tough not to with custom slot types. Maybe I'll figure out a way rectify this in the future.
  • Alexa hears "SF 10-33" as "SF 10 33" aka "SF Ten Thirty Three.

How Do I Build It?

It may be helpful to walk through the audio player example to make sure you have everything set up correctly. That said, here is the short version.

cd js
npm install
zip -r ../soma.zip .

Then just upload it to Lambda.