Skip to content

Instantly share code, notes, and snippets.

@pseudosavant
Last active November 9, 2024 02:12
Show Gist options
  • Save pseudosavant/89b9b8ba1e42f6eaf36fc7af49f40fe4 to your computer and use it in GitHub Desktop.
Save pseudosavant/89b9b8ba1e42f6eaf36fc7af49f40fe4 to your computer and use it in GitHub Desktop.

Roku devices can be easily controlled via an HTTP API. It is accessed by issuing a POST request to http://{device_ip}:8060/keypress/{command}.

NOTE: it must be accessed by IP address only and not hostname due to how Roku handled addressing a DNS Rebinding vulenerability.

Request URL Examples:

Available Commands:

  • Home
  • Select // Select or OK
  • Up
  • Down
  • Left
  • Right
  • Back
  • Fwd
  • Rev
  • Play // Play and pause
  • InstantReplay
  • Info // Info or *
  • VolumeUp
  • VolumeDown
  • VolumeMute
  • Search
  • Enter
  • Lit_{urlencode key/character} // Send arbitrary keys URL encoded
  • InputSource
  • Power
  • Backspace
  • Game
  • Sleep
  • ClosedCaption
  • PowerOn
  • PowerOff
  • InputAV1
  • InputHDMI1
  • InputHDMI2
  • InputHDMI3
  • InputHDMI4
  • InputTuner
  • Partner1 // Netflix
  • Partner2 // Pandora
  • Partner3 // Crackle
  • Partner4 // VUDU
  • Partner5 // NOW TV
  • Partner6 // Roku Channel Store
  • Partner7 // M-GO
  • Partner8 // Amazon Video
  • Partner9 // Blockbuster
  • Partner10 // Rdio
  • Partner11 // CinemaNow
  • Partner12 // Sling TV
  • Partner13 // Hulu
  • Partner14 // Google Play
  • Partner15 // Cinexplex
  • Partner16 // YouTube
  • Partner17 // Sky Store
  • Partner18 // HBO NOW
  • Partner19 // Showtime
  • Partner20 // Red Bull TV
  • Partner21 // Spotify
  • Partner22 // CBS News
  • Partner23 // Cinepolis Klic
  • Partner24 // TED
  • Partner25 // BLIM
  • Partner26 // Playstation Vue
  • Partner27 // VMedia
  • Partner28 // Starz
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment