So, the TL/DR version is - I started writing a web application that will handle IFTTT inputs from Google Assistant (and maybe Amazon) and then do stuff on Plex.
While there may be other API's, this one is designed to be fairly easy to set up, and easy to deploy. It runs on PHP/Javascript, has a webUI so you can debug commands and set up your server info, and has a pretty decent ability to parse the commands thrown at it.
Currently, it has the ability to parse out movie and show names from an array of voice commands and select a movie, the first unwatched show in a collection, or the newest episode of a show.
I've got intercepts in place for commands like "a movie with bill murray" or " a movie made in 1986", but haven't finished out the logic for selecting media - however, the queries are easy enough to do.
For shows, I also have hooks in place to catch "a random episode of", and "season xx" of - but again, just haven't finished out the logic to play that media.
I've also got the logic in place for commands to add media to couchpotato, and have started looking at the API for sonarr. This is an extension of an earlier little personal project I've already got working "Okay google, I want the movie 'cars'".
This will absolutely, unequivocally, 100% see at least a very early beta release in a few days, I just want to round out the rest of the commands and compress a lot of the redundant code I'm using. So far, there's somewhere around 800 lines of original code in a few days...once I get sonarr and couchpotato stuff in, it'll be even more.
But, the end goal will be to have a nice, easy-to-configure webUI where you plug in your server IP's, ports, and API/token, and off you go. I am currently enumerating the available players on the network on-the-fly, so as long as your device is on and has plex running, you should be able to select it. And if you wanted to set up multiple IFTTT commands for different players, there will be a flag in the API to specify the player name to use. :D
So, basically, you can plug your information for your various HTPC apps into the webUI, set up an IFTTT recipe to fire commands at it via Google Assistant/Home/Alexa?, and sit back and giggle as you become the cyber-commander of your home environment.
Here is a screenshot of the webUI so far - you can see the fields are auto-populated via a config file. Editing an input field auto-saves that value, so no saving and reloading between queries/commands. Enabling/disabling a section will expand collapse it's input fields. And while it's all just pure white right now - it is wrapped in Bootstrap 4, so I'll be taking my liberties in making it fully mobile-responsive and pretty and such.
https://drive.google.com/file/d/0B0OpOqUNqeKkX3JGN2Z6NWRZU0k/view?usp=sharing
Oh, and here's a video of it in action so far. Just the two items "first unwatched show" and "movie title" being recognized, but the others are in various states of completion.
https://drive.google.com/file/d/0B0OpOqUNqeKkTk14NmRPU0RHRm8/view?usp=sharing
Which leaves only two questions:
What should I call it?
and
What other apps besides plex/sonarr/couchpotato should it support? Ideally, they should have some kind of documented API that's not ridiculously complicated, and I can construct the queries needed to talk to them. ;)
Happy drooling. Remember - this is 2x days of coding.