Yes, the old days of channel-surfing have given way to Netflix binges. But the question remains: What should I watch?
Maybe you just finished Game of Thrones, or finally caught up with the rest of us and watched Breaking Bad. But what else is out there that you might enjoy? That where "What I Like" comes in.
What it does
You can just keep it simple: Say something along the lines of "I like Stranger Things", and let the skill give you up to 10 recommendations.
Say things like "I like Breaking Bad", or "recommend something like The Incredibles."Get an answer the age-old question: What do you want to watch tonight?
How I built it
It uses the TasteDive API to find similar recommendations based on user input. So, a user says "I like Coco" (I mean, who doesn't, right?), and the Taste Dive API is queried for similar results. The skill shares the first result from a list of 10, and asks the user if they want to hear another recommendation. It will go through a list of up to 10 recommendations.
Challenges I ran into
If the first response from the TasteDive comes back with no results, the user query is still a filled slot and the intent's DialogState is still "started". I wanted to ask the user to try again, but the skill continued to error out because I could not figure out how to reset the DialogState or empty the filled slots.
Accomplishments that I'm proud of
This is my first skill that uses an external API and that uses Multi-Turn Dialog.
What I learned
I learned to be careful with asynchronous http requests, because "this" is my callback code wasn't what I thought it was.
What's next for What I Like
Fixing the issue mentioned above to let a user ask for a different recommendation if they get no results. Beyond that, I'd also like to allow users to request a specific media type, as in "recommend a book like 'Breaking Bad'".