Category: Automation

“Frozen” Buttons: Launching Disney+ Movies on Roku with Automator

Let’s get this out of the way: television is the worst babysitter. With the way things have been lately, I’m not judging anyone for plopping the kids in front of a screen for a little while to accomplish necessary things like preparing food and going to the bathroom.

In fact, I thought it might be nice to automate the process. Is it possible to start a movie on Disney+ without lifting your fingers from the keyboard? It turns out that it’s actually really easy, with a Roku and a little Automator glue. You can use this for any content exposed by Roku deep linking, but it works for both Frozen and Frozen 2, so I’m set.

Step 1 — Determine your Roku IP

Turn your Roku on and go to Settings > Network > About. You’ll see your local assignment next to “IP Address”. Jot that down and go to the next step.

Step 2 — Get the Roku App ID

Visit the following URL in a browser:

http://{YOUR IP ADDRESS}:8060/apps/query

You’ll get an XML response that should have all of the applications you have installed on your Roku. It will look a little like this:

<apps>
<app id="12" subtype="ndka" type="appl" version="4.2.81179053">Netflix</app>
<app id="13" subtype="ndka" type="appl" version="11.2.2020032710">Prime Video</app>
<app id="2285" subtype="rsga" type="appl" version="6.29.1">Hulu</app>
<app id="837" subtype="ndka" type="appl" version="1.0.80000286">YouTube</app>
<app id="291097" subtype="rsga" type="appl" version="1.4.2020051200">Disney Plus</app>
</apps>

Now note the application you want to deep link into. I wanted Disney+, so I wrote down 291097. (I wonder these are sequential numbers based on when apps are registered with Roku…?)

Step 3 – Get the Content ID

Getting the content ID for the item you want will vary by service. For Disney+, if you log into the service on your computer and start a movie, you’ll see it in the URL as a GUID. For Frozen, this is

https://www.disneyplus.com/video/8e06a8b7-d667-4e31-939d-f40a6dd78a88

You can confirm this even if you don’t log in, since it will bring you to the deep link page and tell you to sign up for Disney+.

Step 4 – Construct the URL

Now you can build the string that will start a movie on Disney+. There’s one additional parameter, which is the MediaType. For Disney movies the value is “movie”. I found a list of all the MediaTypes at https://developer.roku.com/en-ca/docs/developer-program/discovery/implementing-deep-linking.. If you’re experimenting with other sources you may need to experiment to find the correct one. It is required and does need to be correct. Using all of this, I can put together the magic string:

http://{YOUR IP ADDRESS}:8060/launch/291097?MediaType=movie&ContentID=8e06a8b7-d667-4e31-939d-f40a6dd78a88

This string must be POSTed, even though there’s no POST body. Unfortunately this means you can’t just bookmark Frozen in your browser. (I mean, this is correct HTTP architecture, GETs are supposed to be cacheable and shouldn’t perform actions.)

Step 5 – Automator

I did this on a Mac, but you can adapt this to any platform relatively easily. Using Automator, you can create a quick action which can be assigned to a keyboard shortcut or even placed on your touchbar. Automator is already on your system, so open it from your Applications menu.

Hit ⌘-N to make a new document and select Quick Action. Set the options as follows:

  • Workflow receives current “no input”
  • In “any application”
  • Image: choose an appropriate image, like “Video”

Now, on the left actions panel, double click “Run Shell Script” and paste in a curl command. It’ll look something like this.
Completed automator script
Hit the play button to make sure the script works, and then save it.

Step 6 – Keyboard Shortcut and Touch Bar

Now that you have a quick action, you can add a keyboard shortcut or place it on your toolbar. Go to System Preferences > Keyboard > Shortcuts > Services. Scroll down to the bottom and you’ll see a General category with the names of the shortcuts you just created. Click on “none” and Add Shortcut, and type a key combo you don’t use in other programs and that you can remember. I chose Command+Option+; and ‘ for no real reason.

Test the shortcut to make sure it runs the Automator script successfully. Now, go to System Preferences > Extensions. Click Touch Bar on the left and you’ll see your actions appear on the right side. Check the boxes for your new quick actions. You can then click “Customize Control Strip…” if you want a button to get into your quick actions. (You can also go back to the Keyboard preferences menu and configure the touch bar to always show your quick actions, or to show them if you hold down Fn.)

That’s it! Now, with a single keystroke or tab on your touch bar, you can get your child’s favorite movie rolling. The Roku API on your Smart TV or device has a lot of other capabilities too, including tuning to specific broadcast channels, entering remote control commands, etc. Just Google “Roku ECP API” for a wealth of additional information. Enjoy!

Touch bar showing Frozen movies
Automate all the things.