skillfed

rokuecp

Asynchronous Python client for Roku (ECP)

rokuecp v0.19.5 100.9K downloads/30d#12,970 on PyPI9
Permissive license MIT Active released

What it is and what it does

Rokuecp is an async Python client for the Roku External Control Protocol, enabling programmatic monitoring and control of Roku devices over the network. It wraps the ECP API in a Python-friendly interface built on aiohttp, allowing you to query device state and send commands asynchronously.

The package is designed for home automation, device management, and integration scenarios where you need to control Roku TVs or streaming players from Python. It uses standard async/await patterns and includes retry logic via backoff to handle network transience. The library is in beta status but actively maintained, supporting Python 3.9 through 3.13.

Use it for:

  • Integrate Roku control into home automation platforms or custom smart-home scripts.
  • Monitor the state and activity of Roku devices across a household or venue.
  • Build remote-control applications or dashboards that send commands to Roku devices.
  • Automate testing or validation workflows that require controlling Roku playback.
  • Create notification or event-driven systems triggered by Roku device state changes.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

An asynchronous Python client for controlling and monitoring Roku devices over the External Control Protocol (ECP).

Yes. The package has low install friction, active maintenance, a permissive license, no known vulnerabilities, and a straightforward async API. Install it if you need to programmatically control or monitor Roku devices; the async design and retry logic make it suitable for reliable home automation or device management tasks.

Install

rokuecp on PyPI

pip

pip install rokuecp

uv

uv add rokuecp

poetry

poetry add rokuecp

Installing rokuecp

Before you install

Low friction install with a pure-Python wheel. The package is actively maintained with a recent commit on 2026-08-13 and has been in active development since 2020-05-03. Dependencies are all well-established async libraries (aiohttp, async-timeout, backoff, xmltodict, yarl, awesomeversion).

License in practice

MIT license is permissive, allowing free use, modification, and distribution with minimal restrictions—suitable for both open-source and commercial projects.

Quickstart

import asyncio
from rokuecp import Roku

async def main():
    async with Roku("192.168.1.100") as roku:
        print(roku)

if __name__ == "__main__":
    asyncio.run(main())

Requires Python 3.9 or later and a Roku device on the network accessible at the specified IP address.

Verify before relying

  • Whether the package supports all Roku device models or only specific generations.
  • Performance characteristics when controlling multiple Roku devices concurrently.
  • Full feature coverage of the ECP protocol and which Roku capabilities are exposed.

Package facts

License MIT (permissive)
Python support supports the current Python release (<4.0,>=3.9)
Install friction low — pure-Python wheel
Runtime dependencies 6 — aiohttp, async-timeout, awesomeversion, backoff, xmltodict, yarl
Maintenance actively maintained — 426 days since the last release
Last repo commit
First released
Downloads 100,874/month — #12,970 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: rokuecp-0.19.5-py3-none-any.whl

Keywords: roku, ecp, api, async, client

Development Status :: 4 - BetaFramework :: AsyncIOIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseNatural Language :: EnglishProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9Topic :: Software Development :: Libraries :: Python Modules

Tags

roku device control pythonasync roku clientroku ecp protocolroku remote control apiroku device monitoringroku automation pythonroku tv control
roku-integrationhome-automationasync-client

More Python Modules packages